【问题标题】:Efficiency of checking for null varbinary(max) column?检查空 varbinary(max) 列的效率?
【发布时间】:2010-05-12 04:18:55
【问题描述】:

使用 SQL Server 2008。

示例表:

CREATE table dbo.blobtest
(id int primary key not null,
name nvarchar(200) not null, 
data varbinary(max) null)

查询示例:

select id, name, 
cast((case when data is null then 0 else 1 end) as bit) as DataExists 
from dbo.blobtest 

现在,查询需要返回一个“DataExists”列,如果 blob 为 null,则返回 0,否则返回 1。

这一切都很好,但我想知道它的效率如何。即 SQL 服务器是否需要将整个 blob 读取到其内存中,或者是否有一些优化以便它只进行足够的读取来确定 blob 是否为空?

(FWIW,此示例中 sp_tableoption“大值类型超出行”选项设置为 OFF)。

【问题讨论】:

    标签: sql-server sql-server-2005 tsql sql-server-2008


    【解决方案1】:

    它使用NULL bitmap。所以没有。

    【讨论】:

      【解决方案2】:

      实际上它无法读取 blob,因为没有 blob 开头;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-10
        • 2022-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多