Номер ошибки: 115124 (Content Maintenance) VSTS номер ошибки: 316475 VSTS номер ошибки: 365460
Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 как один загружаемый файл. Так как исправления являются накопительными, каждый выпуск содержит все исправления и все исправления безопасности, которые были включены в предыдущие 2008 SQL Server исправления выпуска.
Симптомы
В Microsoft SQL Server 2005 или SQL Server 2008 необходимо выполнить хранимую процедуру на удаленном сервере с помощью связанного сервера. После выполнения хранимой процедуры много раз, может оказаться быстро увеличивается использование памяти для службы SQL Server. Кроме того различные ошибки сообщения связанных исчерпанию памяти в адресном пространстве MemTolLeave могут регистрироваться в файл errorlog SQL Server 2008.
Примечание. Также могут возникнуть проблемы при использовании репликация, доставка журналов или зеркальное отображение. Эти функции могут использовать хранимые процедуры, использующие связанного сервера.Причина
Причиной этой проблемы является утечка памяти, возникающая при выполнении запроса, использующего связанного сервера. Утечка памяти происходит при вызове удаленной хранимой процедуры. Существует два вида потенциальной утечки.
-
Возвращаемое значение вызова хранимой процедуры, которая всегда утечки. Это небольшой, но регулярное утечки.
-
Вызов удаленной хранимой процедуры, имеющей ВЫХОДНЫЕ параметры типа данных sqlvariant .
Решение
Пакет обновления 1 для SQL Server 2008
Исправление этой уязвимости первого выпуска накопительного обновления 3 для SQL Server 2008 Пакет обновления 1. Дополнительные сведения о этот накопительный пакет обновления щелкните следующий номер статьи базы знаний Майкрософт:
971491 накопительного обновления 3 для SQL Server 2008 Пакет обновления 1Примечание. Поскольку построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2008 выпуска исправлений. Корпорация Майкрософт рекомендует учесть применение последний выпуск исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
970365 SQL Server 2008 выполняет построение, выпущенных после выпуска SQL Server 2008 Пакет обновления 1 Исправления Microsoft SQL Server 2008 создаются для определенных пакетов обновления SQL Server. Необходимо установить исправление SQL Server 2008 Пакет обновления 1 для установки SQL Server 2008 Пакет обновления 1. По умолчанию какие-либо исправления, включенный в пакет обновления SQL Server включено в следующий пакет обновления SQL Server.
Пакет обновления 3 для SQL Server 2005
Исправление этой уязвимости первого выпуска накопительного обновления 6 для Пакет обновления 3 для SQL Server 2005. Дополнительные сведения о этот накопительный пакет обновления щелкните следующий номер статьи базы знаний Майкрософт:
974648 накопительного обновления пакет обновления 6 для Пакет обновления 3 для SQL Server 2005Примечание. Поскольку построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2005 исправление выпуска. Корпорация Майкрософт рекомендует учесть применение последний выпуск исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
960598 SQL Server 2005 выполняет построение, выпущенных после Пакет обновления 3 для SQL Server 2005 Исправления для Microsoft SQL Server 2005 создаются для определенных пакетов обновления SQL Server. Необходимо установить Пакет обновления 3 для SQL Server 2005 исправление установки обновления Пакет обновления 3 для SQL Server 2005. По умолчанию какие-либо исправления, включенный в пакет обновления SQL Server включено в следующий пакет обновления SQL Server.
В версии SQL Server 2008
Важно. Если на компьютере с официальной версией SQL Server 2008 необходимо установить это исправление.
Исправление этой уязвимости первого выпуска накопительного обновления 8. Дополнительные сведения о том, как получить этот накопительный пакет обновления для SQL Server 2008, щелкните следующий номер статьи базы знаний Майкрософт:975976 накопительного обновления 8 для SQL Server 2008Примечание. Поскольку построения являются накопительными, каждый новый выпуск исправление содержит все исправления и все исправления, входившие в состав предыдущих SQL Server 2008 выпуска исправлений. Мы рекомендуем рассмотреть применение последнего выпуска исправления, содержащего это исправление. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
956909 SQL Server 2008 выполняет построение, выпущенных после выпуска SQL Server 2008
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".
Дополнительные сведения
Сведения о стеке вызова
Эта утечка памяти можно увидеть в кучи по умолчанию. Утечка по крайней мере один шаблон будет 40 байт. Это размер структуры CXVariant для возвращаемого значения. LFH куч могут показывать 40 байт утечка надлежащим образом и может показать утечки 4 КБ, 64 КБ диапазонов при использовании ! кучи < heaphandle > - -k команды в файле полного дампа памяти.
Примечание. По умолчанию 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 щелкните следующий номер статьи базы знаний Майкрософт:
935897 добавочных модель обслуживания доступна из группы SQL Server для предоставления исправления для проблем, о которых сообщалось в Дополнительные сведения о схеме именования для обновления SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
822499 Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL Server Для получения дополнительных сведений о терминологии обновлений программного обеспечения щелкните следующий номер статьи базы знаний Майкрософт:
Описание 824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт
Дополнительные сведения
Данные SQL Server 2008 R2 анализатора соответствия Рекомендациям
SQL Server 2008 R2 анализатор соответствия рекомендациям (SQL Server 2008 R2 BPA) предоставляет правила для определения ситуаций, в которых экземпляр SQL Server, имеющую связанные серверы, которые настроены для использования, и это исправление не применяется. SQL Server 2008 R2 BPA поддерживает SQL Server 2008 и SQL Server 2008 R2.
Если запустить средство анализатора соответствия Рекомендациям и возникает предупреждение «СУБД - отсутствует, исправить утечка памяти связанного сервера» необходимо изучить проблемы, рассмотренные в данной статье и применить накопительное обновление, которое соответствует.Ссылки
Правила программы |
Название правила |
Идентификатор правила |
Правило SQL Server 2008 R2 анализатора соответствия Рекомендациям |
отсутствие утечки исправление связанный сервер памяти |
RID3807 |
Автор (малых и средних Предприятий): bruceye
Записи: ericzha Технический редактор: tejasaks Редактор: v-lynan