where条件的顺序是否对性能有影响啊?

cailee 2010-01-21 10:32:39
比如
select * from tbname
where col='1' and col='2'

假如条件col='2'的结果最少,把col='2'放到col='1' 前面会不会快一些?
...全文
255 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
starseeker7 2010-01-22
  • 打赏
  • 举报
回复
應該和上面大爺們所說,,,應該不會影響
至少是2005裏面,,
不過養成過濾大量的語句寫前面,按索引順序寫沒啥壞處,畢竟我們縂有接觸到2000的時候,而且天知道MS在那個自動優化裏面搞了什麽鬼,,,真那麽萬能,他也就不用提供什麽強制使用艘因什麽東東了,,,
還是得看具體的條件,,,實際情況,,,加反復的對一個語句進行測試比較 過於依賴經驗是不好的,,畢竟MSSQL不是開源的
yourname386 2010-01-22
  • 打赏
  • 举报
回复
把有主键和索引的放前面
lrjt1980 2010-01-22
  • 打赏
  • 举报
回复
我想应该是不会有影响,倒和索引的建立有关系。
rfq 2010-01-22
  • 打赏
  • 举报
回复
以前的版本应该是这样
whb147 2010-01-22
  • 打赏
  • 举报
回复
还是按照规则写吧
至少能节省优化的时间呀
nzperfect 2010-01-21
  • 打赏
  • 举报
回复
如果有,就是sql server 又需要改进了。
cailee 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 fredrickhu 的回复:]
具体楼主可以看看执行计划
[/Quote]
多谢。我去看看。
feixianxxx 2010-01-21
  • 打赏
  • 举报
回复
自动优化
cailee 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 beirut 的回复:]
sql2005 以前的版本会有影响,
o5及以后的都没有太大区别了,优化器越来越只能了
[/Quote]
看来SQL2K还是有区别的。谢谢。
cailee 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 orchidcat 的回复:]
1、楼主这个句子能得出结果吗?
2、where后,前后不是关键吧!


个人观点,仅作参考!
[/Quote]
手误,打错了后面的哪个应该是col2='2'但是相信大家都能看懂。
ruohan520 2010-01-21
  • 打赏
  • 举报
回复
没有考虑过
-狙击手- 2010-01-21
  • 打赏
  • 举报
回复
可选择性高时,如果有索引时。。。
zhoulun13688 2010-01-21
  • 打赏
  • 举报
回复
结论:对于select ... where ... 类型的语句。

对于OR条件,需要把命中率高的条件放在前面,应该把容易判断的条件写在前面。大地址写在前,小的写在后边
对于AND条件,需要把条件限制范围小的条件放在前面,它与or相反
所以楼主的题应把 col 放在前面
--小F-- 2010-01-21
  • 打赏
  • 举报
回复
具体楼主可以看看执行计划
--小F-- 2010-01-21
  • 打赏
  • 举报
回复
应该是一样的效率
2005以后SQL优化查询 会自动生成最优化的查询计划
黄_瓜 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 beirut 的回复:]
sql2005 以前的版本会有影响,
o5及以后的都没有太大区别了,优化器越来越智能了
[/Quote]
这个是FC告诉我的。谢谢
黄_瓜 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 garnett_kg 的回复:]
老问题

不会

SQL Server的计划生成是基於成本的,不是基於规则的


[/Quote]
我之前也有这个疑惑
比如说
select * from tb where id = 1 and  num  between 1 and 100000 and time >='002-02-01'
--是不是就会比
select * from tb where num between 1 and 100000 and time >='002-02-01' and id = 1
--效率高很多
--假定id=1 的记录很少,后面两个添加的筛选范围很大
肥龙上天 2010-01-21
  • 打赏
  • 举报
回复
看执行计划吧
yananguo_1985 2010-01-21
  • 打赏
  • 举报
回复
不会!
phoeni_xin 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chuifengde 的回复:]
这种情况sqlserver会自已优化
[/Quote]

看看
加载更多回复(7)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧