Sql server 2005 带有image/varbinary字段的联合查询存在问题

Sql server 2005 带有image/varbinary字段的联合查询存在问题,sql-server-2005,performance,union,varbinary,Sql Server 2005,Performance,Union,Varbinary,我在以下查询中遇到一些问题: SELECT v.idnum ,v.full_name ,convert(varbinary(max),s.signature) as Sig FROM AppDB.dbo.v_People1 AS v INNER JOIN OtherDB.dbo.Signatures AS s ON v.idnum = s.idnum UNION SELECT v.idnum

我在以下查询中遇到一些问题:

SELECT  v.idnum
       ,v.full_name
       ,convert(varbinary(max),s.signature)  as Sig
FROM         AppDB.dbo.v_People1 AS v INNER JOIN
                      OtherDB.dbo.Signatures AS s ON v.idnum = s.idnum

UNION

SELECT  v.idnum
   , v.full_name
   , convert(varbinary(max), s.signature) as Sig
FROM         AppDB.dbo.v_People2 AS v INNER JOIN
                      AppDB.dbo.Signatures AS s ON v.idnum = s.idnum

当我在没有联合的情况下单独运行每个查询时,它们执行得很快(我想知道这是否是因为您使用的是UNION而不是UNION ALL。UNION本身会删除数据集之间的重复行。这可能会导致blob字段延迟。查看使用UNION ALL是否有差异。

这修复了它。谢谢!为什么检查一行是否重复会使速度慢得多呢?其他e在第一个查询中只有40行,在第二个查询中大约有10行。这与blob字段有关,它们实际上不具有可比性(也不能在它们上使用DISTINCT),因此联合会会对此感到窒息是有道理的。我可以四处寻找更技术性的解释。