Aracılığıyla paylaş


Tempdb performansı en iyi duruma getirme

Boyut ve fiziksel yerleşimini tempdb veritabanı, sistem performansını etkileyebilir.Tempdb için tanımlanan boyutu çok küçük, örneğin, sistem işlem yükü parçası autogrowing tempdb ile her örnek yeniden başlatıldıktan sonra iş yükünü desteklemek için gereken boyuta kapladığı SQL Server. Tempdb veri ve günlük dosyası boyutunu artırarak, bu ek yükü önleyebilirsiniz.Uygun tempdb için gereken disk alanı miktarını belirleme hakkında daha fazla bilgi için bkz: Tempdb kapasite planlama.

tempdb boyutu ve yerleşimi öneriler

En iyi tempdb performansı elde etmek için için aşağıdaki yapılandırma önerilir tempdb üretim ortamında:

  • küme Kurtarma modeli, tempdb SIMPLE için.Bu model, otomatik olarak boş alan gereksinimleri küçük tutmak için günlük alanı reclaims.

    Daha fazla bilgi için bkz: ALTER DATABASE Transact-SQL) veya Nasıl Yapılır: Görüntülemek veya kurtarma modeli, bir veritabanı (SQL Server Management Studio'yu) değiştirme.

  • Tempdb dosyalarını otomatik olarak genişlemesine izin gerektiği gibi.Bu dosya için disk dolu olduğu kadar büyümesine izin verir.

    Not

    Beklenen iş yükü için izin vermek için alan, üretim ortamında uygulama saat aşımları otomatik büyüme işlemleri sırasında oluşabilecek olasılığını kabul edemiyor, preallocate.

  • Dosya büyüme artışı çok küçük bir değer büyümesini engellemek veritabanı tempdb dosyalarını önlemek için uygun bir boyuta ayarlayın.Dosya Büyümesi çok küçükse, tempdb için yazılan veri miktarına göre tempdb sürekli genişletmeniz gerekebilir.Bu, performansı etkiler.Tempdb dosyaları FILEGROWTH artış değerini ayarlamak için aşağıdaki genel kuralları öneririz.

    tempdb dosya boyutu

    FILEGROWTH artırma

    0-100 MB

    10 MB

    100 to 200 MB

    20 MB

    200 MB veya daha fazla

    10%*

    *, Bu yüzdeye tempdb dosyalarını bulunan g/Ç alt sisteminin hızına bağlı olabilir.Olası mandal saat aşımlarının önlemek için , otomatik büyüme işlemi yaklaşık iki dakika sınırlama öneririz.Örneğin, g/Ç alt sisteminin bir saniyede 50 MB dosyasını başlatılamıyor, FILEGROWTH artış olmalıdır küme en fazla 6 GB, tempdb boyutunu ne olursa olsun.Olanaklıysa, kullanma anlık veritabanı dosyası başlatma otomatik büyüme işlemlerinin performansını artırmak için.

  • Alan tüm tempdb dosyalarını dosya boyutu ortamında normal iş yükünü dengelemek için yeterince büyük bir değere ayarlayarak preallocate.Bu, performansı etkileyebilir; çok sık genişletiliyor gelen tempdb engeller.Tempdb veritabanı olması gereken küme için otomatik büyüme, ancak bu, plansız özel durumlar için disk alanını artırmak için kullanılmalıdır.

  • Bant genişliğini en üst düzeye çıkarmak için gereken çok sayıda dosya disk gibi oluşturun.Birden çok dosya kullanarak, tempdb depolama Çekişme azaltır ve sayıları ölçeklenebilirliğini önemli ölçüde daha iyi.Ancak, bu performans azaltmak ve yönetim yükü artırmak için çok fazla dosya oluşturmayın.Genel bir kılavuz (hesap herhangi bir sunucudaki her CPU için bir veri dosyası oluşturun. benzeşme maskesi ayarları) ve sonra yukarı veya kapalı dosya sayısı bu gerektiği gibi ayarlayın.Bir çift çekirdek CPU iki CPU'yu düşünülür olduğunu unutmayın.

  • Marka her aynı boyutta veri dosyası; bu orantılı dolgu en iyi performans sağlar.

  • Tempdb veritabanı hızlı g/Ç alt sisteminin yerleştirin.Varsa birçok doğrudan kullanımı, disk biçimlendirme, diskler eklenir.

  • Tempdb veritabanı, user veritabanlarındaki tarafından kullanılan farklı bir disk yerleştirin.

Tempdb boyutu ve büyüme parametrelerini değiştirme

Aşağıdaki yöntemlerden birini kullanarak, tempdb veri veya günlük dosyalarının boyutunu ve dosya büyüme parametrelerini değiştirebilirsiniz:

Tempdb oluşturulan her dosya boyutunu ve filegrowth parametreler için değerler kullanılır.Örneğin, 20 MB tempdb veri dosyasının boyutunu artırmak ve yüzde 15 için'dosya büyüme artışı artırmak, yeni değerleri etkisini hemen etkin olur.Sonraki işlem faaliyetler tempdb boyutunu büyümesine neden olursa, her örnek yeniden başlatıldıktan veri dosyasının boyutu 20 MB kadar döner SQL Server.

Tempdb boyutu ve büyüme parametrelerini görüntüleme

Tempdb veri veya günlük dosyalarının boyutunu ve dosya büyüme parametreleri, aşağıdaki yöntemlerden birini kullanarak görüntüleyebilirsiniz:

  • SQL Server Management Studio

  • Aşağıdaki sorguyu çalıştırıyor.

    SELECT 
        name AS FileName, 
        size*1.0/128 AS FileSizeinMB,
        CASE max_size 
            WHEN 0 THEN 'Autogrowth is off.'
            WHEN -1 THEN 'Autogrowth is on.'
            ELSE 'Log file will grow to a maximum size of 2 TB.'
        END,
        growth AS 'GrowthValue',
        'GrowthIncrement' = 
            CASE
                WHEN growth = 0 THEN 'Size is fixed and will not grow.'
                WHEN growth > 0 AND is_percent_growth = 0 
                    THEN 'Growth value is in 8-KB pages.'
                ELSE 'Growth value is a percentage.'
            END
    FROM tempdb.sys.database_files;
    GO
    

Disk g/Ç yol hataları algılama

Zaman küme sağlama toplamı, PAGE_VERIFY seçeneği tarafından disk g/Ç yol hataları nedeniyle zarar görmüş bir veritabanı sayfaları bulur ve bu hataları gibi bildiriyor MSSQLSERVER_823, MSSQLSERVER_824, veya MSSQLSERVER_825, SQL hata günlüğünde. Disk g/Ç yol hataları neden Veritabanı Bozulması sorunları olabilir ve genellikle elektrik kesintisinin ortaya disk donanım hataları nedeniyle saat sayfa yazılan diske.G/Ç hataları hakkında daha fazla bilgi için bkz: Microsoft SQL Server g/Ç temel kavramları, Bölüm 2.

' Ün önceki sürümlerinde SQL Server, PAGE_VERIFY veritabanı seçeneği YOK tempdb veritabanı için küme ve değiştirilemez. Içinde SQL Server 2008, tempdb veritabanı için varsayılan değer sağlama toplamı yeni yüklemelerinde olur. SQL Server. Yükleme yükseltirken SQL Server, varsayılan değer YOK olarak kalır. sağlama toplamı için tempdb veritabanı için PAGE_VERIFY seçeneği ayarlamanız önerilir.