Düzeltme: yüksek cpu kullanımı query_exec_stats Sayaç kilidi ile çekişme gözlenen düşük performans sql Server 2008 R2 veya sql Server 2012 oluşur

Makale çevirileri Makale çevirileri
Makale numarası: 2662301 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Microsoft, Microsoft sql Server 2008 R2 Service Pack 1 (SP1) dağıtır veya karşıdan yüklenebilen bir dosya Microsoft sql Server 2012 giderir. Düzeltmeleri birikimli olduğu için her yeni sürüm düzeltmeleri içerir ve sürüm önceki sql Server 2008 R2 Service Pack 1 (SP1) veya Microsoft sql Server 2012 ile birlikte tüm güvenlik güncelleştirmelerini güncelleştirin.

Belirtiler

Aşağıdaki senaryoyu düşünün:
  • Microsoft sql Server 2008 R2 veya Microsoft sql Server 2012 örneği, bir bilgisayara yükleyin.
  • Aşağıdakine benzer eşzamanlı deyimin örneğinde yürütülür:
    CREATE PROC p AS RETURN (
    query
    ); EXEC p;
    Veya, aşağıdaki kodu içeren bir sorgu çalıştırdığınızda:

    IF EXISTS(
    subquery
    );
  • Sürekli yüksek cpu kullanımı ve iş parçacığı runnable durumdadır.
  • Çakışması QUERY_EXEC_STATS Sayaç kilidi yüksektir.
    Örneğin, dönüş sayısı, olası çakışmaları ve arka kapalı değerleri QUERY_EXEC_STATS Sayaç kilidi hızla artar.
    Not Nasıl izleneceği hakkında daha fazla bilgi QUERY_EXEC_STATS Sayaç kilidi, "Daha fazla bilgi" bölümüne bakın.

Bu senaryoda, performansın ortaya çıkabilir.

Neden

Bu sorun nedeniyle sql Server 2008 R2 oluşur veya sql Server 2012 oluşturur ve bunları önbelleğe alma yerine genel istatistikler hakkında bazı bellek yapılarını bozar. Bu performans düşüklüğü neden olur.

Çözüm

Toplu güncelleştirme bilgileri

sql Server 2012

Bu sorunla ilgili düzeltme, önce sql Server 2012 için toplu güncelleştirme 1'de yayımlanmıştır. Bu toplu güncelleştirme paketi 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:
2679368 sql Server 2012 için toplu güncelleştirme paketi 1
Not Yap?lar birikimli olduğu için her yeni düzeltme Sürüm düzeltmeleri içerir ve önceki sql Server 2012 ile birlikte tüm güvenlik düzeltmelerini düzeltmesi. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümü uygulama önermektedir. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2692828 sql Server 2012'den sonra yayımlanan sql Server 2012 oluşturur
sql Server 2012 yüklemesi için sql Server 2012 düzeltmeyi uygulamanız gerekir.

sql Server 2008 R2 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. Bu toplu güncelleştirme paketi sql Server 2008 R2 SP1'i 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:
2659694 sql Server 2008 R2 SP1 için toplu güncelleştirme paketi 5
Not Yap?lar birikimli olduğu için her yeni düzeltme Sürüm düzeltmeleri içerir ve önceki sql Server 2008 R2 SP1 ile birlikte tüm güvenlik düzeltmelerini düzeltmesi. Biz, bu düzeltmeyi içeren en son düzeltme sürümü uygulaması önerilir. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2567616 sql Server 2008 R2 SP1 yayımlandıktan sonra yayımlanan sql Server 2008 R2 oluşturur

Daha fazla bilgi

query_exec_stats Sayaç kilidi izlemek için gecikme ve aşağıdaki kodda ortamınıza uygun olarak yineleme sayısını ayarlayın ve sonra çalıştırın:

SET NOCOUNT ON
CREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())
DECLARE @counter int = 1
WHILE @counter < 10
      BEGIN
            INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS')
            WAITFOR DELAY '00:00:05'
            SET @counter +=1
      END
SELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTime
DROP TABLE #spins

Durum

Microsoft, "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bir sorun olduğunu onaylamıştır.

Özellikler

Makale numarası: 2662301 - Last Review: 12 Nisan 2012 Perşembe - Gözden geçirme: 1.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
Anahtar Kelimeler: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2662301 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:2662301

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com