首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
2、清空數據庫的日志文件
問題的引出:我們的切割過程就是將單據數據中某個日期以前的數據先復制到新的數據庫中(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,相對于龐大的數據文件而言,微之戡微.
相關推薦:Delphi開發中幾種代碼復用方式及其比較
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |