在 where 条件下检查 NULL varchar(max)
Posted
技术标签:
【中文标题】在 where 条件下检查 NULL varchar(max)【英文标题】:Check for NULL varchar(max) in where condition 【发布时间】:2018-11-21 14:25:10 【问题描述】:在 SQL Server 2008 R2 中,我正在尝试运行此查询
select
count(ID_FILE)
from
MY_FILES
where
DOCUMENT IS NULL
DOCUMENT
是 filestream
varchar(max)
blob 列。
查询
select ID_FILE
from MY_FILES
2秒后返回,如果我加上where
条件,就无穷无尽了。
这个表总共有20GB的blob,是不是IS NULL
勾选“傻瓜”,所以必须扫描所有20GB的数据来检查NULL
s?
谢谢。
【问题讨论】:
【参考方案1】:拉布拉卡,
以下帖子可能对您有所帮助:
Empty BLOBS - SQL Server
【讨论】:
您好,谢谢。我尝试按照帖子中的建议将 'where DOCUMENT IS NULL' 替换为 'where datalength(DOCUMENT) = 0',无论如何它都非常慢。不知何故,我希望检查 NULL 的速度非常快。以上是关于在 where 条件下检查 NULL varchar(max)的主要内容,如果未能解决你的问题,请参考以下文章
Oracle left outer join with is null in JOIN vs WHERE 条件(示例)