חל על
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

באג #: 187868 (תחזוקת תוכן)VSTS: 1340145

Microsoft מפיץ תיקונים Microsoft SQL Server 2012 להורדה בקובץ אחד. מאחר התיקונים הם מצטברים, כל פרסום חדש כולל את כל התיקונים החמים ואת פרסומו של עדכון כל עדכוני האבטחה שהיו כלולים בפרסום 2012 הקודם של שרת SQL.

מאפייני הבעיה

שקול את התרחיש הבא:

  • יצירת שגרה מאוחסנת משתמש בפרמטר טבלה מוערכת (TVP) ב- Microsoft SQL Server 2012.

  • השתמש SQL Profiler או אירועי מורחב של שרת SQL כדי ללכוד RPC: החל ו- RPC: הושלמה אירועים.

  • הפעלת שאילתה המשתמשת את TVP.

  • השאילתה הזמן שהוקצב.

בתרחיש זה, מתרחשת שגיאת מתזמן-עצירת תצליח, ולהפעיל שאילתות הפועלות על מתזמן אותו באיטיות. בנוסף, נוצר קובץ dump המצומצמת בתיקיה יומן רישום של SQL Server.כאשר בעיה זו מתרחשת, תקבל הודעת שגיאה הדומה להודעה הבאה:

System.Data.SqlClient.SqlException (0x80131904): תם הזמן הקצוב. משך הזמן הקצוב חלף לפני השלמת הפעולה או שהשרת אינו מגיב.ב- System.Data.SqlClient.SqlInternalConnection.OnError (חריגה SqlException, breakConnection בוליאניים)ב- System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()ב- System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj, שגיאה UInt32)ב- System.Data.SqlClient.TdsParserStateObject.ReadSni (DbAsyncResult asyncResult, TdsParserStateObject stateObj)ב- System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()ב- System.Data.SqlClient.TdsParserStateObject.ReadByte()ב- System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, זרם הנתונים SqlDataReader, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)ב- System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, resetOptionsString מחרוזת)ב- System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, returnStream בוליאניים, async בוליאני)ב- System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, returnStream בוליאניים, שיטת מחרוזת, התוצאה DbAsyncResult)ב- System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (התוצאה DbAsyncResult, methodName מחרוזת, sendToPipe בוליאניים)ב- System.Data.SqlClient.SqlCommand.ExecuteNonQuery()ב- TVPApp.Program.Main (מחרוזת ארגומנטים [])

השגיאה מתזמן-עצירת תצליח יחד עם הודעת שגיאה הדומה להודעה הבאה נרשמת ביומן שגיאה של שרת SQL:

< תאריך >< שעה > שרת באמצעות 'dbghelp.dll' גירסה '4.0.5'שרת < תאריך >< שעה > *** אין אפשרות לקבל הקשר הליך המשנה עבור spid #<Date><Time> Server * *******************************************************************************שרת < תאריך >< שעה > *שרת < תאריך >< שעה > * התחלת פעולת DUMP של מחסנית:שרת < תאריך >< שעה > * spid < תאריך >< שעה > #שרת < תאריך >< שעה > *שרת < תאריך >< שעה > * אי-עצירת תצליח מתזמןשרת < תאריך >< שעה > *<Date><Time> Server * *******************************************************************************חתימת המחסנית של שרת < תאריך >< שעה > עבור ה-dump הוא 0x000000000000002Cקוד < תאריך >< return תהליך dump זמן > שרת חיצוני 0x20000001.תהליך חיצוני dump החזיר ללא שגיאות.תהליך שרת < תאריך >< שעה > 0:0:0 (0x1670) העובד 0x0000000004EDE160 נראה שאינו-עצירת תצליח על 5 מתזמן. שעת היצירה של הליכי משנה: 13014210386757. משמש הליך משנה של מחזור ה-CPU: ליבה 0 ms, מר המשתמש 70106 ניצול תהליך 16%. מערכת סרק 77%. מרווח: ms 70140.תהליך שרת < תאריך >< שעה > 0:0:0 (0x1670) העובד 0x0000000004EDE160 נראה שאינו-עצירת תצליח על 5 מתזמן. שעת היצירה של הליך משנה:

הגורם

בעיה זו מתרחשת עקב שגיאה במנגנון מסד הנתונים של SQL Server 2012. טקסט בעמודות TVP מיושמים כפי להוסיף מחרוזות או מאגרי ולאחר לגידול במספר שורות מגדילה את מספר המאגרים. עם זאת, התהליך המופצת מאגרי הוא לגזול זמן רב. לכן, נוצר שגיאת מתזמן-עצירת תצליח בעת שחרור וכיווץ פעולות להתרחש.הערה בעיה דומה טופלה במאמר הבא מתוך מאגר הידע Microsoft Knowledge base. עם זאת, חבילת העדכון המצטבר המתואר במאמר אינו עבור בעיית פסק זמן של שאילתה.

תיקון 2520808 : שגיאה מתזמן-עצירת תצליח בעת הפעלת שאילתה אשר משתמש TVP ב- SQL Server 2008 או ב- SQL Server 2008 R2 אם נעשה שימוש SQL Profiler או אירועי מורחב של שרת SQL

פתרון

מידע עדכון מצטבר

חבילת העדכון המצטבר 5 עבור SQL Server 2012 Service Pack 1 (SP1)

התיקון עבור בעיה זו פורסם לראשונה ב- 5 עדכון מצטבר. לקבלת מידע נוסף אודות האופן שבו ניתן להשיג את חבילת עדכון מצטבר זה עבור SQL Server 2012, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

2861107 Cumulative בחבילת 5 עדכון עבור SQL Server 2012הערה מאחר גירסאות build הם מצטברים, כל פרסום תיקון חדש כולל את כל התיקונים החמים ולתקן כל תיקוני האבטחה שהיו כלולים בפרסום 2012 הקודם של שרת SQL מהדורה. אנו ממליצים לך לשקול החלת העדכניים ביותר פרסום התיקון החם הזה. לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

2772858 2012 שרת SQL בניית תוכן שפורסמו לאחר SQL Server 2012 Service Pack 1 פורסם

פתרון הבעיה

כדי לעקוף בעיה זו, השתמש באחת מהשיטות הבאות:

  • אל תשתמש SQL Profiler או אירועי מורחב של שרת SQL.

  • לחץ כדי לנקות RPC: החל ו- RPC: הושלמה תיבות הסימון בהגדרת מעקב.

מידע נוסף

תיקון זה לא חל על SQL Server 2008 או SQL Server 2008 R2 KB זה מפורסם. אם כל המשתמשים נתקל באותה הבעיה ב- SQL Server 2008 או SQL Server 2008 R2 גם לאחר שהמשתמשים יחילו את החבילה המתואר במאמר הבא, לאמת אם אין זמן קצוב שאילתה ובדוק אם אפשרות לפענח את פרק הזמן הקצוב. בכל מקרה אחר, שלח בקשה כדי להחיל תיקון זה SQL Server 2008 או SQL Server 2008 R2.

תיקון 2520808 : שגיאה מתזמן-עצירת תצליח בעת הפעלת שאילתה אשר משתמש TVP ב- SQL Server 2008 או ב- SQL Server 2008 R2 אם נעשה שימוש SQL Profiler או אירועי מורחב של שרת SQL

מידע על מחסנית קריאות

sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FLookup+0x29sqlmin!CCheckReadersAndWriters::Release+0x69sqlmin!CMainIlb::{dtor}+0x3dsqlmin!CMainIlb::`scalar deleting destructor'+0x3dsqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13sqlmin!CMainIlb::Release+0xf0sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80sqllang!CTraceTvpData::{dtor}+0x14sqllang!CTraceTvpData::`scalar deleting destructor'+0x1esqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x33sqllang!CRpcTraceHelper::~CRpcTraceHelper+0x70sqllang!CRPCExecEnv::~CRPCExecEnv+0x2absqllang!CRPCExecEnv::`scalar deleting destructor'+0x14sqllang!process_request+0x10b1sqllang!process_commands+0x51csqldk!SOS_Task::Param::Execute+0x21esqldk!SOS_Scheduler::RunTask+0xa8sqldk!SOS_Scheduler::ProcessTasks+0x299sqldk!SchedulerManager::WorkerEntryPoint+0x261sqldk!SystemThread::RunWorker+0x8fsqldk!SystemThreadDispatcher::ProcessWorker+0x3c8sqldk!SchedulerManager::ThreadEntryPoint+0x236kernel32!BaseThreadInitThunk+0xdntdll!RtlUserThreadStart+0x1d  
sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FDelete+0x34sqlmin!CCheckReadersAndWriters::Release+0xfbsqlmin!CMainIlb::{dtor}+0x3dsqlmin!CMainIlb::`scalar deleting destructor'+0x3dsqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13sqlmin!CMainIlb::Release+0xf0sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80sqllang!CTraceTvpData::{dtor}+0x11sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x55sqllang!CRpcTraceHelper::TracePostExec+0x1bfsqllang!CRPCExecEnv::OnExecFinish+0xaasqllang!CProtocolHeaderInfo::{dtor}+0xffffffff`ffb158e2sqllang!process_request+0x764sqllang!process_commands+0x51csqldk!SOS_Task::Param::Execute+0x21esqldk!SOS_Scheduler::RunTask+0xa8sqldk!SOS_Scheduler::ProcessTasks+0x29asqldk!SchedulerManager::WorkerEntryPoint+0x261sqldk!SystemThread::RunWorker+0x8fsqldk!SystemThreadDispatcher::ProcessWorker+0x3c8sqldk!SchedulerManager::ThreadEntryPoint+0x236kernel32!BaseThreadInitThunk+0x1antdll!RtlUserThreadStart+0x1d 

מצב

Microsoft אישרה כי מדובר בבעיה במוצרי Microsoft הרשומים במקטע 'חל על'.

Author: jannawWriter: v-yipliסוקר טכני: pradm; jannaw; hozhanEditor: v-mordew

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.