一个SELECT语句的优化问题! 语句上 考虑将 能过滤大量数据的条件写在最后面另外一个重要的方面就是是否使用了索引为where 中使用的列 创建索引。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 除了楼上说的,还要注意一点:3个表的排序,SC,STUDENT,COURCE ORACLE 在执时是从左往又的顺序的所以要尽量把能过滤掉多的条件放在WHERE 的右边FROM 后面的表,尽量把数据少的放在右边还有就是建立索引Select姓名, 成绩from SC, STUDENT, COURSE where STUDENT. 学号=SC. 学号 and SC. 课程号=COURSE. 课程号 and STUDENT. 系别=’IS’ 楼主最好把这个语句的执行计划发出来看看。Oracle执行时是否按照“Where子句从右往左,From子句从左往右”的顺序来执行SQL还要看你的优化器是否选用的是基于规则的优化模式。 楼主,如果你查的结果数据量比较大(至少上万条记录),则为了提高速度可以考虑建索引,考虑一下zzwind5()对于oracle后台执行的规则,但我看了你的语句有点疑问:为什么要关联进课程表COURSE?Select姓名, 成绩from STUDENT, SC where STUDENT. 学号=SC. 学号 and STUDENT. 系别=’IS’就可以了啊 索引。。。 split partition 用法 大家看看下面这个需求,如何来写? 一个函数来合并一列中相同行的值 如果确保多台DB Server(异地)之间数据的一致性? 求一条sql急,答对马上给分结贴 如何在oracle8i下进行3个表的全连接 存储过程Invalid的问题,需重新编译,探讨中...... 帮忙写个sql语句 PLSQLDeveloper监听服务无法连接描述符中请求的服务 高手进来!!!一个关于主从表联合查询的问题!!! 一条语句总是执行不完,大家帮忙分析~谢谢!
3个表的排序,SC,STUDENT,COURCE
所以要尽量把能过滤掉多的条件放在WHERE 的右边
FROM 后面的表,尽量把数据少的放在右边
还有就是建立索引Select姓名, 成绩from SC, STUDENT, COURSE
where STUDENT. 学号=SC. 学号 and SC. 课程号=COURSE. 课程号
and STUDENT. 系别=’IS’
Oracle执行时是否按照“Where子句从右往左,From子句从左往右”的顺序来执行SQL还要看你的优化器是否选用的是基于规则的优化模式。