# Hata: 187868 (İçerik Bakımı)VSTS: 1340145
Microsoft, Microsoft SQL Server 2012 düzeltmeleri tek bir yüklenebilir dosya dağıtır. Düzeltmeleri birikimli olduğu için her yeni sürüm tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2012 ile gelen tüm güvenlik güncelleştirmelerini güncelleştirin.
Belirtiler
Aşağıdaki senaryoyu düşünün:
-
Microsoft SQL Server 2012'de bir tablo deerli parametresi (TVP) kullanan bir saklı yordam oluşturun.
-
SQL Profiler veya SQL Server Genişletilmiş olayları yakalamak için kullanmak RPC: Başlangıç ve RPC: tamamlandı olaylar.
-
TVP kullanan bir sorguyu çalıştırırsınız.
-
Sorgu zaman aşımına uğradı.
Bu senaryoda, bir olmayan oluşturan zamanlayıcısı hatası oluşur ve aynı Zamanlayıcı üzerinde çalıştırılan sorgular yavaş çalışır. Ayrıca, bir mini döküm dosyası SQL Server günlük klasöründe oluşturulur.
Bu sorun oluştuğunda, aşağıdakine benzer bir hata iletisi alırsınız:System.Data.SqlClient.SqlException (0x80131904): Zaman aşımı süresi doldu. Zaman aşımı süresi işlem tamamlanmadan önce geçen veya sunucu yanıt vermiyor.
System.Data.SqlClient.SqlInternalConnection.OnError (SqlException özel durum, Boolean breakConnection) System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at at System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj, Uınt32 hata) System.Data.SqlClient.TdsParserStateObject.ReadSni at (DbAsyncResult asyncResult, TdsParserStateObject stateObj) System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket() at System.Data.SqlClient.TdsParserStateObject.ReadByte() at System.Data.SqlClient.TdsParser.Run at (RunBehavior runBehavior, cmdHandler SqlCommand, SqlDataReader hesaplanması, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior RunBehavior runBehavior, Boolean returnStream, async Boolean) at System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior RunBehavior runBehavior, Boolean returnStream, dize yöntemi, DbAsyncResult sonuç) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery at (DbAsyncResult sonucu, String methodName, Boolean sendToPipe) System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at TVPApp.Program.Main (String [] args)SQL Server hata günlüğünde aşağıdakine benzer bir hata iletisi ile birlikte olmayan oluşturan zamanlayıcısı hatası günlüğe kaydedilir:
< Saat > Server kullanarak 'dbghelp.dll' version '4.0.5' tarih ><
< Tarih >< saat > sunucu *** Unable SPID için iş parçacığı içeriği almak için # <Date><Time> Server * ******************************************************************************* < Tarih >< saat > sunucu * < Tarih >< saat > sunucu * BEGIN yığın DÖKÜMÜNÜ: < Tarih >< saat > sunucu * < tarih >< saat > SPID # < Tarih >< saat > sunucu * < Tarih >< saat > sunucu * ni olmayan Zamanlayıcı < Tarih >< saat > sunucu * <Date><Time> Server * ******************************************************************************* < Tarih >< saat > sunucu yığın imza dökümü için 0x000000000000002C. < Tarih >< saat > Server dış dökümü işlemi dönüş kodu 0x20000001. Dış dökümü işlemi herhangi bir hata döndürdü. < Tarih >< saat > sunucu işlemi 0:0:0 (0x1670) alt 0x0000000004EDE160 ni olmayan Zamanlayıcı 5 gibi görünüyor. İş parçacığı oluşturma süresi: 13014210386757. Yaklaşık iş parçacığı CPU kullanılır: çekirdek 0 ms kullanıcı 70106 Bayan işlem kullanımı % 16. Sistem boşta % 77. Aralığı: 70140 ms. < Tarih >< saat > sunucu işlemi 0:0:0 (0x1670) alt 0x0000000004EDE160 ni olmayan Zamanlayıcı 5 gibi görünüyor. İş parçacığı oluşturma zamanı:Neden
SQL Server 2012 veritabanı altyapısındaki bir hata nedeniyle bu sorun oluşur. TVP metin sütunlarında dize veya arabellek olarak uygulanır ve satır sayısında bir artış arabellek sayısını artırır. Ancak, arabellekleri serbest işlem zaman alır. Bu nedenle, bir olmayan oluşturan zamanlayıcısı hatası oluşturulur ne zaman serbest bırakmak ve küçültme işlemleri oluşur.
Not: Aşağıdaki Microsoft Bilgi Bankası makalesinde benzer bir sorun giderilmiştir. Ancak, makalede açıklanan toplu güncelleştirme paketi için bir sorgu zaman aşımı sorunu değildir.2520808 düzeltme: bir sorgu çalıştırdığınızda olmayan oluşturan zamanlayıcısı hatası SQL Profiler veya SQL Server Genişletilmiş olayları kullanılırsa, SQL Server 2008 veya SQL Server 2008 R2'de bir TVP kullanır
Çözüm
Toplu güncelleştirme bilgileri
SQL Server 2012 Service Pack 1 (SP1) için Toplu Güncelleştirme Paketi 5
Bu sorunla ilgili düzeltme, ilk toplu güncelleştirme 5'te yayımlanmıştır. SQL Server 2012 için bu toplu güncelleştirme paketini elde etme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
SQL Server 2012 için 2861107 toplu güncelleştirme paketi 5Not: Yapýlar birikimli olduğu için her yeni düzeltme yayımlanan tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2012 ile gelen tüm güvenlik düzeltmelerini düzeltin. Bu düzeltmeyi içeren en son düzeltme sürümü uygulama ele almanızı öneririz. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
2772858 SQL Server 2012, SQL Server 2012 Service Pack 1'de yayımlandıktan sonra yayımlanan oluşturur
Geçici çözüm
Bu soruna geçici bir çözüm uygulamak için aşağıdaki yöntemlerden birini kullanın:
-
SQL Profiler veya SQL Server Genişletilmiş olayları kullanmayın.
-
Tıklatıp temizleyin RPC: Başlangıç ve RPC: tamamlandı onay kutuları izleme tanımını.
Daha fazla bilgi
Bu KB yayımlandığında bu düzeltme SQL Server 2008 veya SQL Server 2008 R2 için geçerli değildir. Bile kullanıcılar aşağıdaki makalede açıklanan paket uygulandıktan sonra kullanıcılar SQL Server 2008 veya SQL Server 2008 R2'de aynı sorunla karşılaşırsanız, sorgu zaman aşımı ise doğrulamak ve zaman aşımı giderilmiş olup olmadığını belirleyin. Aksi durumda, SQL Server 2008 veya SQL Server 2008 R2 için bu düzeltmeyi uygulamak için bir istek gönderin.
2520808 düzeltme: bir sorgu çalıştırdığınızda olmayan oluşturan zamanlayıcısı hatası SQL Profiler veya SQL Server Genişletilmiş olayları kullanılırsa, SQL Server 2008 veya SQL Server 2008 R2'de bir TVP kullanır
Çağrı yığını bilgileri
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
Durum
Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Author: jannaw
Writer: v-yipli Teknik İnceleme: pradm; jannaw; hozhan Editor: v-mordew