sql查询效率问题
我写了一条sql语句,如下:
这条sql语句执行时,用了一个小时也没有查询出数据;
但是如果说我将g.ATTENDANCE_COUNT1,g.ATTENDANCE_COUNT2(也就是代码中的第10,11行)这两行注释掉,不查询出来,就只要4秒左右就能显示结果。
请问下,这是什么原因? 难度就因为多显示视图中的2个字段,查询速度就会相差这么多?
PS:ATTENDANCE表中的数据量比较大。
select
a.ID AS ID, a.P_ID AS P_ID, a.YEAR as YEAR, a.TERM as TERM, a.TEACHING_DATE AS TEACHING_DATE, a.WEEK_NO AS WEEK_NO, a.WEEK AS WEEK, a.TOPIC_HOUR AS TOPIC_HOUR, a.CHAPTER AS CHAPTER,
a.DISCIPLINE as DISCIPLINE, a.SAFETY_EDUCATION AS SAFETY_EDUCATION, a.MULTI_MEDIA as MULTI_MEDIA, a.MEMO AS MEMO,
b.CLASS_NAME as CLASS_NAME,
c.COURSE_NAME as COURSE_NAME,
d.ACADEMY_NAME as ACADEMY_NAME,
e.DEPT as DEPT, e.USERNAME as USERNAME,
f.AREA_CODE as AREA_CODE, f.AREA_NAME as AREA_NAME
, g.student_count
, g.ATTENDANCE_COUNT1
, g.ATTENDANCE_COUNT2
--,(nvl(g.student_count, 0) - nvl(g.ATTENDANCE_COUNT1, 0)) as ATTENDANCE_COUNT1
--,(nvl(g.student_count, 0) - nvl(g.ATTENDANCE_COUNT2, 0)) as ATTENDANCE_COUNT2
from T_TEACHING_LOG a
left join T_CLASSES b on b.CLASS_CODE = a.CLASS_CODE
left join T_COURSE c on c.COURSE_CODE = a.COURSE_CODE
left join t_specialty d on b.specialty_code = d.specialty_code
left join T_USER e on e.ID = a.U_ID
left join T_AREA f on f.AREA_CODE = a.AREA_CODE
left join (
select o.P_ID, o.WEEK_NO, o.WEEK, o.TOPIC_HOUR,
(select count(*) from S_STATUS a where a.class_code = o.class_code and a.state_code = '01') AS student_count,
(select count(*) from T_ATTENDANCE a where a.M_ID = o.ID and substr(a.topic_hour,2,1) = '1' and a.ATTENDANCE in('旷课', '事假', '病假', '公假')) AS ATTENDANCE_COUNT1,
(select count(*) from T_ATTENDANCE a where a.M_ID = o.ID and substr(a.topic_hour,2,1) = '2' and a.ATTENDANCE in('旷课', '事假', '病假', '公假')) AS ATTENDANCE_COUNT2
from T_ATTENDANCE_MAIN o
where o.year = '2012~2013' and o.term = '第二学期'
) g on g.P_ID = a.p_Id and g.WEEK_NO = a.WEEK_NO and g.WEEK = a.WEEK and g.TOPIC_HOUR = a.TOPIC_HOUR
where a.year = '2012~2013'
and a.term = '第二学期'这条sql语句执行时,用了一个小时也没有查询出数据;
但是如果说我将g.ATTENDANCE_COUNT1,g.ATTENDANCE_COUNT2(也就是代码中的第10,11行)这两行注释掉,不查询出来,就只要4秒左右就能显示结果。
请问下,这是什么原因? 难度就因为多显示视图中的2个字段,查询速度就会相差这么多?
PS:ATTENDANCE表中的数据量比较大。
...全文
相关推荐
SQL查询语句优化研究 (1).pdf
在数据库操作中,应用程序的执行最终要通过SQL语句来完成,因此SQL语句效率的高低直接影响着数据库系统的性能。根据统计数据,大约90%的性能问题都是由于不恰当的SQL语句引起的。
用一句SQL解决SQL中断号问题 推荐
总的来说,SQL解决断号问题的关键在于理解如何在数据库层面有效地处理连续序列,并且考虑并发控制和事务一致性。合理地利用SQL的查询能力,可以更高效地处理这类问题,同时减轻应用层的压力。
SQL效率问题
SQL效率问题通常涉及到查询优化,包括正确的查询结构、子查询的使用以及JOIN操作的优化。2.
Sql效率查询
- **提高系统稳定性**:避免因低效查询导致的系统响应延迟或崩溃问题。#### 二、SQL效率查询脚本详解本脚本主要关注于统计指定时间段内SQL语句的执行效率,并筛选出资源占用较高的SQL语句。
完美解决MybatisPlus插件分页查询不起作用总是查询全部数据问题
在排查这类问题时,查看SQL日志是非常关键的步骤,它能帮助你确定SQL语句是否包含了分页条件。你可以通过日志输出或者使用数据库查询分析工具来查看实际执行的SQL,以确认问题所在。


