【发布时间】: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