使用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。)