Applies ToSQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

# 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() atat 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() atSystem.Data.SqlClient.TdsParserStateObject.ReadByte() atSystem.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) atSystem.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior RunBehavior runBehavior, Boolean returnStream, dize yöntemi, DbAsyncResult sonuç) atSystem.Data.SqlClient.SqlCommand.InternalExecuteNonQuery at (DbAsyncResult sonucu, String methodName, Boolean sendToPipe)System.Data.SqlClient.SqlCommand.ExecuteNonQuery() atTVPApp.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+0x69sqlmin!CMainIlb::{dtor}+0x3dsqlmin!CMainIlb::`scalar deleting destructor'+0x3dsqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13sqlmin!CMainIlb::Release+0xf0sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80sqllang!CTraceTvpData::{dtor}+0x14sqllang!CTraceTvpData::`scalar deleting destructor'+0x1esqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x33sqllang!CRpcTraceHelper::~CRpcTraceHelper+0x70sqllang!CRPCExecEnv::~CRPCExecEnv+0x2absqllang!CRPCExecEnv::`scalar deleting destructor'+0x14sqllang!process_request+0x10b1sqllang!process_commands+0x51csqldk!SOS_Task::Param::Execute+0x21esqldk!SOS_Scheduler::RunTask+0xa8sqldk!SOS_Scheduler::ProcessTasks+0x299sqldk!SchedulerManager::WorkerEntryPoint+0x261sqldk!SystemThread::RunWorker+0x8fsqldk!SystemThreadDispatcher::ProcessWorker+0x3c8sqldk!SchedulerManager::ThreadEntryPoint+0x236kernel32!BaseThreadInitThunk+0xdntdll!RtlUserThreadStart+0x1d  
sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FDelete+0x34sqlmin!CCheckReadersAndWriters::Release+0xfbsqlmin!CMainIlb::{dtor}+0x3dsqlmin!CMainIlb::`scalar deleting destructor'+0x3dsqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13sqlmin!CMainIlb::Release+0xf0sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80sqllang!CTraceTvpData::{dtor}+0x11sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x55sqllang!CRpcTraceHelper::TracePostExec+0x1bfsqllang!CRPCExecEnv::OnExecFinish+0xaasqllang!CProtocolHeaderInfo::{dtor}+0xffffffff`ffb158e2sqllang!process_request+0x764sqllang!process_commands+0x51csqldk!SOS_Task::Param::Execute+0x21esqldk!SOS_Scheduler::RunTask+0xa8sqldk!SOS_Scheduler::ProcessTasks+0x29asqldk!SchedulerManager::WorkerEntryPoint+0x261sqldk!SystemThread::RunWorker+0x8fsqldk!SystemThreadDispatcher::ProcessWorker+0x3c8sqldk!SchedulerManager::ThreadEntryPoint+0x236kernel32!BaseThreadInitThunk+0x1antdll!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: jannawWriter: v-yipliTeknik İnceleme: pradm; jannaw; hozhanEditor: v-mordew

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

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.