從DB2 9.7開始,你可以使用下面的查詢檢查DB2中未使用的索引:
- SELECT?INDSCHEMA,?INDNAME,?TABNAME? ?
- ??FROM?SYSCAT.INDEXES ?
- WHERE??LASTUSED?=?'01/01/0001';?
LASTUSED列告訴你索引在DB2中的最后一次訪問時間,但這個方法并不能保證百分之百返回準確的值,因為DB2也會將更新這一列的時間當作訪問時間,但你可以使用db2pd工具準確地獲得自數(shù)據(jù)庫啟動以來索引的最后一次訪問時間。
這個查詢只能工作在DB2 9.7或更高版本,但db2pd可以用于其它版本,在SYSCAT.TABLES,SYSCAT.INDEXES和SYSCAT.PACKAGES表中都已經增加了一列LASTUSED,因此從DB2 9.7開始,你可以輕松查詢出未使用的索引,表和包。
- $?db2pd?-d?sample?-tcbstats?index?
當你在SAMPLE數(shù)據(jù)庫上運行db2pd工具時,使用tcbstats選項,將參數(shù)index傳給它,你將會看到一串很長的輸出內容,當你查看TCB Index信息時,你需要查找SCANS列,你必須通過catalog表相互關聯(lián)Index ID(IID)和索引名。
- Database?Partition?0?--?Database?SAMPLE?--?Active?--?Up?0?days?00:09:45 ?
- ?
- TCB?Table?Information: ?
- Address????TbspaceID?TableID?PartID?MasterTbs?MasterTab?TableName ?
- 0x7C6EF8A0?0???1?n/a????0???1???SYSBOOT?? ?
- 0x7A0AC6A0?2???-1n/a????2???-1??INTERNAL? ?
- ?
- TCB?Table?Stats: ?
- Address????TableName????ScansUDI??RTSUDI ?
- 0x7C6EF8A0?SYSBOOT1????0????0????? ?
- 0x7A0AC6A0?INTERNAL?????0????0????0????? ?
- ?
- TCB?Index?Information: ?
- Address????InxTbspace?ObjectID?TbspaceID?TableID?MasterTbs? ?
- 0x7A0ABDA8?0????5??0???5?0??? ?
- 0x7A0ABDA8?0????5??0???5?0??? ?
- ?
- TCB?Index?Stats: ?
- Address????TableName????IID???EmpPgDel???RootSplits?BndrySplts?PseuEmptPg?Scans??? ?
- 0x7A0ABDA8?SYSTABLES????9?????0????0????0????0????0? ?
- 0x7A0ABDA8?SYSTABLES????8?????0????0????0????0????0??
上面的輸出為了簡潔美觀,我做了剪裁,索引名關聯(lián)IID,并使用Scans=0查找索引。
如果你的數(shù)據(jù)庫運行了有一個月,你可以運行db2pd工具找出有一個月都未曾使用過的索引。當你運行db2pd工具且數(shù)據(jù)庫處于活動狀態(tài)時,所有這些信息存在的時間都是非常短暫的,但SYSCAT.TABLES,SYSCAT.INDEXES和SYSCAT.PACKAGES表中LASTUSED列的信息是持久存儲的,通過它,你可以找出對象的最后訪問時間,請記住DB2 for z/OS很久以前就有這個功能了,DB2 LUW現(xiàn)在也有這個功能了。
原文出處:http://www.db2ude.com/?q=node/127
原文名:Unused indexes, tables and packages in DB2
關鍵詞標簽:DBA,DB2
相關閱讀
熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現(xiàn)有數(shù)據(jù)進行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構的關系
人氣排行 配置和注冊ODBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠程備份(還原)SQL2000數(shù)據(jù)庫 SQL2000數(shù)據(jù)庫遠程導入(導出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫服務端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法