是否可以使用 SQL*Plus 查看索引内的内容?
如果我有一个这样的表:
Table A
------------------------
rowid | id name
123 | 1 A
124 | 4 G
125 | 2 R
126 | 3 P
其中id
是主键,我希望索引是这样的
index on A.id
-------------
id rowid
1 123
2 125
3 126
4 124
是否有一些 SQL 查询可以让我实际查看索引的内容?
最佳答案
这不是一个简单的查询 - 您可以将表或索引 block 转储到跟踪文件,但您必须识别您感兴趣的 block 。Dion Cho 有一个 example介绍如何使用 SQL 处理此 block 转储,但这不适合胆小的人。
但是,您可以这样做:
select /* index_ffs (a [name of index]) */
id, rowid
from a
where id is not null
order by id, rowid;
Oracle 不会写入所有被索引的值都为空的索引条目,因此如果 id 可为空,我们需要将其过滤掉。 index_ffs 提示强制 Oracle 满足读取索引 block 而不是数据 block 的查询。此“解决方案”不显示根或分支 block 中的数据,而 block 转储可以。
关于sql - 如何查看 Oracle 索引的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459931/