Uygulandığı Öğe
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

Microsoft, Microsoft SQL Server 2012 düzeltmelerini indirilebilir tek bir dosyada dağıtır. Düzeltmeler toplu olduğundan, her yeni sürüm önceki SQL Server 2012 güncelleştirme sürümüne dahil edilen tüm düzeltmeleri ve tüm güvenlik güncelleştirmelerini içerir.

Belirtiler

Aşağıdaki senaryoyu inceleyin:

  • Microsoft SQL Server 2012'de tablo değerli parametre (TVP) kullanan bir saklı yordam oluşturursunuz.

  • RPC:Starting ve RPC:Completed olaylarını yakalamak için SQL Profiler veya SQL Server Genişletilmiş Olaylar kullanırsınız.

  • TVP kullanan bir sorgu çalıştırırsınız.

  • Sorgu zaman aşımına uğradı.

Bu senaryoda, verimsiz bir zamanlayıcı hatası oluşur ve aynı zamanlayıcıda çalışan sorgular yavaş çalışır. Ayrıca, SQL Server günlük klasöründe bir mini döküm dosyası 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. İşlem tamamlanmadan önce zaman aşımı süresi doldu veya sunucu yanıt vermiyor.System.Data.SqlClient.SqlInternalConnection.OnError(SqlException özel durumu, Boole breakConnection)at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket() konumunda UInt32 hatası)System.Data.SqlClient.TdsParserStateObject.ReadByte()at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String yöntemi, DbAsyncResult sonucu)at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) konumunda boolean async)atAT System.Data.SqlClient.SqlCommand.ExecuteNonQuery()at TVPApp.Program.Main(String[] args)

Aşağıdakine benzer bir hata iletisiyle birlikte verimsiz zamanlayıcı hatası SQL Server hata günlüğüne kaydedilir:

'dbghelp.dll' sürümü '4.0.5 '<Tarih><Saat> Sunucusu Kullanan <Tarih><Saat> Sunucusu {spid #<Tarih><Saat> Sunucusu * *******************************************************************************><2 Tarih><Saat> Sunucusu *><6 Tarih><Saat> Sunucusu * BEGIN STACK DUMP:><0 Tarih><Saat> Sunucusu * <Tarih><Saat> spid #><8 Tarih><Saat> Sunucusu *><2 Tarih><Saat> Sunucusu * Verimsiz Zamanlayıcı><6 Tarih><Saat> Sunucusu *<Tarih><Saat> Sunucusu * *******************************************************************************<Tarih><Saat> Sunucu Yığını İmzası< Tarih><Saat> Sunucu Dış döküm işlemi dönüş kodu 0x20000001 0x000000000000002C.Dış döküm işlemi hata döndürmedi.<Tarih><Saat> Sunucu İşlemi 0:0:0 (0x1670) Çalışan 0x0000000004EDE160 Zamanlayıcı 5'te verimsiz görünüyor. İş parçacığı oluşturma zamanı: 13014210386757. Yaklaşık İş Parçacığı CPU Kullanıldı: çekirdek 0 ms, kullanıcı 70106 ms. İşlem Kullanımı %16. Sistem Boşta %77. Aralık: 70140 ms.<Tarih><Saat> Sunucu İşlemi 0:0:0 (0x1670) Çalışan 0x0000000004EDE160 Zamanlayıcı 5'te verimsiz görünüyor. İş parçacığı oluşturma zamanı:

Neden

Bu sorun, SQL Server 2012 Veritabanı Altyapısı'ndaki bir hata nedeniyle oluşur. TVP'deki metin sütunları ekleme dizeleri veya arabellekler olarak uygulanır ve satır sayısındaki artış arabellek sayısını artırır. Ancak arabellekleri serbest bırakan işlem zaman alır. Bu nedenle, sürüm ve küçültme işlemleri gerçekleştiğinde verimsiz bir zamanlayıcı hatası oluşturulur. Not Aşağıdaki Microsoft Bilgi Bankası makalesinde benzer bir sorun giderilmiştir. Ancak, makalede açıklanan toplu güncelleştirme paketi sorgu zaman aşımı sorununa yönelik değildir.

2520808 DÜZELTME: SQL Profiler veya SQL Server Genişletilmiş Olaylar kullanılıyorsa SQL Server 2008 veya SQL Server 2008 R2'de TVP kullanan bir sorgu çalıştırdığınızda verimsiz zamanlayıcı hatası

Çözüm

Toplu güncelleştirme bilgileri

SQL Server 2012 Service Pack 1 (SP1) için toplu güncelleştirme paketi 5

Bu sorunun düzeltmesi ilk olarak Toplu Güncelleştirme 5'te yayımlandı. SQL Server 2012 için bu toplu güncelleştirme paketini edinme 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:

2861107 SQL Server 2012 için toplu güncelleştirme paketi 5Not Derlemeler toplu olduğundan, her yeni düzeltme sürümü önceki SQL Server 2012 düzeltme sürümüne dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. Bu düzeltmeyi içeren en son düzeltme sürümünü uygulamayı göz önünde bulundurmanı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 Service Pack 1 yayımlandıktan sonra yayımlanan SQL Server 2012 derlemeleri

Çözüm

Bu sorunu çözmek için aşağıdaki yöntemlerden birini kullanın:

  • SQL Profiler veya SQL Server Genişletilmiş Olayları kullanmayın.

  • İzleme tanımında RPC:Başlangıç ve RPC:Tamamlandı onay kutularını temizlemek için tıklayın.

Durum

Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

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.