سؤال

وأواجه بعض المشاكل مع الاستعلام التالي:

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 مجال التوقيع هو ثنائي متغير (الحد الأقصى) وفي AppDB.dbo.Signatures الحقل صورة وهذا هو السبب أنا باستخدام التعبير تحويل. لا أحد يعرف ما يمكن أن تكون المشكلة وكيف يمكن أن تذهب نحو تحديد ذلك؟

والشكر

هل كانت مفيدة؟

المحلول

وأنا أتساءل عما إذا كان لأنك تستخدم UNION بدلا من UNION ALL. سوف UNION في حد ذاته إزالة صفوف مكررة بين مجموعات البيانات. وهذا قد تكون السبب في حدوث تأخير في الحقل سائل الخاص بك. معرفة ما إذا كان هناك اختلاف باستخدام UNION ALL.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top