SQL优化的问题,高手请入!!
目前在处理问题时,发现以下两条SQL语句
1、
select a.* from wenjian_recive a,bcbs_gongwen b where a.a3='zhangsan' and ((not length(a.att2)>0) or (not a.att2=a.a3)) and a.a5=0 and a.n3 in (2,3) and '1114853495640'=(select bcbs_gongwen.att1 from bcbs_gongwen where bcbs_gongwen.id=a.qid) order by a.id desc
2、
select a.* from wenjian_recive a,bcbs_gongwen b where a.a3='lisi' and ((not lengt(a.att2)>0) or (not a.att2=a.a3)) and a.a5=0 and a.n3 in (2,3) and '1114853495640'=(select bcbs_gongwen.att1 from bcbs_gongwen where bcbs_gongwen.id=a.qid) order by a.id desc
在执行时有明显的速度差异,其中第一条表现的很慢(约60s)。
请问各位sql高手:这主要是由于什么原因造成的?
在组织and从句时该遵循什么样的原则,是条件越严格的放在越前面吗?
欢迎大家多多讨论!
1、
select a.* from wenjian_recive a,bcbs_gongwen b where a.a3='zhangsan' and ((not length(a.att2)>0) or (not a.att2=a.a3)) and a.a5=0 and a.n3 in (2,3) and '1114853495640'=(select bcbs_gongwen.att1 from bcbs_gongwen where bcbs_gongwen.id=a.qid) order by a.id desc
2、
select a.* from wenjian_recive a,bcbs_gongwen b where a.a3='lisi' and ((not lengt(a.att2)>0) or (not a.att2=a.a3)) and a.a5=0 and a.n3 in (2,3) and '1114853495640'=(select bcbs_gongwen.att1 from bcbs_gongwen where bcbs_gongwen.id=a.qid) order by a.id desc
在执行时有明显的速度差异,其中第一条表现的很慢(约60s)。
请问各位sql高手:这主要是由于什么原因造成的?
在组织and从句时该遵循什么样的原则,是条件越严格的放在越前面吗?
欢迎大家多多讨论!
...全文
相关推荐
SQL优化 SQL优化软件 SQL优化工具
SQL优化 SQL优化软件 SQL优化工具 很好用的工具,可以分析优化TSQL语句,oracle数据库语句优化工具
SQL的学习资料!!很有用的!!很多时候可以当做工具书查找。
SQL的学习资料!!很有用的!!很多时候可以当做工具书查找。
SQL Server中的SQL语句优化与效率问题
很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如: select * from table1 where name=’zhangsan’ and tID > 10000 和执行: select * from table1 where tID > 10000 and name=’zhangsan’ 一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则要先从全表中查找看有几个name=’z
SQL Server SQL优化
SQL Server SQL优化
sql优化sql优化sql优化sql优化sql优化
sql优化sql优化sql优化sql优化


