DB2檢視索引的使用情況

zchbaby2000發表於2018-09-21

db2pd可以檢視應用對資料庫中的表和索引的訪問情況
db2pd -db dbname -tcbstats all -file db2pd_tab_all.txt
有時候,你只想檢視對某一個表和其上的索引的訪問情況
db2pd -db dbname -tcbstats all tbspaceid=id1 tableid=id2
這裡的id1,id2可以透過查詢得到
db2 "SELECT TBSPACEID, TABLEID FROM SYSCAT.TABLES WHERE TABSCHEMA = 'SCHEMANAME' AND TABNAME = 'TABLENAME'"

在db2pd的輸出 "TCB Index Stats:"部分,能看到索引的IID,和索引訪問情況的資訊 Scans,IxOnlyScns
自資料庫啟動以來,對某個索引的總訪問次數就是: Scans + IxOnlyScns
如果想看索引名,可以透過下面的查詢得到
db2 "SELECT INDSCHEMA, INDNAME FROM SYSCAT.INDEXES WHERE TABSCHEMA = 'SCHEMANAME' AND TABNAME = 'TABLENAME' AND IID = 3"

自DB2 9.7以後,可以用表函式輕鬆獲得這些資訊

SELECT
     SUBSTR(SI.INDSCHEMA, 1, 30) AS INDSCHEMA,
     SUBSTR(SI.INDNAME, 1, 30) AS INDNAME,
     MGI.INDEX_SCANS,
     MGI.INDEX_ONLY_SCANS
FROM
    TABLE(MON_GET_INDEX('EPRICER', 'CTMTTRN', -2)) as MGI,
    SYSCAT.INDEXES AS SI
WHERE
    MGI.TABSCHEMA = SI.TABSCHEMA
    AND MGI.TABNAME = SI.TABNAME
    AND MGI.IID = SI.IID
ORDER BY
    MGI.INDEX_SCANS DESC;
    

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/725820/viewspace-2214705/,如需轉載,請註明出處,否則將追究法律責任。

相關文章