0

我在使用以下查询时遇到了一些问题:

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

当我在没有联合的情况下单独运行每个查询时,它们会快速执行(<5 秒),但是当我使用联合运行它时,它需要永远执行(事实上它所说的只是执行。我还没有看到它成功运行)

在 OtherDB.dbo.Signatures 中,签名字段是 varbinary(max) 而在 AppDB.dbo.Signatures 中,该字段是图像,这就是我使用转换表达式的原因。有谁知道问题可能是什么以及我该如何解决?

谢谢

4

1 回答 1

1

我想知道是不是因为您使用的是 UNION 而不是 UNION ALL。UNION 本身将删除数据集之间的重复行。这可能会导致您的 blob 字段出现延迟。看看使用 UNION ALL 是否有区别。

于 2009-12-17T17:36:54.883 回答