Aracılığıyla paylaş


Tempdb kapasite planlama

Bu konu, yönergelere uygun disk miktarını belirlemek için alan sağlartempdb gerektirir.Bu konu, ayrıca yapılandırma hakkında öneriler içerirtempdb boşluk kullanımı. tempdb nasıl izleneceği hakkında bilgi ve bir üretim ortamında en iyi performans için

Tempdb nasıl kullanılıyor

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ı nesnesi, iç nesnelere ve sürüm deposu.

Kullanıcı nesneleri

Kullanıcı nesnesi kullanıcı tarafından açık olarak oluşturulur.Bu nesneler, kullanıcı oturumunun kapsamında veya kapsamında nesnenin oluşturulduğu sıradan olabilir.Bir saklı yordam, tetikleyici veya kullanıcı tanımlı işlevin bir yordam değil.Kullanıcı nesnelerinin aşağıdakilerden biri olabilir:

  • Kullanıcı tanımlı tablo ve dizinleri

  • sistem tabloları ve dizinler

  • Global geçici tablolar ve dizinler

  • Yerel geçici tablolar ve dizinler

  • Tablo değişkenlerini

  • Tablo tablo değerli işlevler iade

İç nesneler

İç nesneleri tarafından gerektiğinde oluşturulurSQL Server Database EngineişlemSQL Serverifadeler.İç nesneler oluşturulur ve deyiminin kapsam içinde bıraktı.İç nesneler aşağıdakilerden biri olabilir:

  • Tablolar ve geçici büyük nesne (LOB) depolaması için imleç veya biriktirme işlem çalışır.

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

  • Ara sıralama sonuçlar oluşturmak veya (SORT_IN_TEMPDB belirtilmişse) dizin yeniden oluşturma gibi işlemler için veya belirli bir GROUP BY, ORDER BY veya Birleşim sorguları.

Her bir iç nesne, en az dokuz sayfaları, bir IAM sayfa ve bir sekiz sayfalık uzantısı kullanır.Sayfaları ve alanları, daha fazla bilgi için bkz:Anlama sayfaları ve alanları.

Sürüm deposu

Bir sürüm deposu olan veri sayfaları kullanan özellikleri desteklemek için gerekli olan veri satırlarını basılı topluluğusatır sürümü.İki sürüm deposu vardır: Genel sürüm deposu ve bir dizin-yapı çevrimiçi sürüm deposu. Sürüm deposu aşağıdakileri içerir:

  • Anlık görüntü ya da satır sürümü izolasyon düzeyleri kullanarak kaydedilmiş okuma kullanan bir veritabanı veri değişikliği hareketleri tarafından oluşturulan satır sürümleri.

  • Oluşturduğu özellikleri için veri değiştirme işlemleri gibi sürümlerinde satır: çevrimiçi dizin işlemleri, birden çok Active sonuç kümelerini (MARS) ve AFTER tetikleyicisi.

Aşağıdaki tablo özellikleri listelerSQL Serverkullanıcı nesnesi, iç nesneleri veya satır sürümleri oluşturmaktempdb.Mümkünse, disk alanı kullanımını tahmin yöntemleri sağlanır.

Özellik

tempdb kullanımı

Ek bilgi:

Tetikleyicilerin etkin bulkload operasyonlar

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ın bir kopyasını sürüm deposu için eklenir."Daha sonra bunu izleyen Bkz: Tetikleyiciler" tablo.

Toplu alma performansı en iyi duruma getirme

Genel tablo ifade sorguları

Genel bir tablo ifadesi, geçici bir sonucu olarak düşünülebilir küme tek SELECT, INSERT, UPDATE, DELETE veya CREATE VIEW ifadeinin. yürütme kapsam içinde tanımlanan

Genel tablo ifade sorgu için Sorgu planını ara sorgu sonuçlar kaydetmek için biriktirme işletmeni kullandığındaDatabase Enginebir iş tablo oluşturur.tempdb için destek bu operasyon.

Ortak bir tablo ifadeleri kullanma

WITH common_table_expression (Transact-SQL)

İmleçler

Anahtar kümesi kullanan ve statik imleçler içinde yerleşik iş tabloları kullanıntempdb.Keyküme-driven imleçleri iş tabloları depolamak için kullanmak küme imleç satır tanımlayan anahtarların.Statik imleç tam sonucu saklamak için çalışma tablosu kullanmak küme imlecin.

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

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

Database Mail

Bu tabloda izleyen "Hizmet Aracısı" konusuna bakın.

Veritabanı posta

DBCC CHECKDB

DBCC CHECKDB kullanır.tempdb sonuçlar ara tuşunu basılı tutun ve sıralama işlemlerini. çalışma tabloları

Belirlemetempdb DBCC CHECKDB ile ESTIMATEONLY. disk alanı gereksinimleri, operasyon için çalıştırma

DBCC CHECKDB (Transact-SQL)

DBCC CHECKDB performansı en iyi duruma getirme

Olay bildirimi

Bu tabloda izleyen "Hizmet Aracısı" konusuna bakın.

Olay bildirimleri anlama

Dizinler

Oluşturduğunuzda veya bir dizin (çevrimiçi veya çevrimdışı) yeniden ve SORT_IN_TEMPDB seçeneği ON olarak ayarlamak, doğrudanDatabase Enginekullanmatempdb dizini. oluşturmak için kullanılan ara sıralama sonuçlar depolamak için Belirtilen zaman SORT_IN_TEMPDB ve sıralama gereklidir,tempdb en büyük dizin tutmak için yeterli disk alanı ve disk alanı dizin oluşturma belleği seçeneği değerine eşit olmalıdır. Daha fazla bilgi için bkz:Dizin disk alanı örneği.

Tablolar ve dizinler bölümlenmesi.Bölümlenmiş dizinler için SORT_IN_TEMPDB dizin seçeneği belirtilmişse ve dizini temel tablo ile hizalı olması gerekir, yeterli alanıtempdb en büyük bölümünü. Orta sıralama tutmak için çalışır Dizin değil hizalı, olmalı, yeterli alantempdb Orta sıralama tutmak için çalışan tüm bölümler.Daha fazla bilgi için bkz:Bölümlenmiş dizinler için özel yönergeleri.

Diğer hareketler tarafından yapılan değişiklikler etkilerini dizin işleminden ayırmanızı çevrimiçi dizin işlemleri kullanımı satır sürümü.Satır sürümü paylaşım kilitleri okuma satırda isteyen gereksinimini ortadan kaldırır.Eşzamanlı kullanıcı güncelleştirme ve silme işlemlerine sırasında çevrimiçi dizin işlemleri sürüm kayıtlar için yer gereklitempdb.Çevrimiçi dizin işlemleri SORT_IN_TEMPDB kullanmanız ve sıralama gereklidir,tempdb Orta sıralama sonuçlar. için daha önce açıklanan ek disk alanı olması gerekir Oluşturma, doğrudan veya kümelenmiş dizin yeniden çevrimiçi dizin işlemleri de oluşturmak ve bir eşleştirme geçici dizini güncelleştirmek için ek disk alanı gerektirir.Daha fazla bilgi için bkz:Dizin DDL operasyonlar için disk alanı gereksinimleri.

tempdb ve dizin oluşturma

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

Dizin DDL operasyonlar için disk alanı gereksinimleri

Dizin disk alanı örneği

Çevrimiçi'ne dizin işlem çalışma

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

The large object data types are varchar(max), nvarchar(max), varbinary(max)text, ntext, image, and xml.Bu tür boyutu 2 GB'ye kadar olabilir ve değişkenler veya parametreler saklı yordamlar, kullanıcı tanımlı işlevler, toplu işlem veya sorgu olarak kullanılabilir.Küçük değerler, Parametreler ve değişkenler LOB veri türü tanımlanan ana bellek depolama alanı olarak kullanır.Ancak, büyük değerler saklanırtempdb.Zaman LOB değişkenleri ve parametreleri de saklanırtempdb, kabul edilen iç nesneleri.Sorgulayabilir,sys.dm_db_session_space_usage Dinamik yönetim görünümü sayfaları iç nesneleri bir verilen oturum. için tahsis edilen bildirmek için

Bazı iç dize işlevlerini, DİZE ya da REPLICATE, ara geçici depolama gerektirebilirtempdb Bunlar çalıştığında LOB değerlerini.Benzer şekilde, veritabanında etkin satır sürümü temelli işlem yalıtım düzey ve büyük nesne değişiklikler yapılır, the LOB, değiştirilen parça kopyalanır sürüm deposutempdb.

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

Birden çok Active sonuç kümelerini (MARS)

Çoklu etkin sonuç kümelerini altında tek bir bağlantıda ortaya çıkabilir; Bu genellikle MARS bilinir.Bir veri değişikliği MARS oturum sorunları, deyim (INSERT, UPDATE veya DELETE gibi) bir etkin sonuç kümesi olduğunda satırları olan değişiklik tarafından etkilenen deyim sürüm deposunda saklanantempdb."Daha sonra bunu izleyen satır sürümü" bakın tablo.

Birden çok Active sonucu kullanarak (MARS) ayarlar.

Sorgu bildirimleri

Bu tabloda izleyen "Hizmet Aracısı" konusuna bakın.

Sorgu bildirimleri kullanma

Sorgular

Karma birleşimler, sağlama toplamları veya sıralama için Ara sonuçlar depolamak için iç nesneleri içeren SELECT, INSERT, UPDATE ve DELETE deyimlerini sorguları kullanabilirsiniz.

Bir 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 tabloda kesilir ve dokuz sayfaları yeniden kullanmak üzere önbellekte kalır.Bu sonraki yürütme sorgu performansını artırır.Sistemi, bellek yetersiz,Database Engineyürütme planı kaldırabilecek ve doğrudan ilişkili iş tabloları.

Yürütme planı önbelleğe alma ve yeniden

Satır sürümü

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

  • Tetikleyiciler

  • Birden çok Active sonuç kümelerini (MARS)

  • ÇEVRİMİÇİ seçeneğini belirlediğiniz dizin işlemleri

  • Satır sürümü temelli hareket izolasyon düzeyleri:

    • Yeni bir tablo düzeyinde okuma tutarlılığı sağlamak için satır sürümü kullanan okuma kabul edilen yalıtım düzey uygulaması.

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

Row versions are held in the tempdb version store for as long as an active transaction must access it.Geçerli sürüm deposu içeriği döndürülüyorsys.dm_tran_version_store.Sürüm deposu sayfaları, genel kaynakları oldukları için dosya düzeyinde izlenir.Kullanabileceğinizversion_store_reserved_page_countsys.dm_db_file_space_usage sürüm deposu. geçerli boyutunu görüntülemek için sütun Sürüm deposu temizleme belirli sürümü erişim gerektiren uzun çalışan işlem dikkate almanız gerekir.En uzun çalışan işlem, sürüm deposu için ilgili temiz-yukarı keşfedilen görüntüleyerekelapsed_time_seconds sütun sys.dm_tran_active_snapshot_database_transactions . SayaçlarıBoş alan, Tempdb (KB) ve sürüm saklama boyutu (KB ) işlemtempdb satır sürüm deposunda, Büyüme oranını ve boyutunu izlemek için nesnesi kullanılabilir. Daha fazla bilgi için bkz:SQL Server, işlem nesnesi.

İçin tahmin ne kadar alan gereklidirtempdb satır sürümü için önce etkin bir işlem, tüm değişiklikleri tutmalısınız, sürüm deposu. dikkate alınacak olan Bu, daha sonra başlayan bir anlık görüntü hareketi eski sürümlerini erişebileceğiniz anlamına gelir.Ayrıca, bir etkin anlık görüntü hareketi ise, anında başlar da tutulmalıdır, etkin olan hareketleri tarafından oluşturulan verilerin tüm sürüm depolar.

Temel formül şudur:

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

[Sürüm deposu veri dakikada oluşturulan] *

[En uzun saat (dakika), hareketin çalışan]

Satır Güncelleştirme-based yalıtım düzeyleri anlama

Satır güncelleştirme kaynak kullanımı

Service Broker

Service Broker Geliştiriciler, bağımsız bileşenler bir görevi yerine getirmek için birlikte çalışır, zaman uyumsuz, gevşek biçimde eşleşmiş uygulamaları 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.Yaklaşık 1 KB başına iletişim boyutudur.

Ayrıca,Service Brokerdolaylı olarak kullanır.tempdb timer olayları ve arka plan için kullanılan iş tabloları gibi sorgu yürütme bağlamında nesneleri önbelleğe alma ile görüşmeleri teslim.

Database MailOlay bildirimleri , Sorgu bildirimleri dolaylı olarak kullanmak Service Broker.

Genel (Hizmet Aracısı)

Saklı yordamlar

Saklı yordamlar, kullanıcı nesneleri global veya yerel geçici tablolar ve dizinler, değişkenler veya parametreler gibi oluşturabilirsiniz.Bırakın ve bu nesnelerin işlemlerini en iyi duruma getirmek için geçici saklı yordamlar nesneleri önbelleğe alınabilir.Bu davranış artırmatempdb disk alanı gereksinimleri.En çok dokuz sayfa geçici nesnesi yeniden kullanılmak üzere saklanır.Bkz: "geçici tablolar vetabledeğişkenler "izler, daha sonra bu tablo.

Saklý Yordamlarý (Veritabanı Altyapısı) oluşturma

Geçici tablolar vetabledeğişkenleri

  • Kullanıcı tanımlı tablo ve dizinleri

  • sistem tabloları ve dizinler

  • Global geçici tablolar ve dizinler

  • Yerel geçici tablolar ve dizinler

  • table değişkenler

  • Tablo tablo değerli işlevler iade

Geçici tablolar vetabledeğişken içinde saklanırtempdb.Geçici tablo nesneleri için gereken disk alanı gereksinimleri olan önceki sürümleri ile aynıSQL Server.Bir geçici tablo boyutunu tahmin etme yöntem olarak standart bir tablonun boyutunu tahmin etme aynıdır.Daha fazla bilgi için bkz:Bir tablonun boyutunu tahmin ediliyor.

Atabledeğişken davranış gibi yerel bir değişken.Atabledeğişkendir türütableöncelikle sonuç kümesi'olarak döndürülen satır kümesini, geçici depolama için kullanılır bir tablo değerli işlev.Saklamak için gerekli disk alanı birtabledeğişken bağlıdır bildirilen değişken ve değer saklanan değişken.

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 etkileyen tablonun veri tanımlama dili (DDL) deyimleri çalıştırılır.

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

  • Geçici nesne tetikleyiciyi kullanıcı tanımlı fonksiyonu; bir saklı yordam gibi başka bir nesne içinde oluşturulur veya kullanıcı tarafından tanımlanan, tablo deerli işlev dönüş tablo.

, geçici tablo ya databledeğişken önbelleğe alınmış, geçici bir nesne değil, silinen amacı, bitiyor.Bunun yerine, geçici nesne kırpılır.En çok dokuz sayfa saklanır ve çağıran nesne yürütüldükten sonraki sefer yeniden.Önbelleğe alma işlemleri, doğrudan ve hızlı bir şekilde yürütmek için nesneleri oluşturmak ve sayfa ayırma çakışması azaltır sağlar.

En iyi performans için önbelleğe alınan yerel geçici tablolar için gereken disk alanını hesaplamak veyatabledeğişkenleritempdb, aşağıdaki formülü kullanarak:

geçici tablo başına 9 sayfa

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

* yordamın en fazla eşzamanlı çalıştırma sayısı

tablo (Transact-SQL) CREATE

Değişken ve Parametreler (Veritabanı Altyapısı) kullanma

@ Local_variable (Transact-SQL) BILDIRIR.

Tetikleyiciler

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 edilir.Bu, tetikleyici harekete deyim ile değiştirilen satırları içerir.Tetikleyici tarafından eklenen satır sürümü belirlenmiş değil.

INSTEAD OF Tetikleyicileri kullanmatempdb sorgu. için benzer bir şekilde INSTEAD OF tetikleyicisi için disk alanı kullanımını aynıdır önceki sürümleriSQL Server."Sorgu" daha önce bu tabloya bakın.

Yükleme veri ile etkin tetikleyiciler toplu, silinen veya güncelleştirilen her satırın bir kopyasını sürüm deposu için eklenir.

(Transact-SQL) TRIGGER CREATE

Toplu alma performansı en iyi duruma getirme

Satır güncelleştirme kaynak kullanımı

Kullanıcı tanımlı işlevler

Kullanıcı tanımlı fonksiyonlar, genel veya yerel tablolar ve dizinler, değişkenler veya parametreler gibi geçici kullanıcı nesneleri oluşturabilirsiniz.Örneğin, bir tablo değerli işlev sonuç tablosunun depolanırtempdb.

Veri türleri, parametreler için izin verilen ve değerleri, skaler fonksiyonları ve tablo değerli işlevler veri türlerinin çoğu LOB dahil dönün.Örneğin, bir dönüş değeri olabilir türüxmlorvarchar(max)."Büyük nesne (LOB) veri tipi değişkenleri ve parametreleri" Bu önceden görmek tablo.

Kullanıcı tanımlı işlevler tablo deerli geçici nesneler açılır ve bu nesnelerin işlemlerini en iyi şekilde önbelleğe alınabilir.Bkz: "geçici tablolar vetabledeğişkenler "daha önce de bu tablo.

(Transact-SQL) işlev CREATE

XML

Değişken ve parametre türüxmlolabilir en fazla 2 GB.Küçük değerler olarak, depolama alanı olarak ana bellek kullanır.Ancak, büyük değerler saklanırtempdb."Büyük nesne (LOB) veri tipi değişkenleri ve parametreleri" Bu önceden görmek tablo.

The sp_xml_preparedocument system stored procedure creates a work table in tempdb.MSXML ayrıştırıcısının iş kullanan tablo ayrıştırılmış XML belgesini depolamak için.Disk alanı gereksinimleritempdb durumda saklı yordam çalıştırdığınızda neredeyse belirtilen XML belgesini boyutuna orantılı.

XML, SQL Server'da uygulama

sp_xml_preparedocument (Transact-SQL)

OPENXML kullanarak XML sorgulanıyor.

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

Uygun boyutunu belirlemetempdb pek çok etken. bir üretim ortamında bağlıdır Bu konuda daha önce açıklandığı gibi Bu etkenler, mevcut iş yükünü içerir veSQL Serverkullanılan özellikler.Aşağıdaki görevleri gerçekleştirerek varolan iş yükünü çözümle öneririz birSQL Servertest ortamı:

  1. küme üzerinde autogrow içintempdb.

  2. Her sorgu yürütmek ya da iş yükü izleme dosyaları ve monitörtempdb alan.

  3. yürütmek dizin bakım işlemleri, dizin yeniden oluşturma ve izlemetempdb alanı.

  4. Alan kullanım değerleri tahmin toplam iş yükü kullanımınızı; öngörülen eşzamanlı etkinliği için bu değeri ayarlayın ve sonra boyutunu ayarlamak için önceki adımları kullanın.tempdb buna göre.

İzleme hakkında daha fazla bilgi içintempdb space, see Yetersiz disk alanı tempdb sorun giderme.Tahmin etme hakkında daha fazla bilgi içintempdb Bkz: kullanımını dizin işlemleri sırasında Dizin disk alanı örneği.

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

En iyi ulaşmak içintempdb Performans performansı en iyi duruma getirme tempdbsağlanan önerileri ve yönergeleri izleyin.

Monitör tempdb kullanma hakkında

Çalışan disk alanı yetersiztempdb önemli kesintiler neden olabilecek SQL Serverüretim ortamında ve işlemler. tamamlamanızı uygulamaları engelleyebilirKullanabileceğinizsys.dm_db_file_space_usagetempdb dosyalar. biçiminde bu özellikleri tarafından kullanılan disk alanını izlemek için Dinamik yönetim görünümü Ayrıca, sayfa ayırma veya miktarda kaldırma etkinliğini izlemek içintempdb oturum veya görev düzey, sys.dm_db_session_space_usage ve sys.dm_db_task_space_usage Dinamik yönetim görünümü. kullanabilirsiniz Bu, büyük sorgular, geçici tablolar veya çok sayıda kullanarak Tablo değişkenlerini tanımlamak için kullanılabilirtempdb disk alanı.Ayrıca bazı sayaçlar, kullanılabilir boş alan izlemek için kullanılabilecek vardır.tempdb ve kaynakları kullanan tempdb . Daha fazla bilgi için bkz:Yetersiz disk alanı tempdb sorun giderme.