如何查看某一个sql用了哪些page

[复制链接]
查看11 | 回复1 | 2014-2-14 16:38:54 | 显示全部楼层 |阅读模式
例如我有如下sql:
select* from test where id>200 and id200 and id<100 order by id desc fetch first 10 rows only,这样返回的是每行的rid标识,其中就包括行的所在页编号。
另外确定表所在的表空间是大型(large)表空间,否则我没有研究过。
具体怎么从hex(rid_bit()) 里面提取页编号好像是和DB2版本以及平台有关。DB2/AIX64 9.7.4版本是把hex(rid_bit())改成SUBSTR( HEX( RID_BIT()),9,8),DB2/NT 10.5.1版本则是SUBSTR( HEX( RID_BIT()),5,8) ,得到的都是页编号的16进制表达。

回复

使用道具 举报

千问 | 2014-2-14 16:38:54 | 显示全部楼层
komicakomica 发表于 2014-11-16 08:55
真需要获取具体页编号吗?一般只需要知道读取页的数量就可以了吧。
如果只需要页读取数量的话,可以参考ht ...

到不需要知道具体页号。只是想知道索引走的方式。
rid_bit这个是表的吧?我想知道是扫描了哪些索引页。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行