从DB2 9.7开始,你可以使用下面的查询检查DB2中未使用的索引:
LASTUSED列告诉你索引在DB2中的最后一次访问时间,但这个方法并不能保证百分之百返回准确的值,因为DB2也会将更新这一列的时间当作访问时间,但你可以使用db2pd工具准确地获得自数据库启动以来索引的最后一次访问时间。
这个查询只能工作在DB2 9.7或更高版本,但db2pd可以用于其它版本,在SYSCAT.TABLES,SYSCAT.INDEXES和SYSCAT.PACKAGES表中都已经增加了一列LASTUSED,因此从DB2 9.7开始,你可以轻松查询出未使用的索引,表和包。
当你在SAMPLE数据库上运行db2pd工具时,使用tcbstats选项,将参数index传给它,你将会看到一串很长的输出内容,当你查看TCB Index信息时,你需要查找SCANS列,你必须通过catalog表相互关联Index ID(IID)和索引名。
上面的输出为了简洁美观,我做了剪裁,索引名关联IID,并使用Scans=0查找索引。
如果你的数据库运行了有一个月,你可以运行db2pd工具找出有一个月都未曾使用过的索引。当你运行db2pd工具且数据库处于活动状态时,所有这些信息存在的时间都是非常短暂的,但SYSCAT.TABLES,SYSCAT.INDEXES和SYSCAT.PACKAGES表中LASTUSED列的信息是持久存储的,通过它,你可以找出对象的最后访问时间,请记住DB2 for z/OS很久以前就有这个功能了,DB2 LUW现在也有这个功能了。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
用Redis缓存来提升数据库查询性能
要对一个数据库调优,首先要对查询优化和数据模型进行调优。当这些调优手段无法提供必需的查询性能时,可以求助于Redis缓存。
-
发现那些未被使用的数据库索引
为了确保快速访问数据,和其他关系型数据库系统一样SQL Server会利用索引来快速的查找数据。然而有太多索引的缺点是不得不维护这些索引,维护也需要代价。
-
如何为你的数据库事务日志减肥?
在大多数SQL Server的工作环境中,尤其是在OLTP环境中,数据库的事务日志性能出现瓶颈时往往会导致事务完成需要更多的时间。
-
Oracle TimesTen的内存结构与应用场景
TimesTen内存结构比Oracle数据库简单很多。与Oracle不同,TimesTen并没有数据库缓冲区、保存池或丢弃池的概念。