sql server 多表连接优化,大表放在前边好些,还是后边?where条件放前边表关联那里会不会快些?

如题所述

sql server 不像Oracle,它的查询是自己分析并决定先后的,所以你不用考虑where的先后。
但是有一些where条件的优化还是要考虑的,比如 =或exists 比 in 效率高等,具体你可以上网查。

SQL有一个功能叫“显示估计的执行计划”(在分析的蓝色勾右面,仔细找便可找到)
它会帮你分析执行计划,并给出相关的优化建议
你也可以根据分析结果,相应建INDEX等方式优化查询。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-20
不管你放在前面还是放在后面
SQLSERVER优化器会自己确定的 关联顺序 它会参考表的统计信息索引信息
来保证那种关联先最小输出行
你只要注意
1.关联的算法 是 哈希、合并、还是嵌套,性能从高到低嵌套->合并->哈希
2.优化查询条件,添加更多有利的类型索引
3.注意WHERE条件的表达式是否有效索引
4.减少不必要的结果列
你可以查看分析执行计划 看实际 执行的顺序
CLR+M 后 你再查询 在消息框里就能看见了
第2个回答  2011-06-20
我一般是用Left jion 联合查询,主表都放在前面,条件最好也放在后面,我觉得速度还行。
第3个回答  2011-06-20
前面!
第4个回答  2011-06-20
应该可以嗯

sql server 多表连接优化,大表放在前边好些,还是后边?where条件放前边表...
sql server 不像Oracle,它的查询是自己分析并决定先后的,所以你不用考虑where的先后。但是有一些where条件的优化还是要考虑的,比如 =或exists 比 in 效率高等,具体你可以上网查。SQL有一个功能叫“显示估计的执行计划”(在分析的蓝色勾右面,仔细找便可找到)它会帮你分析执行计划,并给出相关的优...

sql server有哪些查询优化方法
可以通过如下方法来优化查询 1、把数据、日志、索引放到不同的I\/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I\/O越重要. 2、纵向、横向分割表,减少表的尺寸(sp_spaceuse) 3、升级硬件 4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。...

sql server 中筛选条件在有关联表时放在where后面和放在on后面有什么区...
区别大了,on 是用在 表与表间(left join 、right join 、inner join 、full join)的连接条件 ,where是查询条件,两个是可以一起用的。如:select a.*,b.from a left join b --a表 左连接 b表 on a.id=b.aid --连接条件 where a.name = "column" --查询条件 ...

SQLSERVER中两个表联合条件查询,子查询较多,烦请大神出手看看这条SQL该...
楼主好,这样写确实是耽误效率。根据楼主的要求,其实可以先全部关联,然后where筛选后在外围汇总。具体SQL如下:select a.id,a.uName,sum(case when b._type =1 and S = 2 then s1 else 0 end )as a, sum(case when b._type =1 and S = 2 then s2 else 0 end )as b,sum(case whe...

如何解决SQL Server查询速度缓慢的问题
优化SQL Server查询速度的方法:1、把数据、日志、索引放到不同的I\/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I\/O越重要.2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)3、升级硬件4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注...

sql调优的几种方式
不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。10.在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。

sql server ,求sql 语句把单列的数据分为多行显示
你这就没有唯一号吗?没有规律可寻啊,你需要把所有规律都写出来 然后套用case when语句 大概是这样的 case when (月份=‘09’and 费用=‘诊疗费’ then 月份,费用1,金额,费用2,金额2 when 月份...)像这样如此往复

SQL 多表联合查询计算 是先联合还是先计算?
SQL Server结果:先筛选,再计算。根据就是看执行计划,见图。

如何提高SQL Server大数据条件下的查询速度?
1.关于索引优化 建索引的选择必须结合SQL查询、修改、删除语句的需要,一般的说法是在WHERE里经常出现的字段建索引。如果在WHERE经常是几个字段一起出现而且是用AND连接的,那就应该建这几个字段一起的联合索引,而且次序也需要考虑,一般是最常出现的放前面,重复率低的放前面。SQL Server提供了一种简化...

SQL server 数据库中 怎么样实现多表的左连接
您好:语句如下,请参考。。。SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.关联字段=表2.关联字段 LEFT JOIN 表3 ON (表1\/表2).关联字段=表3.关联字段 WHERE 条件

相似回答