Chinaunix首页 | 论坛 | 博客
  • 博客访问: 164837
  • 博文数量: 52
  • 博客积分: 2295
  • 博客等级: 大尉
  • 技术积分: 540
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-22 17:42
文章分类

全部博文(52)

文章存档

2013年(1)

2012年(11)

2011年(1)

2010年(31)

2009年(8)

我的朋友

分类: 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 列的查询,将不会使用索引。

 

阅读(982) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~