Probleme mit einer Union-Abfrage mit einem Bild / varbinary Feld
-
20-09-2019 - |
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
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.