日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

delphi mysql 删除_Delphi如何清空日志文件

發布時間:2023/12/16 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 delphi mysql 删除_Delphi如何清空日志文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Delphi如何清空日志文件?

問題的引出:我們在數據庫切割過程中,就是將單據數據中某個日期以前的數據先復制到新的數據庫中(select ... into ...),然后再將原來數據庫中的這些數據刪除。這樣操作在數量很大的數據庫上時,其日志文件的增長也是驚人的。我復制一個48萬條記錄的表時,***發現僅這一個表的操作就使新數據庫的日志文件增加了170MB,如果不加清理,那就會被日志文件占用大量寶貴的磁盤空間。況且,我們轉移到的新建數據庫的作用也只是用來查詢,以后不會有任何Insert、Update、Delete操作的,要這些日志文件沒有什么用處,因此必須在向它轉移數據的過程中做一些縮小日志文件的處理,怎么辦??問題由此而生...

1. 處理過程中不記錄日志

設置方法如下:企業管理器中打開對應數據庫的“屬性”,頁框“選項”中將“模型”改為“簡單”。這樣設置的結果是對此數據庫的任何操作都將不記錄事務日志。對應的SQL為:EXEC sp_dboption @pdbName, 'trunc. log on chkpt.', 'TRUE'

但是,我們經過測試發現:啟用此功能后,我們在對這個數據庫操作時,就不能用事務操作了,程序執行到BeginTranSaction時就報錯,不能執行下去,由于我們不能在對此庫的操作中保證100%的正確性,因此我們還需要事務,因此這種方法適用空間有限,也不能滿足我們程序的需求。

我們還得繼續查找…

2. 處理過程中允許記錄日志,但要對日志文件進行處理,時時縮小它。

SQL Server的聯機幫助告訴我們:

在下列情況下,日志文件的物理大小將減少:

執行 DBCC SHRINKDATABASE 語句時。

執行引用日志文件的 DBCC SHRINKFILE 語句時。

自動收縮操作發生時。

下面我們逐個分析這三個方案:

① DBCC SHRINKDATABASE:收縮特定數據庫的所有數據和日志文件,包含我們的需求,但也大于我們的需求。此方案可用,但不要著急,給人的感覺是買了一件能穿的衣服,但尺寸大了些,穿在身上有點不舒服,我們接著分析以下兩個方案。

② DBCC SHRINKFILE:收縮相關數據庫的指定數據文件或日志文件大小。與方案1的區別僅一字之差:“和”與“或”,相當于把方案1拆成兩步來執行,我們需要的就是收縮日志文件。因此,它對我們來說顯得比較合適,有點量體裁衣的感覺。但還有沒有更好的呢,我們來看第三個方案。

③自動收縮:數據庫也可設置為按給定的時間間隔自動收縮,服務器定期檢查每個數據庫中的空間使用情況。如果發現數據庫中有大量閑置空間,而且它的 autoshrink 選項設置為 true,SQL Server 就縮小該數據庫中的文件大小。它是周期性的執行DBCC SHRINKDATABASE,既然方案1已經是一件尺寸大了一些的衣服,則此方案就相當于又穿上了N件大尺寸衣服,一件就已經夠了,我還要那么多干嘛呢?

綜合對比發現,方案2正是我們需要的。DBCC?SHRINKFILE?('+Trim(edDBMC.Text)+'_Log,?TRUNCATEONLY)

經過這個語句處理以后,日志文件將回到它的最小狀態504KB,任何的日志記錄都將清空。

再結合我們的工具,復制完一個表之后,我們就執行方案2,處理過程中日志文件暫時占用的***空間也就是處理***數據表時產生的日志空間,但***都將清空,顯示為500多KB,相對于龐大的數據文件而言,微之戡微。

【編輯推薦】

【責任編輯:鄭添龍 TEL:(010)68476606】

點贊 0

總結

以上是生活随笔為你收集整理的delphi mysql 删除_Delphi如何清空日志文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。