互联网服务sql调优索引优化

如何定位DB2的某个索引被哪些SQL使用

如题,如何定位DB2的某个索引被哪些SQL使用?
背景:DB2数据库中,有些索引的scan次数特别低,但是不能confirm这些索引是否可以删除(是否是关键业务调用)。
参与10

8同行回答

steve25steve25数据库管理员IBM
我想你只用通过抓取使用过该table的SQL,然后分析access plan,来看出那个index被使用过了!倒退不可能阿,不会有这种column来记录哪个SQL使用过哪个INDEX的!个人理解!显示全部
我想你只用通过抓取使用过该table的SQL,然后分析access plan,来看出那个index被使用过了!倒退不可能阿,不会有这种column来记录哪个SQL使用过哪个INDEX的!个人理解!收起
互联网服务 · 2014-11-11
浏览1386
junli0411junli0411数据库管理员NULL
前面几个都是答非所问,也就楼上按照题目回答了。显示全部
前面几个都是答非所问,也就楼上按照题目回答了。收起
互联网服务 · 2014-11-11
浏览1394
wangweilongwangweilong数据库管理员某大
补充:1、首先这个表有上T的数据量,重建一个索引会特别慢,而且对业务有锁的影响,所以必须保证完全没影响的索引才能删除掉。2、其次,这是核心系统的数据库,一旦影响性能可能导致很多业务停顿,所以不可能先删除掉,然后有问题再重建。请看清我的问题,我已经知道某个索引的scan次数,我...显示全部
补充:

1、首先这个表有上T的数据量,重建一个索引会特别慢,而且对业务有锁的影响,所以必须保证完全没影响的索引才能删除掉。

2、其次,这是核心系统的数据库,一旦影响性能可能导致很多业务停顿,所以不可能先删除掉,然后有问题再重建。

请看清我的问题,我已经知道某个索引的scan次数,我想要的是:如何定位某个索引被哪些SQL使用到?

举个例子,我有一个表,有1T的数据量,三个索引,每个大约300G,在数据库例行维护后启动一个月来,其中一个索引scan了1000万次,一个10万次,一个600次。
我的目的是找到扫描600次这个索引的使用场景,看看是否为key的业务,是否可以删除掉这个索引。收起
互联网服务 · 2014-09-10
浏览1378
UniverseSaeUniverseSae数据库管理员待业
我有个帖子可以让你参考:http://www.db2china.net/home/space.php?uid=28010&do=blog&id=29669显示全部
互联网服务 · 2014-08-25
浏览1416
zgrrzg22zgrrzg22其它CTTQ
查看scan为0 的显示全部
查看scan为0 的收起
互联网服务 · 2014-08-24
浏览1350
zgrrzg22zgrrzg22其它CTTQ
db2pd -db xxxx -tcbstats index显示全部
db2pd -db xxxx -tcbstats index收起
互联网服务 · 2014-08-24
浏览1327
start2000start2000系统架构师ABB
须知这个scan数值是从最近数据库启动后才开始计算的.因此如果确认启动后所有业务都运行过了(而且很多次了),scan为0的index可以尝试记录后删除,这样如果万一不行再恢复起来也很容易.显示全部
须知这个scan数值是从最近数据库启动后才开始计算的.

因此如果确认启动后所有业务都运行过了(而且很多次了),scan为0的index可以尝试记录后删除,这样如果万一不行再恢复起来也很容易.收起
互联网服务 · 2014-08-20
浏览1423
yellow-finyellow-fin项目经理浙江兰德纵横网络技术有限公司
db2advis顾问程序,可以参考显示全部
db2advis顾问程序,可以参考收起
IT咨询服务 · 2014-08-20
浏览1408

提问者

wangweilong
数据库管理员某大

问题状态

  • 发布时间:2014-08-20
  • 关注会员:1 人
  • 问题浏览:23660
  • 最近回答:2014-11-11
  • X社区推广