我正在尝试学习索引。我查看了工作中数据库中使用的实际索引。
我查看了两个随机索引:
SELECT
INDEX_NAME, INDEX_TYPE, LEAF_BLOCKS, DISTINCT_KEYS
FROM ALL_INDEXES
WHERE TABLE_NAME = 'TRANS'
AND INDEX_NAME IN ('TRANS_PK','TRANS_ORD_NO')
这给出了:
INDEX_NAME | INDEX_TYPE | LEAF_BLOCKS | DISTINCT_KEYS |
TRANS_PK | NORMAL | 13981 | 3718619 |
TRANS_ORD_NO| NORMAL | 17052 | 43904 |
这对我来说毫无意义;与实际表不同(column_name)不应该产生相同的数字吗?它没有!
SELECT COUNT(DISTINCT ORD_NO) FROM trans
..给 20273
TRANS_PK 是名为 NO 的列的索引。
SELECT COUNT(distinct NO) FROM trans
...给出 4 328 622
我没有得到什么?选择不同的应该导致与“不同的键”相同的数字 - ALL_INDEXES 表中的列?