قد تكون قيم التوقيت SQL Server غير صحيحة عند استخدام تقنيات تغيير ترددات CPU أو الأدوات المساعدة


ملخص


يستخدم Microsoft SQL Server 2005 العداد CPU عالي الاستبانة لتوفير قدرات توقيت ميكرو ثانية. هو ميكرو ثانية المليون من الثانية (أو الألف من الميلي ثانية). ومع ذلك، قد تكون القيم توقيت SQL Server غير صحيح في حالة استخدام تقنيات تغيير ترددات CPU. على سبيل المثال، قد تحدث هذه المشكلة عند استخدام أي من التقنيات التالية:
  • وحدة المعالجة المركزية التنقل
  • أية أم دي Cool'n ' الهادئ تقنية
  • أنظمة الطاقة المختلفة
تحتوي هذه المقالة على الأساليب ومعلومات إضافية لمساعدتك على حل هذه المشكلة.

الأعراض


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

السبب


تحدث هذه المشكلة نظراً لتغيير الترددات CPU عند استخدام هذه التقنيات. يستخدم SQL Server 2005 العداد CPU عالي الاستبانة لتوفير قدرات توقيت ميكرو ثانية. إذا تم تغيير الترددات وحدة المعالجة المركزية الحفاظ على الطاقة وخفض إنتاج الحرارة، مدد المحسوبة قد تكون غير صحيحة.

الحل


معلومات حزمة الخدمة

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

الحالة


تم تصحيح هذه المشكلة أولاً في SQL Server 2005 Service Pack 3.

الحل البديل


يتطلب SQL Server 2005 نقاط البيانات المعروفة ومستقرة لإجراء ضبط دقيق الأداء. إذا تم تمكين التعديلات تردد CPU الحيوية على الكمبيوتر، يمكنك تعطيلها حتى وحدات المعالجة المركزية في الحفاظ على معدل تردد ثابت قبل البدء في مراقبة وضبط أداء خادم SQL. للقيام بذلك، استخدم الطرق التالية.

تكوين نظام الطاقة على جهاز الكمبيوتر لفرض وحدات المعالجة المركزية أن يبقى الحد الأقصى تردد

للقيام بذلك، اتبع الخطوات التالية:
  1. انقر فوق ابدأ، ثم انقر فوق تشغيل، اكتب Powercfg.cpl، وثم انقر فوق موافق.
  2. في مربع الحوار خصائص خيارات الطاقة ، انقر فوق دوماً في قائمة أنظمة الطاقة .
  3. انقر فوق موافق.
قد تحدث الشباك عائمة. انجراف اختلاف بين القيم تواتر وحدة المعالجة المركزية. لمزيد من المعلومات، راجع المقطع "الانحراف". في هذه الحالة، يجب إعادة تشغيل Microsoft Windows المزامنة على ترددات كافة وحدات المعالجة المركزية بعد تغيير نظام الطاقة.

لا يمكن إعادة تشغيل الكمبيوتر، تمكين ترابط المعالج SQL Server لمنع نقل بين وحدات المعالجة المركزية مؤشرات ترابط العامل SQL Server. عند القيام بذلك، لا يلزم إعادة تشغيل الكمبيوتر حتى في حالة حدوث اختلاف بين القيم تواتر وحدة المعالجة المركزية. لتمكين ترابط المعالج SQL Server لكافة وحدات المعالجة المركزية على الخادم، يجب استخدام قناع مختلفة، اعتماداً على عدد المعالجات المنطقية الموجودة على الخادم.

يسرد الجدول التالي أمثلة السيناريوهات.
رقم وحدة المعالجة المركزيةبيانات لتمكين تقارب المعالج
02 وحدات المعالجة المركزيةsp_configure exec 'قناع تقارب'، 0x00000003
الانتقال
إعادة تكوين
الانتقال
04 وحدات المعالجة المركزيةsp_configure exec 'قناع تقارب'، 0x0000000F
الانتقال
إعادة تكوين
الانتقال
08 وحدات المعالجة المركزيةsp_configure exec 'قناع تقارب'، 0x000000FF
الانتقال
إعادة تكوين
الانتقال
وحدات المعالجة المركزية 16sp_configure exec 'قناع تقارب'، 0x0000FFFF
الانتقال
إعادة تكوين
الانتقال
32 وحدات المعالجة المركزيةsp_configure exec 'قناع تقارب'، 0xFFFFFFFF
الانتقال
إعادة تكوين
الانتقال
ملاحظة: قد تكون غير كافية لتعطيل ميزات التباينات تواتر وحدة المعالجة المركزية على مستوى BIOS. أدوات مساعدة خارجية متنوعة يمكن تغيير الترددات وحدة المعالجة المركزية. تمكين بعض تطبيقات تكرار التعديلات حتى عندما تكون وحدات المعالجة المركزية تحت إعدادات نظام الحد الأقصى من الطاقة. في هذه الحالة، عليك تعطيل هذه الأدوات المساعدة الخارجية عندما تقوم بضبط في SQL Server 2005 الأداء.

استخدام برامج التشغيل والأدوات المساعدة الخارجية لمزامنة ترددات CPU وعدادات ساعة وحدة المعالجة المركزية

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

مزيد من المعلومات


Microsoft SQL Server 2000 والإصدارات السابقة من SQL Server استخدام آليات توقيت Windows. آليات توقيت استخدام قيم الدقة مللي ثانية. بشكل عام، هذه الدقة السيدة 10 إلى 15 ومع ذلك، قد تكون الدقة قدر 55 ms. استعلامات SQL Server كثيرا ما تكتمل ضمن مللي ثانية ذات الأرقام المفردة أو النطاقات الزمنية ميكرو ثانية. تتطلب هذه الدقة مؤقت عالية الدقة. لذلك، هذه الإصدارات من تقرير SQL Server مدة بعض الاستعلامات كالسيدة 0 لذلك، من الصعب رصد الأداء وضبط أداء خادم SQL في الإصدارات السابقة من SQL Server.

SQL Server 2005 تحسين دقة باستخدام عداد CPU عالي الاستبانة لتوفير قدرات توقيت ميكرو ثانية. عند استخدام تقنيات المسردة في قسم "الملخص"، قد تكون قيم التوقيت التي تم الإبلاغ عنها غير صحيحة.

قد تؤثر هذه المشكلة على الكائنات والميزات التالية:
  • تتبع الأحداث:
    • الحدث الانتباه
    • الأحداث في عقده "الإجراءات المخزنة"
    • الأحداث في عقده TSQL
    • الأحداث في عقده الكائنات
    • الأحداث في عقده الحركات
  • طرق عرض إدارة الحيوي:
    • sys.dm_exec_query_stats
    • sys.dm_exec_requests
    • sys.dm_exec_sessions
    • sys.dm_io_pending_io_requests

    • sys.dm_os_ring_buffers
    • sys.dm_os_sys_info
    • sys.dm_io_virtual_file_stats
    • sys.dm_os_wait_stats
  • بيان وقت "تعيين الإحصائيات"
  • جدول النظام sysprocesses
بعد تثبيت حزمة الخدمة service Pack 2 (SP2) SQL Server 2005، تسجيل SQL Server رسالة خطأ في سجل الخطأ عند اكتشاف ملقم SQL أن توقيت عالية الدقة غير متزامنة بين وحدات المعالجة المركزية. تشير رسالة الخطأ إلى أن توقيت الأداء قد لا يكون دقيقا، ويجب على المستخدمين استخدام بيانات الأداء بحذر.

نص رسالة الخطأ مشابهة لإحدى رسائل الخطأ التالية:
رسالة الخطأ 1
لم يتم مزامنة عداد طابع الوقت من وحدة المعالجة المركزية على معرف جدولة 2 مع وحدات المعالجة المركزية الأخرى.
رسالة الخطأ 2
تغيرت وتيرة ختم وقت وحدة المعالجة المركزية من 191469 إلى 1794177 علامات كل مللي ثانية. سيتم استخدام تردد جديد
يستخدم SQL Server التعليمة عداد طابع الوقت الحقيقي (RDTSC) للحصول على حساب التجزئة CPU 64 بت. يمكنك تقسيم هذه القيمة بوتيرة وحدة المعالجة المركزية لتحويل القيمة إلى قيم مللي ثانية. يمكن أن يحدث تباينات التوقيت عند حدوث تغييرات تردد CPU أو الانحراف.

وحدة المعالجة المركزية التنقل

وحدة المعالجة المركزية تعريف التنقل كتغيير متعمد في وتيرة وحدة المعالجة المركزية. وحدة المعالجة المركزية التنقل قد يكون المعروف بتقنية Intel SpeedStep أو AMD PowerNow! تقنية. عندما وحدة المعالجة المركزية، تحدث التنقل قد زيادة سرعة وحدة المعالجة المركزية أو إنقاصها بزيادات صغيرة مثل 50 ميغاهرتز الحفاظ على الطاقة وخفض إنتاج الحرارة. عدم ضبط وحدات المعالجة المركزية الموجودة في نفس العقدة الوصول (NUMA) ذاكرة غير منتظمة الترددات بشكل مستقل.

يوضح الجدول التالي كيفية تأثير التغييرات تدرج وحدة المعالجة المركزية على توقيت العمليات الحسابية.
الإجراءعلامات التجزئة RDTSCعلامات التجزئة كل مللي ثانية (تكرار)وقت ساعة الجدار
بدء مجموعة12000
تردد خطوة لأسفل2001001ms
نهاية المجموعة5003ms
إجماليات5004ms
يلتقط SQL Server علامات التجزئة RDTSC في البداية والنهاية RDTSC علامات التجزئة. وبعد ذلك، يقسم SQL Server علامات التجزئة بقيمة التردد.

في هذا المثال، تحدث العمليات الحسابية توقيت التالية عند استخدام قيمة تردد 100 أو 200:
  • تردد 200: 500/200 = 2.5 مللي ثانية
  • تردد 100: 500/100 = 5 مللي ثانية
يطابق أيا من العمليات الحسابية توقيت وقت ساعة الجدار الفعلي 4 مللي ثانية.

إذا تم استخدام هذا الحساب في RPC: إكمال أعمدة بيانات الحدث و مدتها و وقت انتهاء التتبع يتم الإعلام عنها بشكل غير صحيح. RPC: إكمال وقت ساعة الجدار البداية يلتقط الحدث وحساب التجزئة CPU. للحصول على أعلى دقة التوقيت مما يوفر Windows في SQL Server 2005 و المدة و تاريخ الانتهاء من أعمدة البيانات في ملقم SQL التتبع يتم حسابها باستخدام عدد التجزئات CPU المنقضية. يتم حساب العمود وقت الانتهاء بإضافة العمود المدة للعمود وقت البدء . في هذا المثال، يتم حساب العمود وقت الانتهاء بإضافة 5 مللي ثانية أو 2.5 مللي ثانية لوقت البدء بشكل غير صحيح.

الدفق

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

يوضح المثال التالي كيف تؤثر التغييرات الانجراف نتيجة عمود البيانات المدة في تتبع SQL Server. المثال يفترض أن وتيرة وحدة المعالجة المركزية وما زال ثابت 200 علامات التجزئة كل مللي ثانية. يوضح الجدول التالي الأحداث في هذا السيناريو.
الإجراءجدولة Windows وحدة المعالجة المركزيةRDTSC 1 وحدة المعالجة المركزيةRDTSC 2 وحدة المعالجة المركزيةوقت ساعة الجدار
بدء مجموعة110011000
نهاية المجموعة290019004 ms
إجماليات4 ms
يلتقط SQL Server علامات التجزئة RDTSC عند كل نقطة البداية ونقطة النهاية. ثم، SQL Server قسمة علامات التجزئة RDTSC قيمة التردد. في هذا المثال، جدولة Windows مؤشر ترابط العامل SQL Server على مختلف وحدات المعالجة المركزية اثنان. تشغيل مؤشر ترابط العامل SQL Server خدمات الدفعة الأولى على أول وحدة المعالجة المركزية (CPU 1).

ومع ذلك، تمت مقاطعة تنفيذ المجموعة في مرحلة ما، وإرسال SQL Server تنفيذ المجموعة إلى قائمة انتظار المعلقة. عند إرسال SQL Server مؤشر ترابط العامل SQL Server خدمات هذه المجموعة إلى قائمة الانتظار القابلة للتشغيل مرة أخرى، Windows إرسال مؤشر ترابط للتشغيل على وحدة المعالجة المركزية الثانية (CPU 2). مؤشر ترابط العامل SQL Server إكمال تشغيل 2 وحدة المعالجة المركزية. بسبب الانحراف وحدة المعالجة المركزية، قيمة النهاية التجزئة التي تم التقاطها من 2 وحدة المعالجة المركزية تم 1900 بدلاً من 900. يمكنك تجنب هذه المشكلة إذا قمت بتمكين ترابط المعالج SQL Server.

العمليات الحسابية توقيت التالية المستخدمة في هذا المثال:
  • غير صحيحة لكن الإبلاغ عن قيمة: (1900-100 = 1800)/200 = 9 مللي ثانية
  • تصحيح القيمة: (900-100 = 800)/200 = 4 ms
قيمة العمود المدة RPC: إكمال ستبلغ الأحداث كما ms 9 بدلاً من السيدة 4 ينتج عن هذا أكثر من ضعف القيمة الصحيحة 4 مللي ثانية.

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

يمكنك استخدام إشارة تتبع 8033 (-T8033) للعودة إلى سلوك تقرير في الإصدار الأصلي من SQL Server 2005 وفي SQL Server 2005 SP1. ولا تبلغ نسخة الإصدار الأصلي من SQL Server 2005 و SQL Server 2005 SP1 الانجراف رسائل التحذير. إذا كنت تستخدم الإصدار الأصلي من SQL Server 2005 أو SQL Server 2005 SP1 دون مشاكل، يمكنك عادة تجاهل الرسائل.

لماذا البيان تأخير WAITFOR الذي يعمل بشكل صحيح؟ وماذا عن عمليات النظام الدوري؟

لا تتأثر آليات المهلة بتصميم عالية الدقة. لا يستخدم SQL Server المؤقت عالية الدقة للأنشطة على أساس مؤقت. تستند بعض الأنشطة المهلة المؤقت تقليل الدقة تستخدم الدالة GetTickCount . وتشمل هذه الأنشطة المهلة مهلة تأمين وكشف تأخير WAITFOR والكشف عن حالة توقف تام.
لمزيد من المعلومات، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة معارف Microsoft":

938448 الملقم الذي يستند إلى A Windows Server 2003 قد تواجه الانجراف عداد طابع الوقت إذا كان الملقم يستخدم معالجات ثنائية المركز AMD Opteron أو معالجات AMD Opteron متعدد المعالجات

895980 البرامج التي تستخدم الدالة قويريبيرفورمانسيكونتير قد سيئ في Windows Server 2003 وفي نظام التشغيل Windows XP

منتجات الجهات الأخرى المذكورة في هذه المقالة تابعة لشركات مستقلة عن Microsoft. لا تقدم Microsoft أي ضمان، سواء ضمنياً أو صريحا، بخصوص أداء هذه المنتجات أو كفاءتها.