Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

ГРЕШКА #: 187868 (поддръжка на съдържанието)VSTS: 1340145

Microsoft разпространява корекциите за Microsoft SQL Server 2012 в един файл за изтегляне. Тъй като корекциите са сборни, всяка нова версия съдържа всички актуални корекции и всички актуализации на защитата, които са били включени в предишните SQL Server 2012 актуализация версия.

Симптоми

Да разгледаме следния сценарий:

  • Създаване на съхранена процедура, която използва таблична параметър (TVP) в Microsoft SQL Server 2012.

  • Използване на SQL Profiler или SQL Server разширен събития улавяне RPC: Начална и RPC: завършени събития.

  • Стартирате заявка, която използва TVP.

  • Заявката пъти.

В този случай възниква грешка устойчива планиране и заявки, които се изпълняват на един и същ списък работи бавно. Освен това мини дъмп файл се генерира в SQL Server папка.
Когато възникне този проблем, получавате съобщение за грешка, подобно на следното:

System.Data.SqlClient.SqlException (0x80131904): Времето на изчакване изтече. Изтичането на периода на изчакване преди извършването на операцията или сървърът не отговаря.
в System.Data.SqlClient.SqlInternalConnection.OnError (SqlException изключение, Boolean 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 dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
в System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior низ resetOptionsString)
в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean асинхронна)
в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream низ метод, DbAsyncResult резултат)
в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (DbAsyncResult резултат, низ methodName, Boolean sendToPipe)
в System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
в TVPApp.Program.Main (низ [] опцията)


В регистрационния файл за грешки на SQL Server се записва устойчива планиране грешка и съобщение за грешка, подобно на следното:

< Дата >< > сървър с помощта на "dbghelp.dll" версия "4.0.5"
< Дата >< време > сървър *** не може да получите тема контекст за spid #
<Date><Time> Server * *******************************************************************************
< Дата >< време > сървър *
< Дата >< време > сървър * започнете СТЕКА ДЪМП:
< Дата >< време > сървър * < дата >< време > spid #
< Дата >< време > сървър *
< Дата >< време > сървър * устойчива планиране
< Дата >< време > сървър *
<Date><Time> Server * *******************************************************************************
< Дата >< време > сървър стека подпис за разтоварване е 0x000000000000002C
< Дата >< време > външен сървър дъмп процес на връщане код 0x20000001.
Процес на външен дъмп връща няма грешки.
< Дата >< време > сървърен процес 0:0:0 (0x1670) работник 0x0000000004EDE160 изглежда устойчива на планиране на 5. Създаване на време нишка: 13014210386757. Приблизително нишка CPU използвани: ядрото 0 ms, потребителски 70106 г-жа процес на използване на 16 %. Система празен 77 %. Интервал: 70140 ms.
< Дата >< време > сървърен процес 0:0:0 (0x1670) работник 0x0000000004EDE160 изглежда устойчива на планиране на 5. Време на създаване на темата:

Причина

Този проблем се дължи на грешка в ядрото на базата данни на SQL Server 2012. Текстът колоните в TVP се изпълняват като низове или буфери и увеличаване на броя на редове се увеличава броят на буферите. Процесът, който отделя буфери обаче отнема много време. Затова се генерира грешка устойчива планиране при издаване и свиване операции възниква.

Забележка: Подобен проблем е разгледани в следната статия от базата знания на Microsoft. Обаче сборния пакет за актуализация, описана в статията не е проблем за изчакване заявка.

2520808 решение: устойчива планиране грешка, когато стартирате заявка, която използва TVP в SQL Server 2008 или SQL Server 2008 R2, ако се използва SQL Profiler или SQL Server разширен събития

Решение

Информация за сборна актуализация

Сборния пакет за актуализация 5 за SQL Server 2012 Service Pack 1 (SP1)

Решение за този проблем излезе първо в сборна актуализация 5. За повече информация как да получите този Сборен пакет за SQL Server 2012 щракнете върху следния номер на статия в базата знания на Microsoft:

2861107 сборни актуализация пакет 5 за SQL Server 2012Забележка: Тъй като компилациите са сборни, всяка нова версия на корекцията съдържа всички актуални корекции и всички корекции на защитата, които са били включени в предишните SQL Server 2012 fix съобщение. Препоръчително е да приложите най-новата версия на корекцията, който ще съдържа тази корекция. За повече информация щракнете върху следния номер на статия в базата знания на Microsoft:

2772858 SQL Server 2012 компилации, издадени след SQL Server 2012 Service Pack 1

Заобикаляне на проблема

За да заобиколите този проблем, използвайте един от следните методи:

  • Не използвайте SQL Profiler или SQL Server разширен събития.

  • Щракнете, за да изчистите RPC: Начална и RPC: завършени квадратчета в дефиницията на проследяване.

Допълнителна информация

Тази корекция не се отнася за SQL Server 2008 или SQL Server 2008 R2 при публикуването на тази статия от БЗ. Ако потребителите се появи същият проблем в 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 Server разширен събития

Информация на стека на обръщение

sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FLookup+0x29sqlmin!CCheckReadersAndWriters::Release+0x69
sqlmin!CMainIlb::{dtor}+0x3d
sqlmin!CMainIlb::`scalar deleting destructor'+0x3d
sqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13
sqlmin!CMainIlb::Release+0xf0
sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80
sqllang!CTraceTvpData::{dtor}+0x14
sqllang!CTraceTvpData::`scalar deleting destructor'+0x1e
sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x33
sqllang!CRpcTraceHelper::~CRpcTraceHelper+0x70
sqllang!CRPCExecEnv::~CRPCExecEnv+0x2ab
sqllang!CRPCExecEnv::`scalar deleting destructor'+0x14
sqllang!process_request+0x10b1
sqllang!process_commands+0x51c
sqldk!SOS_Task::Param::Execute+0x21e
sqldk!SOS_Scheduler::RunTask+0xa8
sqldk!SOS_Scheduler::ProcessTasks+0x299
sqldk!SchedulerManager::WorkerEntryPoint+0x261
sqldk!SystemThread::RunWorker+0x8f
sqldk!SystemThreadDispatcher::ProcessWorker+0x3c8
sqldk!SchedulerManager::ThreadEntryPoint+0x236
kernel32!BaseThreadInitThunk+0xd
ntdll!RtlUserThreadStart+0x1d
sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FDelete+0x34sqlmin!CCheckReadersAndWriters::Release+0xfb
sqlmin!CMainIlb::{dtor}+0x3d
sqlmin!CMainIlb::`scalar deleting destructor'+0x3d
sqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13
sqlmin!CMainIlb::Release+0xf0
sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80
sqllang!CTraceTvpData::{dtor}+0x11
sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x55
sqllang!CRpcTraceHelper::TracePostExec+0x1bf
sqllang!CRPCExecEnv::OnExecFinish+0xaa
sqllang!CProtocolHeaderInfo::{dtor}+0xffffffff`ffb158e2
sqllang!process_request+0x764
sqllang!process_commands+0x51c
sqldk!SOS_Task::Param::Execute+0x21e
sqldk!SOS_Scheduler::RunTask+0xa8
sqldk!SOS_Scheduler::ProcessTasks+0x29a
sqldk!SchedulerManager::WorkerEntryPoint+0x261
sqldk!SystemThread::RunWorker+0x8f
sqldk!SystemThreadDispatcher::ProcessWorker+0x3c8
sqldk!SchedulerManager::ThreadEntryPoint+0x236
kernel32!BaseThreadInitThunk+0x1a
ntdll!RtlUserThreadStart+0x1d

Статус

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".

Author: jannaw
Writer: v-yipli
Технически редактор: pradm; jannaw; hozhan
Editor: v-mordew

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×