![]() |
1
0
是的,查询几乎肯定会使用其中一个索引来预先选择哪些行可能至少填满某些条件。为了检查where子句对于未编制索引的列(如您的列h)是否为true,oracle只检查表本身。由于索引指向表的正确物理位置,这通常非常快。 使用哪种索引,取决于许多因素,如表的大小、索引的大小、表列的唯一性、索引的唯一性、列值的数据分布等。 要查看查询中使用了哪些索引,请查看执行计划,例如,您可以在sql developer中按f10来查看该计划。
编辑:根据我的经验,Oracle选择最有前途的索引(这将最大程度地减少行数),然后检查
请确保该表的统计数据是最新的。如有疑问,请咨询
如果上次分析的数据为空或是旧数据,请搜索dbms_stats.gather_table_stats以刷新数据。 |