分类: Oracle
2012-12-06 09:55:18
在oracle中,我们经常以为建立了索引,sql查询的时候就会如我们所希望的那样使用索引,事实上,oracle只会在一定条件下使用索引,这里我们总结数第一点:oracle会在条件中包含了前导列时使用索引,即查询条件中必须使用索引中的第一个列。
例如,假定应用程序经常查询雇员表中的 last_name、 job_id 和薪金列。同时假定 last_name 有很高的基数,也就是相对于表的总行数来说,不同值的数目很大。按以下的列顺序创建索引:
CREATE INDEX employees_ix
ON employees (last_name, job_id, salary);
如果查询会访问所有的三个列,或仅 last_name 列,或仅 last_name 和job_id 列,则会使用此索引。在本例中,不访问 last_name 列的查询,将不会使用索引。