【发布时间】:2011-02-13 18:41:26
【问题描述】:
我有一个表 (col1, col2, ...),索引在 (col1, col2, ...) 上。该表中有数百万行,我想运行一个查询:
SELECT col1, COUNT(col2) WHERE col1 NOT IN (<couple of exclusions>) GROUP BY col1
不幸的是,这会导致对表进行全表扫描,这需要一分钟以上的时间。有没有办法让 oracle 使用列上的索引来更快地返回结果?
编辑:
更具体地说,我正在运行以下查询:
SELECT owner, COUNT(object_name) FROM all_objects GROUP BY owner
并且在SYS.OBJ$ (SYS.I_OBJ2) 上有一个索引,它索引owner# 和name 列;我相信我应该能够在查询中使用这个索引,而不是对SYS.OBJ$进行全表扫描
【问题讨论】:
标签: oracle group-by indexing query-optimization