K3日誌收縮

如下摘自《金蝶K3產品性能穩定性優化指導手冊》:數據庫

對於任何一個數據庫系統,平常的維護是必要的,在平常的系統維護中分支機構應該引導客戶的系統管理員作維護,防性能問題於未然。ide

但有時候不當的維護策略也對性能形成必定的影響。結合常見維護策略進行介紹,旨在防性能問題與未然。性能

在應用K/3時爲了提高總體應用性能,數據庫須要作以下的維護策略:優化

 

1.設置數據庫故障還原模型爲「簡單」spa

SQL Server企業管理器中選擇一個數據庫,右鍵點擊彈出快捷菜單,選擇「屬性」,以下圖界面。數據庫的故障還原模型建議使用「簡單」模式。日誌

若是採用「簡單」之外的故障還原模式,將可能產生大量的日誌文件從而影響數據庫系統性能blog

注意:選擇簡單模式後數據庫將不能作事務日誌備份。索引

wKioL1g3pZyAjFVLAAI7_ixUwbc576.png-wh_50

 

2.取消「自動收縮」數據庫選項事務

將數據庫「屬性」中的「自動收縮日誌」選項取消(如2.1.2.1下圖)。因爲須要頻繁檢查數據庫的空間使用狀況以及自動收縮有可能發生在數據庫文件自動增加以後而增長額外的開銷。資源

 

3.按期收縮數據庫

SQL Server數據庫的事務日誌會因爲各類緣由,有時候暴漲,事務日誌太大有時候會引起性能問題,所以要有計劃地收縮數據庫來縮小事務日誌。收縮數據庫時不但要收縮帳套數據庫,同時也要收縮SQL Server自帶的TEMPDB數據庫。能夠經過SQL Server企業管理器作一個收縮計劃,在沒有業務運行的時候按期作收縮,儘可能不要在平時作收縮操做,由於收縮操做耗用資源不少,且須要一段時間。

SQL Server企業管理器中選擇一個數據庫,右鍵點擊彈出快捷菜單,選擇「全部任務」---〉「收縮數據庫」,以下圖界面。

wKiom1g3pZ2xSBkuAAGB4xEuTyk284.png-wh_50

選擇根據本調度來收縮數據庫(收縮的頻率不要過於頻繁,不然容易產生更多的碎片,致使數據庫性能更差),而後點擊更改按鈕,以下圖界面作調度安排。wKiom1g3pdOTk99NAAEWVqHWtEA692.png-wh_50


 

4.按期優化賬套

SQL Server運行一段時間後,表空間和索引的存儲可能會產生碎片,這會極大的影響系統的性能。數據庫表是否存在碎片能夠經過在SQL查詢分析器中使用下面的命令來查看:

如:dbcc showcontig(icstockbill) 顯示結果爲

DBCCSHOWCONTIG 正在掃描 'ICStockBill' ...

:'ICStockBill'1180583294);索引 ID:1,數據庫 ID:15

已執行TABLE 級別的掃描。

- 掃描頁數.....................................:9935

- 掃描擴展盤區數...............................:1252

- 擴展盤區開關數...............................:8485

- 每一個擴展盤區上的平均頁數.....................:7.9

- 掃描密度[最佳值:實際值]....................:14.64%1242:8486

- 邏輯掃描碎片.................................:41.35%

- 擴展盤區掃描碎片.............................:60.46%

- 每頁上的平都可用字節數.......................:3763.6

- 平均頁密度(完整)...........................:53.50%

DBCC 執行完畢。若是 DBCC輸出了錯誤信息,請與系統管理員聯繫。

能夠看出icstockbill表的掃描密度爲14.64%,邏輯掃描碎片爲41.35%;擴展盤區掃描碎片爲60.46%說明存在較多的碎片,而且統計信息不少記錄都未進行更新,這將嚴重影響使用該表時的查詢速度,須要對該表進行重建索引。那麼咱們使用dbcc dbreindex(icstockbill)icstockbill表重建索引,再對icstockbill表進行統計能夠看到下面的結果:

DBCC SHOWCONTIG 正在掃描 'ICStockBill' 表...

表: 'ICStockBill'(1180583294);索引 ID: 1,數據庫 ID: 15

已執行 TABLE 級別的掃描。

- 掃描頁數.....................................: 5444

- 掃描擴展盤區數...............................: 682

- 擴展盤區開關數...............................: 681

- 每一個擴展盤區上的平均頁數.....................: 8.0

- 掃描密度[最佳值:實際值]....................: 99.85%[681:682]

- 邏輯掃描碎片.................................: 0.00%

- 擴展盤區掃描碎片.............................: 29.91%

- 每頁上的平都可用字節數.......................: 189.7

- 平均頁密度(完整)...........................: 97.66%

DBCC 執行完畢。若是 DBCC 輸出了錯誤信息,請與系統管理員聯繫。

能夠看出icstockbill表的掃描密度爲99.85%,邏輯掃描碎片爲0.00%;擴展盤區掃描碎片爲29.91%,數據頁從原來的9935調整爲5444,說明碎片已經獲得了很好的整理。

 

能夠經過兩種方式進行整理,咱們稱之爲「優化賬套」,下面介紹兩種方法:

 

方法1:只對部分核心表進行整理,選擇「帳套管理」 —〉「數據庫」 —〉「優化賬套」,缺點是帳套優化功能不能作調度定時執行,須要每次手工點擊執行;

方法2:SQL Server企業管理器中作維護計劃,使用企業管理器中管理—〉數據庫維護計劃—〉新建維護計劃嚮導,在第三步,選擇從新組織數據和索引頁,如圖4。

wKioL1g3pdSj27MuAAFuvUsKA6w546.png-wh_50

       因爲碎片是因爲平常的業務操做致使表中的數據處於不斷的刪除,新增中形成的,因此應該按期進行優化賬套的操做。建議每週執行一次,同時避開使用K/3系統的高峯期。

       注:若是經過重建索引後,掃描密度,邏輯掃描碎片和擴展盤區掃描碎片依然不能獲得較大的降低,這時候請先記錄下原來創建的索引信息,手工刪除全部的索引後,而後再從新創建索引來達到下降碎片。

       另外致使該問題還有可能因爲數據庫文件自己的碎片過多,這時候能夠經過進行磁盤碎片整理後,備份後還原新帳套的方式來處理。

相關文章
相關標籤/搜索