Sql server 2008 ISNULL会减慢查询速度
我们有一个表,它的值为NULL或“Accepted”。我的查询返回大约250行 如果我添加一个where条件-Sql server 2008 ISNULL会减慢查询速度,sql-server-2008,Sql Server 2008,我们有一个表,它的值为NULL或“Accepted”。我的查询返回大约250行 如果我添加一个where条件- AND Description = 'Accepted' ISNULL(Description, '') = 'Accepted' 我的250行在2秒内返回 但是,如果我添加一个where条件- AND Description = 'Accepted' ISNULL(Description, '') = 'Accepted' 我的250行在47秒内返回 是否有人在使用ISNUL
AND Description = 'Accepted'
ISNULL(Description, '') = 'Accepted'
我的250行在2秒内返回
但是,如果我添加一个where条件-
AND Description = 'Accepted'
ISNULL(Description, '') = 'Accepted'
我的250行在47秒内返回
是否有人在使用ISNULL函数时遇到性能问题?不幸的是,在编程上,我现在只能使用ISNULL。当在函数中包含一个字段时,它会改变优化器的运行方式,并强制优化器忽略索引
请参见此处:您也可以使用以下方法完全绕过这些函数:
WHERE(Description='Accepted'或Description为NULL)
如果您试图在WHERE条件下使用它,use为NULL,而不是ISNULL
从描述为空的表中选择字段
还是相反
从NOT description为null的表中选择字段
使用
在这种情况下,你的where条件没有任何意义。如果描述为空,则为的原始where子句
AND Description = 'Accepted'
这样就足够了。
基本上,在描述为null的每一行中,都将“”与“Accepted”进行比较
请详细说明您试图通过查询实现什么,我认为您可能走错了方向。出于兴趣,您如何“编程限制”?+1指出显而易见的问题:当为NULL时,两者的计算结果都为false/unknown,这实际上是相同的。我可能也忽略了这一点。