当前位置: 首页 > 科技观察

DBA该如何在DB2中找出未使用索引,表和包

时间:2023-03-15 01:26:26 科技观察

DBA如何在DB2='01/01/0001'中找到未使用的索引、表和包;LASTUSED列告诉你DB2中索引的最后访问时间,但是这种方法不保证***会返回一个准确的值,因为DB2也会更新这个列的时间作为访问时间,但是你可以使用db2pd工具可以准确获取自数据库启动以来索引的最后访问时间。该查询仅适用于DB29.7或更高版本,但db2pd可用于其他版本。SYSCAT.TABLES、SYSCAT.INDEXES和SYSCAT.PACKAGES表中添加了LASTUSED列,因此从DB29.7开始,您可以轻松查询出未使用的索引、表和包。$db2pd-dsample-tcbstatsindex当你在SAMPLE数据库上运行db2pd工具时,使用tcbstats选项,并将参数index传递给它,你会看到一长串的输出内容。当你查看TCBIndex信息时,你要找到SCANS列,你必须通过目录表关联IndexID(IID)和索引名称。DatabasePartition0--DatabaseSAMPLE--Active--Up0days00:09:45TCBTableInformation:AddressTbspaceIDTableIDPartIDMasterTbsMasterTabTableName0x7C6EF8A001n/a01SYSBOOT0x7A0AC6A02-1n/a2-1INTERNALTCBTableStats:AddressTableNameScansUDIRTSUDI0x7C6EF8A0SYSBOOT1000x7A0AC6A0INTERNAL000TCBIndexInformation:AddressInxTbspaceObjectIDTbspaceIDTableIDMasterTbs0x7A0ABDA8050500x7A0ABDA805050TCBIndexStats:AddressTableNameIIDEmpPgDelRootSplitsBndrySpltsPseuEmptPgScans0x7A0ABDA8SYSTABLES9000000x7A0ABDA8SYSTABLES800000上面的输出为了简洁美观,我剪裁后索引名称与IID关联,使用Scans=0查找索引。如果您的数据库已经运行了一个月,您可以运行db2pd工具来查找一个月未使用的索引。当您运行db2pd工具并且数据库处于活动状态时,所有这些信息都会存在很短的时间,但是SYSCAT.TABLES、SYSCAT.INDEXES和SYSCAT.PACKAGES表中LASTUSED列中的信息会永久存储,通过其中,您可以找出对象的最后访问时间,请记住DB2forz/OS很久以前就有这个功能,现在DB2LUW也有这个功能。原文出处:http://www.db2ude.com/?q=node/127原文名称:DB2中未使用的索引、表和包【编者推荐】正确导出DB2中的LOB数据DB2外部文件格式浅析DB2数据库设计三DB2与非DB2数据库之间DB2数据库远程复制基本操作说明分析建议30