Share via


Tempdb için kapasite planlama

Bu konuda uygun disk miktarını belirleme yönergeleri boşluk sağlar tempdb gerektirir.Bu konuda da nasıl yapılandırılacağı konusunda öneriler içerir tempdb nasıl izleneceği hakkında bilgi ve bir üretim ortamında en iyi performans için tempdb kullanım alanı.

Tempdb nasıl kullanılır

The tempdb system database is a global resource that is available to all users that are connected to an instance of SQL Server.The tempdb database is used to store the following objects: kullanıcı nesneleri iç nesneleri ve sürüm depolar.

Kullanıcı nesneleri

Kullanıcı nesneleri açıkça kullanıcı tarafından oluşturulur.Bu nesneler kullanıcı oturum kapsamı veya nesnenin oluşturulduğu yordamının kapsam olabilir.Bir saklı yordam bir yordamdır tetiklemek veya kullanıcı tanımlı işlev.Kullanıcı nesneleri aşağıdakilerden biri olabilir:

  • Kullanıcı tanımlı tablolar ve dizinler

  • Sistem tablolarını ve dizinler

  • Genel geçici tablolar ve dizinler

  • Yerel geçici tablolar ve dizinler

  • Tablo değişkenleri

  • Tablo değerli işlevler döndürülen tablolar

İç nesneler

İç nesneleri tarafından gerekli oluşturulur SQL Server Veritabanı Altyapısı işlem için SQL Server deyimleri.İç nesneleri oluşturulabilir ve bir deyim kapsam içinde bıraktı.İç nesneleri aşağıdakilerden biri olabilir:

  • Tablolar imleç veya biriktirme işlemleri ve geçici büyük nesne (lob) depolama için çalışır.

  • Dosyaları karma birleştirmek veya karma toplu işlemleri için çalışır.

  • Ara sıralama sonuçlar (SORT_IN_TEMPDB belirtilmişse) dizinleri yeniden oluşturuluyor veya oluşturma gibi işlemler için veya bazı group by, order by veya UNION sorgular.

Her bir iç nesne, en az dokuz sayfaları kullanır; bir IAM sayfa ve sekiz sayfalık bir kapsam.Sayfaları ve kapsamları hakkında daha fazla bilgi için bkz: Anlama sayfaları ve kapsam.

Sürüm deposu

Sürüm deposu olan bir koleksiyon kullanma özelliklerini desteklemek için gereken veri satırları alacak veri sayfalarının satır sürüm oluşturma.İki sürüm mağazalar vardır: ortak sürüm deposu ve dizin oluşturma çevrimiçi sürüm deposu.Sürüm deposu aşağıdakileri içerir:

  • Anlık görüntü veya satır sürüm oluşturma yalıtım düzeyleri kullanarak kaydedilen okuma kullanan bir veritabanı içinde veri değişikliği hareketleri tarafından oluşturulan satır sürümleri.

  • Özellikleri için veri değişikliği hareketleri tarafından gibi oluşturulan satır sürümleri: Çevrimiçi dizin işlemleri, birden çok etkin sonuç kümeleri (mars) ve sonra tetikler.

Aşağıdaki tablo özellikleri listeler SQL Server kullanıcı nesneleri, iç nesneleri veya satır sürümleri oluşturmak tempdb.Mümkün olan her durumda, disk alanı kullanımını tahmin etme yöntemleri sağlanır.

Özellik

tempdb kullanımı

Ek bilgi

Etkin Tetikleyiciler ile bulkload işlemleri

Bulk-import optimizations are available when triggers are enabled.SQL Server uses row versioning for triggers that update or delete transactions.Silinen veya güncelleştirilen her satır bir kopyasını sürüm deposu eklenir.Bkz: "Tetikleyiciler" daha sonra bunu izleyen tablo.

Toplu alma performansı en iyi duruma getirme

Ortak tablo ifade sorguları

Ortak bir tablo deyim, tek bir seçin, Ekle, update, delete veya create VIEW deyim yürütme kapsam içinde tanımlanan bir geçici sonuç küme olarak düşünülebilir.

Sorgu planı için bir ortak tablo ifade sorgusu bir biriktirme kullandığında işleç Ara sorgu sonuçlar kaydetmek için Veritabanı Altyapısı içinde bir çalışma tablosu oluşturur tempdb bu işlemi desteklemek için.

Ortak tablo ifadeleri kullanma

Common_table_expression (Transact-sql) ile

İmleçler

Anahtar kümesi kullanımlı ve statik imleçler kullanmak yerleşik olan iş tabloları tempdb.Anahtar küme kullanımlı imleçs iş tabloları satırları tanımlayan anahtar kümesini depolamak için kullanmak imleç.Statik İmleçler kullanmak bir iş tablo imlecin tam sonuç kümeni depolamak için.

İmleçler için disk alanı kullanımını seçilen sorgu planına bağlı olarak değişebilir.Sorgu planı önceki sürümlerinde aynıdır, SQL Server, disk alanı kullanımı yaklaşık aynıdır.

Bir imleç türü seçme hakkında

Veritabanı posta

"Hizmet Aracısı" konusuna bakın. daha sonra bunu izleyen tablo.

Veritabanı posta

DBCC CHECKDB

dbcc checkdb kullanır tempdb Ara sonuçlar tutmak için çalışma tabloları ve sıralama işlemleri için.

Belirlemek için tempdb disk alanı gereksinimleri ESTIMATEONLY ile dbcc checkdb çalıştırmak operasyon için.

DBCC CHECKDB (Transact-SQL)

dbcc checkdb performansı en iyi duruma getirme

Olay bildirimleri

"Hizmet Aracısı" konusuna bakın. daha sonra bunu izleyen tablo.

Olay bildirimlerini anlama

Dizinler

Oluşturduğunuzda veya bir dizin (çevrimiçi veya çevrimdışı) yeniden inşa ve küme , SORT_IN_TEMPDB seçeneği açık, doğrudan Veritabanı Altyapısı kullanmak tempdb dizini oluşturmak için kullanılan ara sıralama sonuçlar saklamak.SORT_IN_TEMPDB belirtilen ve sıralama, gerekli olduğunda tempdb en büyük dizin saklamak için yeterli disk alanı artı değerine eşit olan disk alanı olması gerekir Dizin oluşturma bellek seçeneği.Daha fazla bilgi için bkz: Dizin Disk alanı örneği.

Tablolar ve dizinler bölümlenmiş.Bölümlenmiş dizinler için dizini temel tablo ile hizalanır ve SORT_IN_TEMPDB INDEX seçeneğinde belirtilen bulunması yeterli alana tempdb Ara sıralama en büyük bölümünün çalışır tutacak.Dizin hizalanmışsa, yeterli alanı içinde olmalıdır tempdb Ara sıralama çalıştırır tüm bölümlerin tutacak.Daha fazla bilgi için bkz: Bölümlenmiş dizinler için özel yönergeleri.

Efektleri dizin operasyondan başka işlemler tarafından yapılan değişiklikler yalıtmak için çevrimiçi dizin işlemleri kullan satır sürüm.Satır sürüm oluşturma okuma sahip satırlar üzerinde paylaşım kilitleri isteyen gereğini ortadan kaldırır.Eşzamanlı kullanıcı güncelleştirme ve silme işlemleri sırasında çevrimiçi dizin işlemleri gerektiren alan sürüm kayıtlarında tempdb.Çevrimiçi dizin işlemleri SORT_IN_TEMPDB kullanın ve sıralama, gerekli olduğunda tempdb Ara sıralama sonuçlar elde etmek için daha önce açıklanan ek disk alanı olması gerekir.Oluşturmak, bırakma veya kümelenmiş dizin yeniden çevrimiçi dizin işlemleri, ayrıca yapı ve geçici eşleme dizini güncelleştirmek için ek disk alanı gerektirir.OLUŞTURMA ve güncelleştirme İSTATİSTİKLERİ işlemleri tempdb satır istatistikleri oluşturmak için örnek sıralamak için kullanabilirsiniz.Daha fazla bilgi için bkz: Dizin ddl işlemleri için disk alanı gereksinimleri.

tempdb ve dizin oluşturma

Bölümlenmiş dizinler için özel yönergeleri

Dizin ddl işlemleri için disk alanı gereksinimleri

Dizin Disk alanı örneği

Dizin Operations nasıl çevrimiçi çalışma

Değişkenleri ve parametreleri büyük nesne (lob) veri türü

The large object data types are varchar(max), nvarchar(max), varbinary(max)text, ntext, image, and xml.Bu türler ve değişkenler veya parametreler saklı yordamlar, kullanıcı tanımlı işlevler, toplu işlemleri veya sorguları olarak kullanılan 2 GB'ye kadar olabilir.Küçük değerlerdir parametreleri ve lob veri türü olarak tanımlanan değişkenleri ana bellek depolama alanı olarak kullanın.Ancak, büyük değer saklanan tempdb.Ne zaman lob değişkenleri ve parametreleri depolanmış olan tempdb, iç nesneler olarak kabul edilir.Sorgulama yapabilirsiniz sys.dm_db_session_space_usage Dinamik yönetim görünümü, belirli bir oturum için iç nesneleri için ayrılmış sayfaların bildirmek için.

Alt DİZE veya REPLICATE gibi bazı iç dize işlevlerini Ara geçici depolama yeri gerektirebilecek tempdb ne zaman onlar işletim lob değerleri.Benzer şekilde, bir satır bulunduğunda sürüm oluşturma tabanlı işlem yalıtım düzey veritabanı üzerinde etkin ve nesnelerin büyük değişiklikler yapıldı, lob değişen parçası sürüm deposuna kopyalanır tempdb.

Büyük değer veri türleri'ni kullanma

Birden çok etkin sonuç kümeleri (mars)

Birden çok etkin sonuç kümeleri altında tek bir bağlantı ortaya çıkabilir; Bu genelde mars adlandırılır.Bir veri değişikliği mars oturum sorunları, deyim (INSERT, update veya delete gibi) bir etkin sonuç küme olduğunda satırları olan yapacakları etkilenen deyim sürüm deposunda saklanan tempdb."Satır sürüm oluşturma" konusuna bakın. daha sonra bunu izleyen tablo.

Çoklu Active sonucu kullanarak (mars) ayarlar

Sorgu bildirimleri

"Hizmet Aracısı" konusuna bakın. daha sonra bunu izleyen tablo.

Sorgu bildirimleri kullanma

Sorgular

İçeren select, INSERT, update ve delete deyimlerini sorgular, iç nesneleri karma birleşimler, karma toplamları veya sıralama için Ara sonuçlar depolamak için kullanabilirsiniz.

Sorgu yürütme planı önbelleğe alındığında, plana göre gerekli iş tabloları önbelleğe alınır.Çalışma tablosu önbelleğe alındığında tablo kesilir ve dokuz sayfaları yeniden kullanmak üzere önbelleğinde kalır.Bu sorgu bir sonraki yürütme performansını artırır.Sistem belleği, düşük ise, Veritabanı Altyapısı yürütme planı kaldırmak ve doğrudan ilişkili iş tabloları.

Yeniden yürütme planı önbellekleme ve

Satır sürüm oluşturma

Satır sürüm oluşturma aşağıdaki özellikleri desteklemek için kullanılan genel çerçevesi aşağıdaki gibidir:

  • Tetikleyicileri

  • Birden çok etkin sonuç kümeleri (mars)

  • Çevrimiçi seçeneğini belirtin dizin işlemleri

  • Satır sürüm oluşturma tabanlı hareket izolasyon düzeyleri:

    • Yeni bir satır sürüm oluşturma deyim düzey okuma tutarlılık sağlamak için kullanır okunur kaydedilmiş yalıtım düzey uygulaması.

    • A anlık görüntü yalıtım düzey işlem düzey okuma tutarlılık sağlamak için.

Satır sürümleri içinde tutulur tempdb etkin bir işlem erişmesi gereken sürece için sürüm deposu.Geçerli sürüm deposu içeriği iade sys.dm_tran_version_store.Sürüm deposu sayfaları dosya izlenen düzey genel kaynakları, çünkü bunlar.Kullanabileceğiniz version_store_reserved_page_count sütun , sys.dm_db_file_space_usage sürüm deposu geçerli boyutunu görüntülemek için.Sürüm deposu temizleme belirli sürümü erişim gerektiren en uzun çalışan hareketi dikkate almanız gerekir.Sürüm deposu temizleme için ilgili en uzun çalışan hareketi görüntüleyerek bulunabilmesi elapsed_time_seconds sütun , sys.dm_tran_active_snapshot_database_transactions.Sayaçlar Tempdb (kb) boş alan ve Sürüm deposu boyutu (kb), hareketleri nesne boyutunu ve satır Sürüm deposundaki büyüme hızı izlemek için kullanılabilecek tempdb.Daha fazla bilgi için bkz: sql Server işlemleri nesnesi.

Ne kadar alan gereklidir tahmin etmek için tempdb satır sürüm oluşturma için önce etkin bir işlem Sürüm deposundaki tüm değişiklikleri tutmak gerekir'ı dikkate almanız gerekir.Yani, daha sonra başlayan anlık görüntü görüntü hareketi eski sürümlerine erişebilirsiniz.Ayrıca, etkin anlık görüntü görüntü hareketi ise, anında başlar da tutulması gerekir, etkin olan hareketler tarafından oluşturulan verilerin tüm sürüm deposu.

Temel formül şöyledir:

[Sürüm deposu boyutu] = 2 *

[Dakika oluşturulan sürüm deposu veri] *

[En uzun çalışan saat (dakika) bilgilerinizi hareketinin]

Satır sürüm oluşturma tabanlı yalıtım düzeyleri anlama

Satır sürüm oluşturma kaynak kullanımı

Service Broker

Service Broker içinde bağımsız bileşenler bir görevi gerçekleştirmek için birlikte çalışan zaman uyumsuz, gevşekçe eşleşmiş uygulamalar geliştirmelerine yardımcı olur.These application components exchange messages that contain the information that is required to complete the task.Service Broker explicitly uses tempdb for preserving existing dialog context that cannot stay in memory.İletişim başına yaklaşık 1 kb boyutudur.

Ayrıca, Service Broker örtülü olarak kullandığı tempdb tarafından Süreölçer olayları için kullanılır ve teslim görüşmeleri arka plan iş tabloları gibi sorgu yürütme bağlamında nesneleri önbelleğe alma.

Veritabanı posta, Olay bildirimlerini, ve Sorgu bildirimleri örtülü olarak kullanmak Service Broker.

(Hizmet Aracısı) genel bakış

Saklı yordamlar

Saklı yordamlar, kullanıcı nesneleri olarak global veya yerel geçici tablolar ve dizinler bunların, değişkenler veya parametreler oluşturabilirsiniz.Bırakın ve bu nesneleri oluşturma işlemlerini en iyi duruma getirmek için geçici saklı yordamlar nesneleri önbelleğe alınabilir.Bu davranış artırabilir tempdb disk alanı gereksinimleri.Geçici nesnesi dokuz sayfaya kadar yeniden kullanılmak üzere saklanır.Bkz: "geçici tablolar ve table değişkenleri" daha sonra bunu izleyen tablo.

Saklı yordamlar (veritabanı altyapısı) oluşturma

Geçici tablolar ve table değişkenleri

  • Kullanıcı tanımlı tablolar ve dizinler

  • Sistem tablolarını ve dizinler

  • Genel geçici tablolar ve dizinler

  • Yerel geçici tablolar ve dizinler

  • table değişkenler

  • Tablo değerli işlevler döndürülen tablolar

Geçici tablolar ve table değişkenleri depolanmış olan tempdb.Geçici tablo nesneleri için disk alanı gereksinimleri önceki sürümlerinde aynıdır SQL Server.yöntem geçici tablo boyutunu tahmin etmek için aynı standart tablo boyutunu tahmin etme boyutudur.Daha fazla bilgi için bkz: Bir tablonun boyutunu tahmin etme.

A table değişkeni davranır gibi yerel bir değişken.A table türü değişkeni olduğunu table olarak döndürülen satır kümesinin geçici depolama için kullanılır ve sonuç küme bir tablo değerli işlev.Saklamak için gereken disk alanı bir table değişken boyutu bildirilen değişken ve değişken depolanan değeri bağlıdır

Aşağıdaki koşullar yerine getirildiğinde yerel geçici tablolar ve değişkenleri önbelleğe alınır:

  • Adlandırılmış kısıtlamaları oluşturulur.

  • geçici tablo, create INDEX veya create STATISTICS ifadeleri gibi oluşturulduktan sonra tablo etkileyen veri tanımlama dili (ddl) deyimleri çalışmaz.

  • Dinamik sql aşağıdaki gibi kullanarak geçici nesnesi oluşturulmaz: sp_executesql N'create table #t(a int)'.

  • Bir saklı yordam, tetikleyici, kullanıcı tanımlı bir işlev gibi başka bir nesnenin içinde geçici bir nesne oluşturulur; veya dönüş tablo kullanıcı tanımlı, tablo değerli işlev.

geçici tablo açtığınızda veya table değişken önbelleğe, geçici bir nesne değil ne zaman silinmiş onun amacı bitiyor.Bunun yerine, geçici nesne kırpılır.Dokuz sayfaya kadar saklanır ve sonraki yeniden saat çağıran nesne yürütülen.Önbelleğe alma işlemleri doğrudan ve hızlı bir şekilde yürütmek için nesneleri oluşturmak ve sayfa ayırma azaltır sağlar çekişme.

En iyi performans için önbelleğe alınan yerel geçici tablolar için gerekli olan disk alanı hesaplamak veya table değişkenleri tempdb aşağıdaki formülü kullanarak:

geçici tablo başına 9 sayfa

* yordamı başına ortalama geçici tablo sayısı

* en fazla eşzamanlı yürütmeler yordamın sayısı

CREATE TABLE (Transact-SQL)

Değişken ve Parametreler (veritabanı altyapısı) kullanma

DECLARE @local_variable (Transact-SQL)

Tetikleyicileri

The inserted and deleted tables that are used in AFTER triggers are created in tempdb.Diğer bir deyişle, güncelleştirilmiş veya Tetikleyici tarafından silinmiş satırları sürüm bilgisi.Bu tetikleyici harekete deyim ile değiştirilen satırların tümünü içerir.Tetikleyici tarafından eklenen satır sürüm bilgisi.

INSTEAD OF tetikleyicileri kullanma tempdb sorguları için benzer şekilde.Disk alanı kullanımı için INSTEAD OF tetikleyicileri önceki sürümleri aynıdır SQL Server."Sorgu" konusuna bakın. daha önce de tablo.

Zaman, toplu yükleme veri Tetikleyiciler ile etkin bir kopyası silinmiş veya güncelleştirilen satır sürüm deposu eklenir.

CREATE TRIGGER (Transact-SQL)

Toplu alma performansı en iyi duruma getirme

Satır sürüm oluşturma kaynak kullanımı

Kullanıcı tanımlı işlevler

Kullanıcı tanımlı işlevler, global veya yerel tabloları ve bunların dizinler, değişkenler veya parametreler gibi geçici kullanıcı nesneleri oluşturabilirsiniz.Örneğin, bir tablo değerli işlev tablosu dönüş depolanan tempdb.

Veri türleri, parametreler için izin verilen ve skaler işlevleri ve tablo değerli işlevler değerler çoğu lob veri türleri içerir dönün.Örneğin, bir dönüş değeri türü olabilir xml veya varchar(max)."Büyük nesne (lob) veri tipi değişkenleri ve parametreleri" konusuna bakın. daha önce de tablo.

Bırakın ve bu nesneleri oluşturma işlemlerini en iyi duruma getirmek için geçici tablo değerli kullanıcı tanımlı işlevler nesneleri önbelleğe alınabilir.Bkz: "geçici tablolar ve table değişkenleri" daha önce de tablo.

CREATE FUNCTION (Transact-SQL)

XML

Değişkenleri ve parametreleri türünde xml olabilir en fazla 2 gb.Küçük değerlerdir sürece depolama alanı olarak ana bellek kullanın.Ancak, büyük değer saklanan tempdb."Büyük nesne (lob) veri tipi değişkenleri ve parametreleri" konusuna bakın. daha önce de tablo.

The sp_xml_preparedocument system stored procedure creates a work table in tempdb.msxml parser kullanan iş tablo ayrıştırılmış xml belgesini depolamak için.İçin disk alanı gereksinimleri tempdb için belirtilen xml boyutunu neredeyse orantılıdır ne zaman belge saklı yordam olan yürütün.

SQL Server'da xml uygulama

sp_xml_preparedocument (Transact-sql)

openxml kullanarak xml sorgulama

sql Server'a yükseltme için planlama kapasite

Belirlenmesi için uygun boyutta tempdb bir üretim ortamında birçok etmene bağlıdır.Bu konuda daha önce açıklandığı gibi bu Etkenler var iş yükünü içerir ve SQL Server kullanılan özellikler.Aşağıdaki görevleri gerçekleştirerek varolan iş yükünü çözümle öneririz bir SQL Server test ortamı:

  1. Kümesini otomatik büyüme üzerinde tempdb.

  2. Tek tek sorguların veya iş yükünü izleme dosyaları ve monitör tempdb boşluk kullanın.

  3. Dizinler ve monitör yeniden inşa etmek gibi dizin bakım işlemleri yürütme tempdb alanı.

  4. Kullanım alanı değerleri önceki adımlardan gelen toplam iş yükünü kullanımınızı tahmin etmek için kullanın; Öngörülen eşzamanlı etkinliği için bu değeri ayarlayın ve sonra küme boyutunu tempdb buna göre.

İzleme hakkında daha fazla bilgi için tempdb boşluk, bkz: Yetersiz Disk alanı tempdb içinde sorun giderme.Tahmin etme hakkında daha fazla bilgi için tempdb dizin işlemleri sırasında kullanım Bkz: Dizin Disk alanı örneği.

Tempdb üretim ortamları için yapılandırma

En iyi elde etmek için tempdb performans, içinde sağlanan yönergeleri ve önerileri izleyin en iyi duruma getirme tempdb performans.

Monitör tempdb kullanımı nasıl

Disk alanı yetersiz çalışan tempdb önemli kesintilerini de neden olabilir SQL Server üretim ortamında operasyon. tamamlamanızı uygulamaları engelleyebilir veKullanabileceğiniz sys.dm_db_file_space_usage dinamik yönetim görünümü bu özellikleri tarafından kullanılan disk alanını izlemek için tempdb dosyaları.Ayrıca, sayfa ayırma veya miktarda kaldırma etkinliğini izlemek için tempdb oturum veya görev düzey, kullanabileceğiniz sys.dm_db_session_space_usage ve sys.dm_db_task_space_usage dinamik yönetimi görünümleri.Bu görünümleri büyük sorgular, geçici tablolar veya çok sayıda kullanarak tablo değişkenlerini tanımlamak için kullanılan tempdb disk alanı.Ayrıca, kullanılabilir boş alanı izlemek için kullanılan birden çok sayaç vardır tempdb ve ayrıca kullandığınız kaynakları tempdb.Daha fazla bilgi için bkz: Yetersiz Disk alanı tempdb içinde sorun giderme.