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. |
|
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. |
|
İ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. |
|
Database Mail |
Bu tabloda izleyen "Hizmet Aracısı" konusuna bakın. |
|
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 |
|
Olay bildirimi |
Bu tabloda izleyen "Hizmet Aracısı" konusuna bakın. |
|
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. |
Bölümlenmiş dizinler için özel yönergeleri |
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. |
|
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. |
|
Sorgu bildirimleri |
Bu tabloda izleyen "Hizmet Aracısı" konusuna bakın. |
|
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ı. |
|
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:
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] |
|
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. |
|
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. |
|
Geçici tablolar vetabledeğişkenleri
|
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:
, 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ı |
|
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. |
|
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. |
|
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ı. |
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ı:
küme üzerinde autogrow içintempdb.
Her sorgu yürütmek ya da iş yükü izleme dosyaları ve monitörtempdb alan.
yürütmek dizin bakım işlemleri, dizin yeniden oluşturma ve izlemetempdb alanı.
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.
See Also