# 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

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin

Eğitimleri keşfedin >

Yeni özellikleri ilk olarak siz edinin

Microsoft Insider’a katılın >

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?

Geri bildiriminiz için teşekkürler!

×