HOW TO: استخدام خطة KEEPFIXED إلى تعطيل Recompilations إجراء مخزّن

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

اضغط هنا لرابط المقالة باللغة الانجليزية276220
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
في بعض الحالات حيث recompiled الإجراءات المخزنة قد تفوق التكلفة recompilation الفائدة مشتق من القيام بذلك. لاحظ أن لأن خدمة ملقم SQL Pack 2 (SP2) الأقدم لا تعتمد recompilation مستوى عبارة الإجراء المخزن بأكمله يجب أن يكون recompiled عند تشغيل ترجمة. لذلك، قد أحياناً زيادة عدد recompiles تشغيلها أثناء تنفيذ الإجراء المخزن والطول الإجراء المخزن الفترة الإجمالية تنفيذ الإجراء المخزن.

بادئاً في SQL Server 7.0 SP3 أو تلميح استعلام جديدة خطة KEEPFIXED لقد تم تقديم للمساعدة في الحالات حيث يكون التكلفة recompilation أكثر من التكلفة باستخدام خطة الموجودة.

يفرض تلميح الاستعلام تخطط KEEPFIXED للمحسن الاستعلام عدم إعادة ترجمة استعلام لحدوث تغييرات في إحصائيات أو تغييرات عمود مفهرس (على سبيل المثال، تحديث أو حذف أو إدراج). للحصول على معلومات إضافية حول كيفية استكشاف أخطاء recompilation الإجراء المخزن انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
243586INF: إجراء مخزّن Recompilation استكشاف أخطاء
back to the top

رمز نموذج استخدام التلميحات خطة KEEPFIXED

نموذج التعليمة البرمجية في هذا المقطع من مقالة "قاعدة معارف Microsoft" التالية:
243586INF: إجراء مخزّن Recompilation استكشاف أخطاء
   drop procedure RowModifications    go   create procedure RowModifications as   -- assume SomeTable exists with the same definition as #t,    -- and has over 1000 rows   create table  #t (a int )   select * from  #t   insert  #t select * from retest   select count(*) from #t  where a = 37   --option (keepfixed plan)   go   exec RowModifications   go   exec RowModifications   go  				
تنفيذ الثاني من الإجراء RowModifications التعليمة البرمجية التالية يتسبب في recompilation:
  select count(*) from #t where a = 37				
إذا كنت تستخدم هذه التعليمة البرمجية:
Option (keepfixed plan)				
في هذا الاستعلام لا يؤدي الاستعلام recompilation مرة أخرى:
select count(*) from #t  where a = 37 option (keepfixed plan) 				
ملاحظة هذا التلميح استعلام يتم تطبيقه على مستوى عبارة و لا يؤثر على نطاق الإجراء المخزن بأكمله. إذا كنت ترغب في أن يقوم هذا الخيار للتأثير على عبارات متعددة في إجراء مخزن يجب أن تقوم بتنفيذ كل جملة تلميح تطبيق ملقم SQL إلى سلوك. لا يتوفر هذا التلميح لـ SQL Server 7.0 المزود بحزمة الخدمة Service Pack 2 (SP2) أو إصدار سابق.back to the top

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

خصائص

رقم الموضوع: 276220 - آخر مراجعة: 12/05/2015 22:10:07 - المراجعة: 5.4

Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition

  • kbnosurvey kbarchive kbmt kbhowtomaster kbinfo KB276220 KbMtar
تعليقات