首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用INDEXing优化Oracle数据库

用INDEXing优化Oracle数据库
EN

Stack Overflow用户
提问于 2016-10-29 23:51:43
回答 1查看 45关注 0票数 1

我有三个表(学生,教师和成绩),我想通过索引一些列或其他词创建二级物理结构来优化以下查询。我的问题是:

代码语言:javascript
复制
select * from STUDENT S, FACULTY F
where S.facul=F.facul AND S.grade NOT IN (
select overall from grades G
where overall > 500 and overall < 1900);

我不能像"where S.grade <= 500 OR S.grade >= 1900“那样使用,因为在GRADES表中有很多其他的选项,我稍后会用到。因此,从评分表中进行选择是很重要的。

我是一个关于Oracle SQL的初学者,所以请帮助我,并且更具体。

EN

回答 1

Stack Overflow用户

发布于 2016-10-29 23:59:49

这是您的查询(重写了一点):

代码语言:javascript
复制
select *
from STUDENT S join
     FACULTY F
     on S.facul = F.facul 
where S.grade NOT IN (select g.overall
                      from grades G
                      where overall > 500 and overall < 1900
                     );

not in真的很没用。您可以将其编写为:

代码语言:javascript
复制
select *
from STUDENT S join
     FACULTY F
     on S.facul = F.facul 
where S.grade <= 500 OR S.grade >= 1900 ;

然后,您需要索引。我觉得STUDENT(grade, facul)FACTULRY(facul)应该行得通。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40320865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档