Frage

Ich habe einige Probleme mit der folgenden Abfrage:

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

Wenn ich sie jede der Abfragen separat ohne die Union ausführen ausführen sie schnell (<5 Sekunden), aber wenn ich laufe es die Vereinigung mit immer es nimmt auszuführen (infact alle heißt es ausgeführt wird. Ich habe nicht gesehen es erfolgreich ausgeführt)

In OtherDB.dbo.Signatures das Unterschriftsfeld ist ein varbinary (max) und in AppDB.dbo.Signatures das Feld ist ein Bild, das ist, warum ich den convert Ausdruck verwenden. Weiß jemand, was das Problem sein könnte und wie ich über die Festsetzung es gehen kann?

Danke

War es hilfreich?

Lösung

Ich frage mich, ob es ist, weil Sie eine UNION statt einer UNION ALL verwenden. UNION selbst wird um doppelte Zeilen zwischen den Datensätzen. Dies kann eine Verzögerung auf Ihrem BLOB-Feld verursachen. Prüfen Sie, ob es einen Unterschied mit UNION ALL.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top