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

באג #: 115124 (תחזוקת תוכן)
מספר באג VSTS: 316475
מספר באג VSTS: 365460

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

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

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

הערה בעיה זו עלולה להתרחש גם כאשר תשתמש בשכפול, משלוח יומן או שיקוף. תכונות אלה עשויים להשתמש בשגרות מאוחסנות המשתמשות שרת מקושר.

הגורם

בעיה זו נגרמת על-ידי דליפת זיכרון המתרחשת בעת הפעלת שאילתה המשתמשת שרת מקושר. דליפת מתרחש כאשר תתקשר שגרה מאוחסנת מרחוק. קיימים שני סוגים של דליפות אפשריות:

  • ערך ההחזרה של השיחה שגרה מאוחסנת, תמיד נחשף. זהו דליפת קטן אך קבוע.

  • קריאה לפרוצדורה מרוחקת מאוחסנת בעלת פרמטרים של סוג הנתונים sqlvariant יוצאים.

פתרון

SQL Server 2008 ה-Service Pack 1


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

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

970365 SQL Server 2008 בניית תוכן שפורסמו לאחר SQL Server 2008 Service Pack 1 פורסם
תיקונים חמים של Microsoft SQL Server 2008 נוצרות עבור ערכות שירות הספציפי של שרת SQL. עליך להחיל תיקון חם SQL Server 2008 Service Pack 1 להתקנה של SQL Server 2008 Service Pack 1. כברירת מחדל, כל תיקון חם הכלול ב- SQL Server service pack נכלל ב- SQL Server service pack הבא.

SQL Server 2005 Service Pack 3


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

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

960598 SQL Server 2005 בניית תוכן שפורסמו לאחר SQL Server 2005 Service Pack 3 פורסם
תיקונים חמים של Microsoft SQL Server 2005 נוצרות עבור ערכות שירות הספציפי של שרת SQL. עליך להחיל תיקון חם SQL Server 2005 Service Pack 3 על התקנה של SQL Server 2005 Service Pack 3. כברירת מחדל, כל תיקון חם הכלול ב- SQL Server service pack נכלל ב- SQL Server service pack הבא.

גירסת ההפצה של SQL Server 2008

חשוב עליך להתקין תיקון זה אם אתה מפעיל את המהדורה של SQL Server 2008.

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

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

956909 SQL Server 2008 בניית תוכן שפורסמו לאחר ב- SQL Server 2008 פורסם

מצב

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

מידע נוסף

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

ניתן לראות את דליפת זיכרון זה בערימה ברירת המחדל. תבנית דליפת אחת לפחות תהיה של 40 בתים. זהו גודל מבנה CXVariant עבור ערך ההחזרה. LFH heaps ייתכן תציג 40 בתים דליפה כהלכה ולהציג ייתכן דליפות של 4 KB טווחים של 64 KB אם תשתמש ! ערימה < heaphandle > - a -k בפקודה קובץ dump מלא.

הערה כברירת מחדל, Windows Server 2008, Windows Vista, Windows 7 ו- Windows Server 2008 R2 ישתמש LFH ערימה לערימה ברירת מחדל בתוך התהליך של SQL Server.

UMDH או DebugDiag מציג ערימות דולף להיות טבע הבאים. UMDH, DebugDiag, ו ! ערימה – l הפקודה כל הצג זאת כ ערימה נפוצות עבור דליפת לבעיה מצב החזרה:

הערה בהתאם באיזה ספק נמצא בשימוש, ייתכן שפרטי הספק לא יהיו sqlncli10.


ntdll!RtlAllocateHeap+0001B970sqlncli10!CDataSource::DataConvert+0000C898
sqlncli10!CDataSource::OLEDBdataFromSQLdata+0000018C
sqlncli10!CStmt::ProcessReturnStatus+000001FA
sqlncli10!BATCHCTX::Run+000005BA
sqlncli10!CDBConnection::ProcessTDSStream+000001A7
sqlncli10!CStmt::SQLExecRPC+00000602
sqlncli10!CCommand::ExecuteHelper+00000250
sqlncli10!CCommand::Execute+000013BB
sqlncli10!CImpICommandText::Execute+00000209
sqlservr!MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64>::operator()+00000053
sqlservr!ReturnValueHolder<long>::ExecAndSaveReturnValue<MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> const >+00000018
sqlservr!CallProtectorImpl::CallWithSEH<IWrapInterface<ICommandText>::CallTraitsNone,long,MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> const >+0000002A
sqlservr!CallProtectorImpl::CallExternalFull<IWrapInterface<ICommandText>::CallTraitsNone,long,MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> const >+0000004D
sqlservr!SOS_CallExternalFunctor<IWrapInterface<ICommandText>::CallTraitsNone,long,MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> >+0000001D
sqlservr!IWrapInterface<ICommandText>::HrCallExternal<MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> >+00000092
sqlservr!CWrapICommandText::Execute+00000230
sqlservr!CRpcInterfaces::Relay+00000982
sqlservr!CStmtExecProc::XretRemoteExec+00000732
sqlservr!CRemoteProcExecLevel::Execute+00000160
sqlservr!CStmtExecProc::XretWrapRemoteExec+000001D5
sqlservr!CStmtExecProc::XretExecExecute+0000078E
sqlservr!CXStmtExecProc::XretExecute+0000004E
sqlservr!CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn+0000003C
sqlservr!CMsqlExecContext::ExecuteStmts<1,1>+000002AA
sqlservr!CMsqlExecContext::FExecute+00001023
sqlservr!CSQLSource::Execute+00001091
sqlservr!process_request+000006BC
sqlservr!process_commands+000003C4
sqlservr!SOS_Task::Param::Execute+0000016B
sqlservr!SOS_Scheduler::RunTask+000001A5
sqlservr!SOS_Scheduler::ProcessTasks+000002E7

Here are the call stacks for the SQL Variant output parameter leak for sql_variant:

ntdll!RtlAllocateHeap+0001B970
sqlncli10!CDataSource::DataConvert+0000BAD2
sqlncli10!CDataSource::OLEDBdataFromSQLdata+00000D18
sqlncli10!CStmt::ProcessReturnValue+00000BC5
sqlncli10!CTdsSqloledb::OnReturnValue+00000018
sqlncli10!BATCHCTX::ProcessReturnValue+00000366
sqlncli10!BATCHCTX::Run+000004AD
sqlncli10!CDBConnection::ProcessTDSStream+000001A7
sqlncli10!CStmt::SQLExecRPC+00000602
sqlncli10!CCommand::ExecuteHelper+00000250
sqlncli10!CCommand::Execute+000013BB
sqlncli10!CImpICommandText::Execute+00000209
sqlservr!MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64>::operator()+00000053
sqlservr!ReturnValueHolder<long>::ExecAndSaveReturnValue<MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> const >+00000018
sqlservr!CallProtectorImpl::CallWithSEH<IWrapInterface<ICommandText>::CallTraitsNone,long,MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> const >+0000002A
sqlservr!CallProtectorImpl::CallExternalFull<IWrapInterface<ICommandText>::CallTraitsNone,long,MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> const >+0000004D
sqlservr!SOS_CallExternalFunctor<IWrapInterface<ICommandText>::CallTraitsNone,long,MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> >+0000001D
sqlservr!IWrapInterface<ICommandText>::HrCallExternal<MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> >+00000092
sqlservr!CWrapICommandText::Execute+00000230
sqlservr!CRpcInterfaces::Relay+00000982
sqlservr!CStmtExecProc::XretRemoteExec+00000732
sqlservr!CRemoteProcExecLevel::Execute+00000160
sqlservr!CStmtExecProc::XretWrapRemoteExec+000001D5
sqlservr!CStmtExecProc::XretExecExecute+0000078E
sqlservr!CXStmtExecProc::XretExecute+0000004E
sqlservr!CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn+0000003C
sqlservr!CMsqlExecContext::ExecuteStmts<1,1>+000002AA
sqlservr!CMsqlExecContext::FExecute+00001023
sqlservr!CSQLSource::Execute+00001091
sqlservr!process_request+000006BC
sqlservr!process_commands+000003C4
sqlservr!SOS_Task::Param::Execute+0000016B

ntdll!RtlAllocateHeap+0001B970
sqlncli10!SSVariantCopy+00000149
sqlncli10!CDataSource::DataConvert+0000BB50
sqlncli10!CDataSource::OLEDBdataFromSQLdata+00000D18
sqlncli10!CStmt::ProcessReturnValue+00000BC5
sqlncli10!CTdsSqloledb::OnReturnValue+00000018
sqlncli10!BATCHCTX::ProcessReturnValue+00000366
sqlncli10!BATCHCTX::Run+000004AD
sqlncli10!CDBConnection::ProcessTDSStream+000001A7
sqlncli10!CStmt::SQLExecRPC+00000602
sqlncli10!CCommand::ExecuteHelper+00000250
sqlncli10!CCommand::Execute+000013BB
sqlncli10!CImpICommandText::Execute+00000209
sqlservr!MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64>::operator()+00000053
sqlservr!ReturnValueHolder<long>::ExecAndSaveReturnValue<MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> const >+00000018
sqlservr!CallProtectorImpl::CallWithSEH<IWrapInterface<ICommandText>::CallTraitsNone,long,MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> const >+0000002A
sqlservr!CallProtectorImpl::CallExternalFull<IWrapInterface<ICommandText>::CallTraitsNone,long,MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> const >+0000004D
sqlservr!SOS_CallExternalFunctor<IWrapInterface<ICommandText>::CallTraitsNone,long,MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> >+0000001D
sqlservr!IWrapInterface<ICommandText>::HrCallExternal<MethodCallBinder_5<long,ICommandText,long (__cdecl ICommand::*)(IUnknown * __ptr64,_GUID const & __ptr64,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64) __ptr64,IUnknown * __ptr64,_GUID,tagDBPARAMS * __ptr64,__int64 * __ptr64,IUnknown * __ptr64 * __ptr64> >+00000092
sqlservr!CWrapICommandText::Execute+00000230
sqlservr!CRpcInterfaces::Relay+00000982
sqlservr!CStmtExecProc::XretRemoteExec+00000732
sqlservr!CRemoteProcExecLevel::Execute+00000160
sqlservr!CStmtExecProc::XretWrapRemoteExec+000001D5
sqlservr!CStmtExecProc::XretExecExecute+0000078E
sqlservr!CXStmtExecProc::XretExecute+0000004E
sqlservr!CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn+0000003C
sqlservr!CMsqlExecContext::ExecuteStmts<1,1>+000002AA
sqlservr!CMsqlExecContext::FExecute+00001023
sqlservr!CSQLSource::Execute+00001091
sqlservr!process_request+000006BC
sqlservr!process_commands+000003C4

הפניות

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

935897 דגם מתן שירות מצטבר זמין מהצוות SQL Server כדי לספק תיקונים חמים עבור בעיות שדווחו


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

822499 סכימה חדשה למתן שמות עבור חבילות עדכוני תוכנה של Microsoft SQL Server

לקבלת מידע נוסף על מינוח עדכוני התכנה, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

824684 תיאור המינוח הרגיל המשמש לתיאור עדכוני התוכנה של מיקרוסופט

מידע נוסף

SQL Server 2008 R2 BPA מידע

SQL Server 2008 R2 הטובה ביותר לתרגול מנתח (SQL Server 2008 R2 BPA) מספק כלל לזהות מצבים בהם מופע SQL Server כוללת מקושרים שרתי שתצורתם נקבעה לשימוש ולאחר תיקון זה אינו מוחל. BPA R2 2008 של שרת SQL תומך ב- SQL Server 2008 ו- SQL Server 2008 R2.

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

הפניות

תוכנה כלל

כותרת כלל

מזהה כלל

SQL Server 2008 R2 BPA כלל

חסר של תיקון דליפת של שרת מקושר זיכרון

RID3807






מחבר (SME): bruceye
כותב: ericzha
סוקר טכני: tejasaks
עורך: v-lynan

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

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

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

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×