IT猫扑网:您身边最放心的安全下载站! 最新更新| 软件分类| 专题汇总| 手机版

您当前所在位置:IT猫扑网 > 数据库 > MSSQL > DBA该如何在DB2中找出未使用索引,表和包

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

时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)

从DB2 9.7开始,你可以使用下面的查询检查DB2中未使用的索引:

  1. SELECT INDSCHEMA, INDNAME, TABNAME   
  2.   FROM SYSCAT.INDEXES  
  3. WHERE  LASTUSED = '01/01/0001'

LASTUSED列告诉你索引在DB2中的最后一次访问时间,但这个方法并不能保证百分之百返回准确的值,因为DB2也会将更新这一列的时间当作访问时间,但你可以使用db2pd工具准确地获得自数据库启动以来索引的最后一次访问时间。

这个查询只能工作在DB2 9.7或更高版本,但db2pd可以用于其它版本,在SYSCAT.TABLES,SYSCAT.INDEXES和SYSCAT.PACKAGES表中都已经增加了一列LASTUSED,因此从DB2 9.7开始,你可以轻松查询出未使用的索引,表和包。

  1. $ db2pd -d sample -tcbstats index 

当你在SAMPLE数据库上运行db2pd工具时,使用tcbstats选项,将参数index传给它,你将会看到一串很长的输出内容,当你查看TCB Index信息时,你需要查找SCANS列,你必须通过catalog表相互关联Index ID(IID)和索引名。

  1. Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:09:45  
  2.  
  3. TCB Table Information:  
  4. Address    TbspaceID TableID PartID MasterTbs MasterTab TableName  
  5. 0x7C6EF8A0 0   1 n/a    0   1   SYSBOOT    
  6. 0x7A0AC6A0 2   -1n/a    2   -1  INTERNAL   
  7.  
  8. TCB Table Stats:  
  9. Address    TableName    ScansUDI  RTSUDI  
  10. 0x7C6EF8A0 SYSBOOT1    0    0       
  11. 0x7A0AC6A0 INTERNAL     0    0    0       
  12.  
  13. TCB Index Information:  
  14. Address    InxTbspace ObjectID TbspaceID TableID MasterTbs   
  15. 0x7A0ABDA8 0    5  0   5 0     
  16. 0x7A0ABDA8 0    5  0   5 0     
  17.  
  18. TCB Index Stats:  
  19. Address    TableName    IID   EmpPgDel   RootSplits BndrySplts PseuEmptPg Scans     
  20. 0x7A0ABDA8 SYSTABLES    9     0    0    0    0    0   
  21. 0x7A0ABDA8 SYSTABLES    8     0    0    0    0    0  

上面的输出为了简洁美观,我做了剪裁,索引名关联IID,并使用Scans=0查找索引。

如果你的数据库运行了有一个月,你可以运行db2pd工具找出有一个月都未曾使用过的索引。当你运行db2pd工具且数据库处于活动状态时,所有这些信息存在的时间都是非常短暂的,但SYSCAT.TABLES,SYSCAT.INDEXES和SYSCAT.PACKAGES表中LASTUSED列的信息是持久存储的,通过它,你可以找出对象的最后访问时间,请记住DB2 for z/OS很久以前就有这个功能了,DB2 LUW现在也有这个功能了。

原文出处:http://www.db2ude.com/?q=node/127

原文名:Unused indexes, tables and packages in DB2

关键词标签:DBA,DB2

相关阅读 sql server系统表损坏的解决方法 SQL Server asp.net 数据提供程序连接池 SqlServer2005对现有数据进行分区具体步骤 一个Access数据库数据传递的实例方法 为导入文件加上时间戳标记的两种方法 SQL Server 2005 在不允许远程连接的情况下的破解

文章评论
发表评论

热门文章 sql server系统表损坏的解决方法 sql server系统表损坏的解决方法 SqlServer2005对现有数据进行分区具体步骤 SqlServer2005对现有数据进行分区具体步骤 解决SQL Server中Group无法实现的问题 解决SQL Server中Group无法实现的问题 SQL Server 2005降级到2000的正确操作步骤 SQL Server 2005降级到2000的正确操作步骤 手把手教你学会SQL Server镜像操作 手把手教你学会SQL Server镜像操作 实战手记:让百万级数据瞬间导入SQL Server 实战手记:让百万级数据瞬间导入SQL Server

相关下载

人气排行 配置和注册ODBC数据源-odbc数据源配置教程 如何远程备份(还原)SQL2000数据库 SQL2000数据库远程导入(导出)数据 SQL2000和SQL2005数据库服务端口查看或修改 修改Sql Server唯一约束教程 SQL Server 2005降级到2000的正确操作步骤 sql server系统表损坏的解决方法 浅谈JSP JDBC来连接SQL Server 2005的方法 SQL Server创建表语句介绍 MS-SQL2005服务器登录名、角色、数据库用户、角色、架构的关系 如何使用SQL Server中的客户端配置工具 SQL Server 分布式查询:OLE DB连接(一)