首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

无法理解,为什么下面两个查询语句的查询计划差别这么大解决办法

2012-02-03 
无法理解,为什么下面两个查询语句的查询计划差别这么大usenorthwindgoselect*fromorderswhereorderdate 2

无法理解,为什么下面两个查询语句的查询计划差别这么大
use   northwind
go
select   *   from   orders   where   orderdate= '20060307 '
select   *   from   orders   where   orderdate= '20060307 '   or   orderdate   is   null
当查看这两条语句的查询计划时,发现它们差别很大,不知为什么?谁能解释一下,谢谢.

[解决办法]
你表里很多NULL的值,用select * from orders where isnull(orderdate, ' ')= '20060307 '
就一樣了
[解决办法]
use northwind
go
select * from orders where orderdate= '20060307 '
select * from orders where orderdate= '20060307 ' or orderdate is null

测试了一下,速度一样,都是0秒.

select * from orders where orderdate= '20060307 ' or orderdate is null
顶多加个条件,应该不会有多大影响.
[解决办法]
查询成本是50%对50%,效率一样。
[解决办法]
是很奇怪。
[解决办法]
持续关注中,一楼回帖说的不明白,语法有错误....isnull,可以那么打么...

热点排行