本篇文章描述了通過sp_sysmon對Adaptive Server系統運行情況有一個全面系統了解,有利于更好地熟悉系統性能,更為有效地進行系統管理,合理地利用和配置系統資源,達到系統性能調優的目的。
從18個方面了解在用系統性能狀況,并在適當的時候利用環境參數進行性能調優:
1、內核管理(kernal) 2、應用管理(appmgmt) 3、數據緩存管理(dcache)
4、ESP管理(esp) 5、索引管理(indexmgmt) 6、鎖管理(locks)
7、內存管理(memory) 8、元數據高速緩存管理(mdcache)9、任務管理(taskmgmt)
10、監視器訪問SQL的執行(monaccess) 11、網絡I/O管理(netio)
12、并行查詢管理(parallel)13、過程緩存管理(pcache)14、恢復管理(recovery)
15、事務管理(xactmgmt)16、事務概要(xactsum) 17、磁盤I/O管理(diskio)
18、工作進程管理(wpm)
括號后英文短詞是該模塊參數。
環境: 1、用戶數據庫中有練習所用數據表auths和article
2、數據表各有10萬行數據
3、用戶具有查詢、修改、刪除等基本的數據庫表操作權限
步驟:執行sp_sysmon “00:10:00”(server級系統存貯過程,不需要打開某個數據庫),或者執行如下格式的過程,查看具體操作批命令對應系統性能情況:
sp_sysmon begin_sample
SQL語句或者存貯過程
sp_sysmon commit_sample
本實驗采用 sp_sysmon “hh:mm:ss”,性能模塊名。
結論:通過此練習,可了解當前系統在各方面的系統運行狀況,性能出現什么問題和不平衡不協調之處,學會使用相應的參數和措施進行解決和調優,不斷比較對照調整前后的性能狀況,最終改善系統性能。
說明:1、該命令執行結果集的開頭相同如下,各分塊練習不再一一列示:
======================================================================
Sybase Adaptive Server Enterprise System Performance Report
======================================================================
Server Version: Adaptive Server Enterprise/11.9.2/1031/P/NT (IX86)/OS 3.
Server Name:/t Server is Unnamed
Run Date:/t May 28, 2001
Statistics Cleared at: 15:57:27
Statistics Sampled at: 16:07:28
Sample Interval: 00:10:00
2、執行結果集的每列信息提示:
per sec : 采樣期間每秒的平均值
per xact: 采樣期間每提交一個事務的平均值
count : 采樣期間每秒的總計值
% of total: 占總數的百分比,根據不同情況各有不同
3、結果集對應給出性能情況描述、分析以及可調性說明
4、本練習只給出部分模塊的監視結果(可能有刪節),用sp_sysmon “hh:mm:ss”可看全部詳細情況。
索引管理
命令行:sp_sysmon “00:10:00”,indexmgmt
結果:
Index Management(索引管理)
索引可以加速數據檢索,但同時又降低了更新的性能。
----------------
Nonclustered Maintenance per sec per xact count % of total
非聚簇索引維護情況:報告因為插入、刪除、修改、頁分裂等造成的索引維護次數。
------------------------- ------------ ------------ ---------- ----------
Ins/Upd Requiring Maint/t 0.0/t 0.0/t 0 n/a
影響索引的插入和修改的操作數,需要維護非聚簇索引。對于插入,有多少非聚簇索引,就需要增加多少索引維護的開銷;對于修改,則只對相關的索引進行維護。
# of NC Ndx Maint/t 0.0/t 0.0/t 0 n/a
因為插入和修改需要對多少非聚簇索引進行維護。
Deletes Requiring Maint/t 0.0/t 0.0/t 0 n/a
# of NC Ndx Maint/t 0.0/t 0.0/t 0 n/a
影響索引的刪除操作次數,以及需要維護的非聚簇索引數。
RID Upd from Clust Split/t 0.0/t 0.0/t 0 n/a
在APL(全頁鎖)的聚簇索引表發生頁分裂次數,相應需要進行索引維護。
# of NC Ndx Maint/t 0.0/t 0.0/t 0 n/a
頁分裂后對應的索引維護次數。
Upd/Del DOL Req Maint/t 0.0/t 0.0/t 0 n/a
DOL表發生影響索引的修改刪除操作次數。
# of DOL Ndx Maint/t 0.0/t 0.0/t 0 n/a
對應索引維護次數。
Page Splits/t/t/t 0.0/t 0.0/t 0 n/a
包括數據頁、聚簇索引頁和非聚簇索引頁因為插入新行沒有足夠空間單元導致頁分裂。頁分裂造成修改索引頁、修改頁指針、增加鎖資源爭奪等從而降低性能。
如果頁分裂度高(次數多),而又是對全頁加鎖表進行插入操作,并且表有組合鍵的聚簇索引,這時可通過改變那些索引的頁分裂點來減少頁分裂,即是說組合鍵的第一個鍵表中在用,第二個鍵列值按升序排列;也可考慮用fillfactor的合適配置來降低在聚簇索引的APL表的數據頁以及非聚簇索引的葉子數據頁上的頁分裂。
建議對表插入行按照升序插入方式,這樣發生頁分裂點也是在插入行點而不是在頁中間,這樣能夠提高性能。通過dbcc tune (ascinserts, 1, "表名")設置插入方式,0反之。
如果索引維護量大,會因為維護需要額外的進程、額外的I/O、額外的索引頁鎖從而影響性能。可以通過對比不同操作次數與導致的維護次數,如果維護次數很多,還發生頁分裂、retries等現象,嚴重時可考慮不用索引。
新聞熱點
疑難解答
圖片精選