توزع Microsoft إصلاحات Microsoft SQL Server 2012 في ملف واحد قابل للتنزيل. نظرا لأن الإصلاحات تراكمية، يحتوي كل إصدار جديد على جميع الإصلاحات العاجلة وجميع تحديثات الأمان التي تم تضمينها مع إصدار تحديث SQL Server 2012 السابق.
مؤشرات الخطأ
اطّلع على السيناريو التالي:
-
يمكنك إنشاء إجراء مخزن يستخدم معلمة ذات قيمة جدولية (TVP) في Microsoft SQL Server 2012.
-
يمكنك استخدام SQL Profiler أو SQL Server Extended Events لالتقاط أحداث RPC:Starting وRPC:Completed.
-
يمكنك تشغيل استعلام يستخدم TVP.
-
مهلة الاستعلام.
في هذا السيناريو، يحدث خطأ مجدول غير منتج، ويتم تشغيل الاستعلامات التي تعمل على نفس المجدول ببطء. بالإضافة إلى ذلك، يتم إنشاء ملف تفريغ مصغر في مجلد سجل SQL Server.عند حدوث هذه المشكلة، تتلقى رسالة خطأ تشبه ما يلي:
System.Data.SqlClient.SqlException (0x80131904): انتهت صلاحية المهلة. فترة المهلة المنقضية قبل إكمال العملية أو أن الخادم لا يستجيب.في System.Data.SqlClient.SqlInternalConnection.OnError(استثناء SqlException, Boolean breakConnection)at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, خطأ UInt32)في System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()في System.Data.SqlClient.TdsParserStateObject.ReadByte()at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)في System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)في System.Data.SqlClient.SqlCommand.ExecuteNonQuery()at TVPApp.Program.Main(String[] args)
يتم تسجيل خطأ المجدول غير الناتج مع رسالة خطأ تشبه ما يلي في سجل الخطأ SQL Server:
خادم> الوقت <التاريخ><باستخدام الإصدار "dbghelp.dll" "4.0.5"<Date><Time> Server ***غير قادر على الحصول على سياق مؤشر الترابط ل spid #<Date><Time> Server * ******************************************************************************* ******************************************************************************* خادم> الوقت><2 التاريخ><*><6 التاريخ><الوقت> Server * BEGIN STACK DUMP:><0 Date><Time> Server * <Date><Time> spid #><8 Date><Time> Server *><2 Date><Time> Server *><6 Date><> Time><Server *<Date><Time> Server * *******************************************************************************<Date><Time> Server Stack Signature للتفريغ هو 0x000000000000002C<Date><Time> Server External dump process code 0x20000001.لم ترجع عملية التفريغ الخارجي أي أخطاء.<Date><Time> Server Process 0:0:0 (0x1670) Worker 0x0000000004EDE160 يبدو أنه غير مردود في Scheduler 5. وقت إنشاء مؤشر الترابط: 13014210386757. معالج مؤشر الترابط المستخدم: kernel 0 مللي ثانية، المستخدم 70106 مللي ثانية. استخدام العملية 16٪. النظام الخامل 77٪. الفاصل الزمني: 70140 مللي ثانية.<Date><Time> Server Process 0:0:0 (0x1670) Worker 0x0000000004EDE160 يبدو أنه غير مردود في Scheduler 5. وقت إنشاء مؤشر الترابط:
السبب
تحدث هذه المشكلة بسبب خطأ في مشغل قاعدة بيانات SQL Server 2012. يتم تنفيذ أعمدة النص في TVP كسلاسل إدراج أو مخازن مؤقتة، وزيادة عدد الصفوف تزيد من عدد المخازن المؤقتة. ومع ذلك، تستغرق العملية التي تصدر المخازن المؤقتة وقتا طويلا. لذلك، يتم إنشاء خطأ مجدول غير منتج عند حدوث عمليات الإصدار والتقليص. ملاحظة تمت معالجة مشكلة مماثلة في مقالة قاعدة معارف Microsoft التالية. ومع ذلك، فإن حزمة التحديث التراكمي الموضحة في المقالة ليست لقضية انتهاء مهلة الاستعلام.
2520808 الإصلاح: خطأ مجدول غير منتج عند تشغيل استعلام يستخدم TVP في SQL Server 2008 أو في SQL Server 2008 R2 إذا تم استخدام SQL Profiler أو SQL Server Extended Events
الحل
معلومات التحديث التراكمي
حزمة التحديث التراكمي 5 SQL Server 2012 Service Pack 1 (SP1)
تم إصدار إصلاح هذه المشكلة لأول مرة في التحديث التراكمي 5. لمزيد من المعلومات حول كيفية الحصول على حزمة التحديث التراكمي هذه SQL Server 2012، انقر فوق رقم المقالة التالي لعرض المقالة في قاعدة معارف Microsoft:
2861107 حزمة التحديث التراكمي 5 ل SQL Server 2012Note نظرا لأن الإصدارات تراكمية، يحتوي كل إصدار إصلاح جديد على جميع الإصلاحات العاجلة وجميع إصلاحات الأمان التي تم تضمينها مع إصدار إصلاح SQL Server 2012 السابق. نوصيك بالتفكير في تطبيق أحدث إصدار إصلاح يحتوي على هذا الإصلاح العاجل. للمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
2772858 إصدارات SQL Server 2012 التي تم إصدارها بعد إصدار حزمة الخدمة 1 SQL Server 2012
الحل
لحل هذه المشكلة، استخدم إحدى الوسائل التالية:
-
لا تستخدم SQL Profiler أو SQL Server Extended Events.
-
انقر لمسح خانتي الاختيار RPC:Starting وRPC:Completed في تعريف التتبع.
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".