أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

FIX: صلات خارجية مع معايير عامل التصفية قبل صلات غير المحدد و صلات خارجية إعادة ترتيب

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية318530
الخطأ رقم: 356418 (SHILOH_BUGS)
الأعراض
في حالة إرسال استعلام الذي يحتوي على واحد على الأقل صلة خارجية تحتوي حالة عامل تصفية في عبارة WHERE على الطاولة الداخلية من صلة خارجية (على سبيل المثال، شرط تصفية على الجدول الأيمن صلة خارجية يسرى أو الجدول الأيسر من صلة خارجية يمنى) SQL Server قد القيام الصلات المحدد أقل أولاً بدلاً من تنفيذ صلة خارجية المبكر حالة عامل التصفية وتطبيق. إذا كانت حالة عامل التصفية من صلة خارجية أحد معايير أكثر المحدد للاستعلام ، قد يؤدي الفشل في معالجة المعايير في الخطة إلى:
  • أحجام الصلة المتوسطة أكبر.
  • معالجة أعلى من استخدام الموارد بواسطة SQL Server.
  • وقت استجابة أبطأ للاستعلام.
الحل

دقة لـ SQL Server 2005

لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة لـ SQL Server 2005. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
913089كيفية الحصول على أحدث حزمة خدمة لـ SQL Server 2005
بعد تثبيت حزمة خدمة SQL Server 2005 يجب تشغيل إشارة تتبع 4101 لحل هذه المشكلة.

دقة لـ SQL Server 2000

لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة لـ Microsoft SQL Server 2000. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
290211كيفية الحصول على أحدث حزمة خدمة لـ SQL Server 2000
ملاحظة: تم إنشاؤه في الإصلاح العاجل التالي قبل إصدار Microsoft SQL Server 2000 Service Pack 3.

يجب أن يكون للنسخة الإنجليزية من هذا الإصلاح سمات الملفات التالية أو أحدث:
   Version       File name   -----------------------------   8.00.0584     Sqlservr.exe				
ملاحظة: بسبب تبعيات الملف، أحدث إصلاح عاجل أو الميزة التي تحتوي على الملفات قد تحتوي أيضًا على ملفات إضافية.

تصريح

حالة لـ SQL Server 2005

أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "تنطبق على".
تم تصحيح هذه المشكلة لأول مرة في Microsoft SQL Server 2005 المزود بحزمة الخدمة Service Pack 1.

حالة لـ SQL Server 2000

أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "تنطبق على".
تم تصحيح هذه المشكلة لأول مرة في Microsoft SQL Server 2000 Service Pack 3.
معلومات أخرى
السيناريو الصلة contrived التالي يستخدم قاعدة بيانات pubs (الناشرون) إلى عرض السيناريو:
set ansi_nulls offgouse pubsgocreate procedure dbo.ansi_nulls_param @P1 varchar(11) asselect t.title_id, a.au_id, ta.title_id, s.stor_id from titles t    left outer join titleauthor ta on ta.title_id = t.title_id   inner join authors a on a.au_id = t.title_id   inner join sales s on s.title_id = t.title_idwhere ta.title_id = @P1goexec dbo.ansi_nulls_param '123-45-6789'godrop proc dbo.ansi_nulls_paramgo--Slower Query Plan:       |--Filter(WHERE:([ta].[title_id]=[@P1]))            |--Nested Loops(Left Outer Join, OUTER REFERENCES:([t].[title_id]))                 |--Nested Loops(Inner Join, OUTER REFERENCES:([s].[title_id]))                 |    |--Nested Loops(Inner Join, OUTER REFERENCES:([s].[title_id]))                 |    |    |--Index Scan(OBJECT:([pubs].[dbo].[sales].[titleidind] AS [s]))                 |    |    |--Clustered Index Seek(OBJECT:([pubs].[dbo].[authors].[UPKCL_auidind] AS [a]), SEEK:([a].[au_id]=[s].[title_id]) ORDERED FORWARD)                 |    |--Clustered Index Seek(OBJECT:([pubs].[dbo].[titles].[UPKCL_titleidind] AS [t]), SEEK:([t].[title_id]=[s].[title_id]) ORDERED FORWARD)                 |--Index Seek(OBJECT:([pubs].[dbo].[titleauthor].[titleidind] AS [ta]), SEEK:([ta].[title_id]=[t].[title_id]) ORDERED FORWARD)--Faster Query Plan:       |--Nested Loops(Inner Join, OUTER REFERENCES:([a].[au_id]))            |--Nested Loops(Inner Join, OUTER REFERENCES:([t].[title_id]))            |    |--Filter(WHERE:([ta].[title_id]=[@P1]))            |    |    |--Nested Loops(Left Outer Join, OUTER REFERENCES:([t].[title_id]))            |    |         |--Index Scan(OBJECT:([pubs].[dbo].[titles].[titleind] AS [t]))            |    |         |--Index Seek(OBJECT:([pubs].[dbo].[titleauthor].[titleidind] AS [ta]), SEEK:([ta].[title_id]=[t].[title_id]) ORDERED FORWARD)            |    |--Clustered Index Seek(OBJECT:([pubs].[dbo].[authors].[UPKCL_auidind] AS [a]), SEEK:([a].[au_id]=[t].[title_id]) ORDERED FORWARD)            |--Index Seek(OBJECT:([pubs].[dbo].[sales].[titleidind] AS [s]), SEEK:([s].[title_id]=[a].[au_id]) ORDERED FORWARD)				
لاحظ أن الجدول titleauthor الجدول الأيمن صلة خارجية يسرى و WHERE شرط عبارة على titleauthor ليتم تطبيقها بعد صلة خارجية. يُظهر الإخراج خطة الاستعلام الأصلي, أبطأ حيث يتم تنفيذ كافة صلات داخلية أولاً ثم "صلة خارجية" و "عامل تصفية يتم تنفيذ آخر, على الرغم من أن حالة المحدد الأكثر للاستعلام. مخطط الاستعلام الثاني هو خطة مفروضة يوضح خطة أسرع سيبدو ، فيه صلة خارجية وعامل تصفية يتم تنفيذ أولاً، متبوعاً صلات داخلية المتبقية.

هذا سيناريو معينة يستمر للمحسن اختر خطة الأول حتى بعد تطبيق الإصلاح العاجل. هذا لأن هذه الجداول صغيرة لذلك التكلفة المقدرة خطة الأول منخفضاً بما يكفي أن فإنه يتم اعتبار أفضل لتشغيل فقط مع ذلك الخطة لمتابعة البحث عن بدائل اللاحقة. كما يزيد البيانات في الجداول التكلفة خطة الأول يصبح أعلى وبدء للمحسن اختر خطة الثاني.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 318530 - آخر مراجعة: 02/04/2008 17:13:56 - المراجعة: 5.1

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbmt kbhotfixserver kbqfe kbsqlserv2000sp3fix kbbug kbfix kbsqlserv2000presp3fix KB318530 KbMtar
تعليقات
>ody>/html>