Проблемы с Union Query с полем image / varbinary - PullRequest
0 голосов
/ 17 декабря 2009

У меня возникли проблемы со следующим запросом:

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 секунд), но когда я запускаю его с использованием объединения, выполнение выполняется вечно (фактически, все, что он говорит, выполняется. Я не видел он успешно работает) </p>

В OtherDB.dbo.Signatures поле подписи является varbinary (max), а в AppDB.dbo.Signatures поле является изображением, поэтому я использую выражение преобразования. Кто-нибудь знает, в чем может быть проблема и как я могу ее исправить?

Спасибо

1 Ответ

1 голос
/ 17 декабря 2009

Интересно, это потому, что вы используете UNION вместо UNION ALL. UNION сам по себе удалит дублирующиеся строки между наборами данных. Это может вызвать задержку в вашем поле BLOB-объектов. Посмотрите, есть ли разница, используя UNION ALL.

...