Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Nr błędu: 187868 (Obsługa zawartości)programu VSTS: 1340145

Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2012 w jeden plik do pobrania. Ponieważ poprawki są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie aktualizacje zabezpieczeń, które zostały dołączone do poprzedniego programu SQL Server 2012 wydania aktualizacji.

Objawy

Rozważ następujący scenariusz:

  • Utwórz procedurę przechowywaną, która wykorzystuje parametr oródwierszową (TVP) w systemie Microsoft SQL Server 2012.

  • Przechwytywanie za pomocą programu SQL Profiler lub SQL Server rozszerzone zdarzenia RPC: uruchamianie i RPC: zakończone zdarzenia.

  • Kwerenda używa TVP.

  • Limit czasu kwerendy.

W tym scenariuszu występuje błąd harmonogramu stabilnej i kwerend, które są uruchomione na tym samym harmonogram wolniej. Ponadto plik mini-dump jest generowany w folderze dziennika programu SQL Server.
Gdy ten problem wystąpi, pojawi się komunikat o błędzie podobny do następującego:

System.Data.SqlClient.SqlException (0x80131904): Upłynął limit czasu. Limit upłynął przed ukończeniem operacji lub serwer nie odpowiada.
w System.Data.SqlClient.SqlInternalConnection.OnError (wyjątek, Boolean breakConnection)
w System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
w System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj, błąd UInt32)
w System.Data.SqlClient.TdsParserStateObject.ReadSni (DbAsyncResult asyncResult, TdsParserStateObject stateObj)
o System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
o System.Data.SqlClient.TdsParserStateObject.ReadByte()
w System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader strumienia danych, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
w System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, ciąg resetOptionsString)
w System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, returnStream typu Boolean, Boolean asynchroniczne)
w System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, returnStream typu Boolean, metoda ciąg, wynik DbAsyncResult)
w System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (wynik DbAsyncResult, ciąg methodName, Boolean sendToPipe)
w System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
w TVPApp.Program.Main (String [] args)


Błąd harmonogramu stabilnej wraz z komunikat o błędzie podobny do następującego jest rejestrowane w dzienniku błędów programu SQL Server:

< Data >< godzina > wersja serwera za pomocą "dbghelp.dll" "4.0.5"
Serwer czasu > < data >< *** nie można pobrać kontekstu wątku dla identyfikatora spid #
<Date><Time> Server * *******************************************************************************
Serwer czasu > < data >< *
Serwer czasu > < data >< * BEGIN ZRZUT STOSU:
Server < data >< godzina > * < data >< czas > spid #
Serwer czasu > < data >< *
< Data >< godzina > serwer * stabilnej harmonogramu
Serwer czasu > < data >< *
<Date><Time> Server * *******************************************************************************
Podpis stosu serwera < data >< godzina > dla zrzutu jest 0x000000000000002C
< Data >< zewnętrzny serwer czasu > Zrzut procesu powrotu kod 0x20000001.
Proces zrzucania pamięci zewnętrznej zwracane bez błędów.
Proces serwera < data >< godzina > 0:0:0 (0x1670) pracownik 0x0000000004EDE160 wydaje się być stabilnej na harmonogram 5. Czas utworzenia wątku: 13014210386757. Używane w przybliżeniu wątek Procesora: jądra 0 ms, Pani użytkownika 70106 wykorzystania procesu 16%. 77% czasu bezczynności systemu. Interwał: 70140 ms.
Proces serwera < data >< godzina > 0:0:0 (0x1670) pracownik 0x0000000004EDE160 wydaje się być stabilnej na harmonogram 5. Czas utworzenia wątku:

Przyczyna

Ten problem występuje z powodu błędu w aparacie bazy danych programu SQL Server 2012. Kolumny tekstu w TVP są implementowane jako wstawianie ciągów lub buforów i zwiększenie liczby wierszy zwiększa liczbę buforów. Jednak proces, który zwalnia buforów jest czasochłonne. W związku z tym zostanie wygenerowany błąd harmonogramu stabilnej po publikacji i zmniejszyć operacji występuje.

Uwaga Podobny problem został rozwiązany w następującym artykule bazy wiedzy Microsoft Knowledge base. Jednak pakiet aktualizacji zbiorczej opisanej w artykule nie jest dla problem limitu czasu kwerendy.

NAPRAW 2520808 : stabilnej harmonogram błąd podczas uruchamiania kwerendy, która używa TVP w programie SQL Server 2008 lub SQL Server 2008 R2, jeśli jest używany program SQL Profiler lub Extended zdarzeń programu SQL Server

Rozwiązanie

Informacje dotyczące zbiorczej aktualizacji

Zbiorczy pakiet aktualizacji 5 dla dodatku Service Pack 1 (SP1) dla programu SQL Server 2012

Poprawkę dotyczącą tego problemu najpierw została wydana w zbiorczej aktualizacji 5. Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2012 kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2861107 skumulowany pakietu aktualizacji 5 dla programu SQL Server 2012Uwaga Ponieważ są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniego programu SQL Server 2012 Release. Firma Microsoft zaleca, aby rozważyć zastosowanie najnowszej wersji poprawki, zawierający tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2772858 programu SQL Server 2012 tworzy wydane po wydaniu dodatku Service Pack 1 dla programu SQL Server 2012

Obejście problemu

Aby obejść ten problem, użyj jednej z następujących metod:

  • Nie należy używać programu SQL Profiler lub Extended zdarzeń programu SQL Server.

  • Kliknij, aby wyczyścić RPC: uruchamianie i RPC: zakończone pola wyboru w definicji śledzenia.

Więcej informacji

Ta poprawka nie dotyczą programu SQL Server 2008 lub SQL Server 2008 R2 po opublikowaniu tego KB. Jeśli wszyscy użytkownicy wystąpi ten sam problem w programie SQL Server 2008 lub SQL Server 2008 R2, nawet po zastosowaniu przez użytkowników pakietu, który jest opisany w następującym artykule, sprawdzania, czy ma limitu czasu kwerendy i ustalić, czy limit czasu może być rozwiązany. W przeciwnym razie przesłać żądanie, aby zastosować poprawkę do programu SQL Server 2008 lub SQL Server 2008 R2.

NAPRAW 2520808 : stabilnej harmonogram błąd podczas uruchamiania kwerendy, która używa TVP w programie SQL Server 2008 lub SQL Server 2008 R2, jeśli jest używany program SQL Profiler lub Extended zdarzeń programu SQL Server

Informacje stosu wywołań

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

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Author: jannaw
Writer: v-yipli
Weryfikacja tech.: pradm; jannaw; hozhan
Editor: v-mordew

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×