Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2025 (17.x) ve sonraki sürümleri
tempdb alan kaynağı yönetimini etkinleştirdiğinizde, kontrolsüz sorguların veya iş yüklerinin tempdb içinde büyük miktarda alan tüketmesini önleyerek güvenilirliği artırır ve kesintileri önlersiniz.
SQL Server 2025'ten (17.x) başlayarak, bir iş yükü grubu tarafından kullanılan toplam alan miktarına tempdb bir sınır uygulamak için resource governor kullanabilirsiniz. İş yükü grubu bir uygulama, kullanıcı, kullanıcı grubu vb. ile ilişkilendirilebilir. Bir istek (sorgu) sınırı aşmaya çalıştığında resource governor, iş yükü grubu sınırının zorunlu kılındığını belirten ayrı bir hatayla iptal eder.
Aslında, paylaşılan tempdb alanı farklı iş yükleri arasında bölümleyebilirsiniz. Örneğin, görev açısından kritik bir uygulama tarafından kullanılan bir iş yükü grubu için daha yüksek bir sınır ayarlayabilir ve diğer tüm iş yükleri tarafından kullanılan iş yükü grubu için default daha düşük bir sınır ayarlayabilirsiniz.
Adım adım yapılandırma örnekleri için bkz . Öğretici: Tempdb alanı kaynak idaresini yapılandırma örnekleri.
Kaynak yöneticisini kullanmaya başlama
Resource Governor, farklı uygulamalar, kullanıcılar, kullanıcı grupları vb. için farklı tempdb alan sınırları ayarlamak için esnek bir çerçeve sağlar. Özel mantığı temel alan sınırlar da ayarlayabilirsiniz.
SQL Server'da resource governor'ı yeni kullanıyorsanız kavramlar ve özellikleri hakkında bilgi edinmek için bkz. resource governor .
Kaynak yöneticisi yapılandırma kılavuzu ve en iyi yöntemler için bkz . Öğretici: Kaynak yöneticisi yapılandırma örnekleri ve en iyi yöntemler.
Tempdb alanı tüketiminde sınırları ayarlama
Bir iş yükü grubu tarafından alan tüketimini iki yoldan biriyle sınırlayabilirsiniz tempdb :
Bağımsız değişkeni kullanarak
GROUP_MAX_TEMPDB_DATA_MBayarlayın.Sabit sınır, iş yükü
tempdbkullanım gereksinimleri önceden bilindiğinde veya boyut değişmediğindetempdbkullanışlıdır.argümanını kullanarak
GROUP_MAX_TEMPDB_DATA_PERCENTayarlayın.Yüzde sınırı, zaman içinde
tempdbmaksimum boyutunu değiştirdiğinizde, kaynak yöneticisini yeniden yapılandırmadan, her iş yükü grubunatempdbmevcut alanın orantılı olarak değişmesini istemeniz durumunda kullanışlıdır. Örneğin, SQL Server çalıştıran bir Azure VM'nin ölçeğini büyütüp boyut üsttempdbsınırını artırırsanız,tempdbyüzde sınırı olan her iş yükü grubu için kullanılabilir alan da artar.
GROUP_MAX_TEMPDB_DATA_MB ve GROUP_MAX_TEMPDB_DATA_PERCENT bağımsız değişkenleri hakkında daha fazla bilgi için CREATE WORKLOAD GROUP veya ALTER WORKLOAD GROUP bölümüne bakın.
Aynı iş yükü grubu için hem sabit hem de yüzde sınırları belirtilirse, sabit sınır yüzde sınırından önceliklidir.
Belirli bir SQL Server örneğinde sabit sınırlarla, yüzde sınırlarıyla veya alan tüketimiyle ilgili hiçbir sınır olmadan iş yükü gruplarının bir karışımına tempdb sahip olabilirsiniz.
Yüzde sınırı yapılandırması
Yüzde sınırları yalnızca veri dosyası yapılandırması aşağıdaki tabloda özetlenen gereksinimleri karşıladığında tempdb geçerlidir:
| Konfigürasyon | Açıklama | Tempdb maksimum boyutu (100%) | Geçerli olan yüzde sınırı |
|---|---|---|---|
-
GROUP_MAX_TEMPDB_DATA_MB ayarlanmadı- Tüm veri dosyaları için, MAXSIZEUNLIMITED değil- Tüm veri dosyaları için FILEGROWTH sıfır değil |
tempdb veri dosyaları en büyük boyuta kadar otomatik olarak büyüyebilir |
Tüm veri dosyaları için değerlerin MAXSIZE toplamı |
Evet |
-
GROUP_MAX_TEMPDB_DATA_MB ayarlanmadı- Tüm veri dosyaları için MAXSIZEUNLIMITED'dir- Tüm veri dosyaları için FILEGROWTH sıfırdır |
tempdb veri dosyaları hedeflenen boyutlara göre önceden büyütülmüştür ve daha fazla büyüyemez |
Tüm veri dosyaları için değerlerin SIZE toplamı |
Evet |
| Diğer tüm yapılandırmalar | Hayı |
Aşağıdaki sorgu geçerli tempdb veri dosyası yapılandırmasını görmenize olanak tanır:
SELECT file_id,
name,
size * 8. / 1024 AS size_mb,
IIF(max_size = -1, NULL, max_size * 8. / 1024) AS maxsize_mb,
IIF(is_percent_growth = 0, growth * 8. / 1024, NULL) AS filegrowth_mb,
IIF(is_percent_growth = 1, growth, NULL) AS filegrowth_percent
FROM sys.master_files
WHERE database_id = 2
AND
type_desc = 'ROWS';
Sonuç kümesindeki belirli bir dosya için:
- Eğer
maxsize_mbsütunuNULLise, o zamanMAXSIZEUNLIMITEDolur. - Ya da
filegrowth_mbfilegrowth_percentsıfır olduğunda,FILEGROWTHsıfır olur.
GROUP_MAX_TEMPDB_DATA_PERCENT ayarlayıp ALTER RESOURCE GOVERNOR RECONFIGURE komutunu yürütürseniz, ancak veri dosyası yapılandırması gereksinimleri karşılamıyorsa, komut başarıyla tamamlanır ve yüzde sınırları depolanır, ancak uygulanmaz. Bu durumda, uyarı iletisi 10989, önem derecesi 10, GROUP_MAX_TEMPDB_DATA_PERCENT etkin değil çünkü tempdb yapılandırma gereksinimleri karşılanmadı. İleti aynı zamanda hata günlüğüne de kaydedilir.
Yüzde sınırlarını etkili hale getirmek için, veri dosyalarını gereksinimleri karşılayacak şekilde tempdb yeniden yapılandırın ve ALTER RESOURCE GOVERNOR RECONFIGURE yeniden yürütün. Daha fazla bilgi için SIZE, FILEGROWTH ve MAXSIZE yapılandırma hakkında bkz. ALTER DATABASE File and Filegroup Options.
Uyarı
SQL Server'ın yeni bir örneği için veri dosyası MAXSIZEUNLIMITED sıfırdan büyüktür ve FILEGROWTH bu da yüzde sınırlarının etkili olmadığı anlamına gelir. Yüzde sınırlarını kullanmak için şunlardan birini kullanmanız gerekir:
- Veri dosyalarını hedeflenen boyutlarına önceden büyütün
tempdbve sıfır olarak ayarlayınFILEGROWTH. -
MAXSIZEHer veri dosyasının değerini sınırlı bir değere ayarlayın.Her
tempdbveri dosyası birimi için birimdeki dosyaların değerlerinin toplamınınMAXSIZEbirimdeki kullanılabilir disk alanından küçük veya buna eşit olduğundan emin olun.Örneğin, bir birimde 100 GB boş alan varsa ve iki
tempdbveri dosyası varsa, her dosyanın değerini 50 GB veya daha az yapınMAXSIZE.
Yüzde sınırı etkinse ve veri dosyalarını ekler, kaldırır veya yeniden boyutlandırırsanız, yeni maksimum boyut tempdb (100%) ile kaynak yöneticisini güncellemek için ALTER RESOURCE GOVERNOR RECONFIGURE uygulamanız gerekir.
Nasıl çalışır?
Bu bölümde, tempdb uzay kaynağı yönetimi ayrıntılı olarak açıklanmaktadır.
tempdbiçindeki veri sayfaları tahsis edilir ve bırakılırken, kaynak yöneticisi her iş yükü grubu tarafından kullanılantempdbalanın muhasebesini yapar.Kaynak yöneticisi etkinleştirilirse ve
tempdbbir iş yükü grubu için bir alan tüketimi sınırı ayarlanırsa ve iş yükü grubunda çalışan bir istek (sorgu) grubun toplamtempdbalan tüketimini sınırın üzerine getirmeye çalışırsa, istek 1138, önem derecesi 17, 'tempdb' veritabanı için yeni bir sayfa ayrılamadı hatasıyla durduruldu çünkü bu, 'workload-group-name' iş yükü grubu için ayarlanan sınırı aşabilir.İstek 1138 hatasıyla iptal edildiğinde,
total_tempdb_data_limit_violation_countdinamik yönetim görünümünün (DMV) sütunundaki değer bir artırılır vetempdb_data_workload_group_limit_reachedgenişletilmiş olay tetiklenir.Resource Governor; geçici tablolar, değişkenler (tablo değişkenleri dahil), tablo değerli parametreler, kalıcı tablolar, imleçler ve sorgu işlemesi sırasında kullanılan havuzlar, taşmalar, çalışma tabloları ve
tempdbçalışma dosyaları gibi bir iş yükü grubuna atanan tümtempdbkullanımını izler.tempdb'deki genel geçici tablolar ve kalıcı tablolar için alan kullanımı, diğer iş yükü gruplarındaki oturumlar aynı tablodaki satırları eklese, değiştirse veya silse bile tabloya ilk satırı ekleyen iş yükü grubu altında değerlendirilir.Her iş yükü grubu için yapılandırılmış
tempdbtüketim sınırları, vegroup_max_tempdb_data_mbsütunlarında sys.resource_governor_workload_groups katalog görünümündegroup_max_tempdb_data_percentkullanıma sunulur.Mevcut tüketim ve bir iş yükü grubu tarafından
tempdbalanının en yüksek tüketimi, sırasıyla vetempdb_data_space_kbsütunlarındapeak_tempdb_data_space_kbDMV'de sunulmaktadır.Tavsiye
tempdb_data_space_kbvepeak_tempdb_data_space_kbsys.dm_resource_governor_workload_groups sütunları, alan tüketimiyle ilgilitempdbbir sınır ayarlanmamış olsa bile korunur.Başlangıçta herhangi bir sınır ayarlamadan sınıflandırıcı işlevini ve iş yükü gruplarını oluşturabilirsiniz. Temsili kullanım desenleri oluşturmak için zaman içinde her grubun kullanımını izleyin
tempdbve ardından sınırları gerektiği gibi ayarlayın.Tempdbsürümünde hızlandırılmış veritabanı kurtarma (ADR ) etkinleştirildiğindetempdbkalıcı sürüm deposu (PVS) dahil olmak üzere sürüm depoları tarafından kullanım, satır sürümleri birden çok iş yükü grubundaki istekler tarafından kullanılabildiğinden yönetilmiyor.içindeki
tempdbalan tüketimi, kullanılan 8 KB veri sayfası sayısı olarak hesaba katılır. Bir sayfa verilerle tam olarak doldurulmasa bile, bir iş yükü grubunun tüketiminetempdb8 KB ekler.Tempdbalan muhasebesi, bir iş yükü grubunun ömrü boyunca korunur. Genel geçici tablolar veya bu iş yükü grubuna ait verileri içeren kalıcı tablolartempdbiçinde kaldığında bir iş yükü grubu silinirse, bu tablolar tarafından kullanılan alan başka bir iş yükü grubu altında hesaplanmaz.Tempdbalan kaynağı idaresi, veri dosyalarındakitempdbalanı denetler, ancak temel birimlerdeki disk alanını denetlemez. Veri dosyalarını hedeflenen boyutlarına önceden büyütmezseniz,tempdbbulunduğu birimlerdeki alan diğer dosyalar tarafından tüketilebilir. Veri dosyalarının büyümesi içintempdbkalan alan yoksa,tempdbalan tüketimiyle ilgilitempdbiş yükü grubu sınırına ulaşılamadan önce alanınız tükenebilir.tempdbiçindeki uzay kaynak yönetimi, veri dosyaları için geçerlidir ancak işlem günlüğü dosyası için geçerli değildir. İşlem günlüğününtempdb'de çok fazla alan kullanmadığından emin olmak için içindetempdbetkinleştirin.
Oturum düzeyinde alan izleme ile farklar
sys.dm_db_session_space_usage DMV, her oturum için tempdb alan ayırma ve serbest bırakma istatistikleri sağlar. bir iş yükü grubunda yalnızca bir oturum olsa bile, bu DMV tarafından sağlanan alan kullanımı istatistikleri, aşağıdaki nedenlerle sys.dm_resource_governor_workload_groups görünümünde sağlanan istatistiklerle tam olarak eşleşmeyebilir:
- 'nin aksine
sys.dm_resource_governor_workload_groups:sys.dm_db_session_space_usage- Çalışmakta olan görevlerin alan kullanımını yansıtmaz
tempdb. bir görev tamamlandığında içindekisys.dm_db_session_space_usageistatistikler güncelleştirilir. içindekisys.dm_resource_governor_workload_groupsistatistikler sürekli olarak güncelleştirilir. - Dizin ayırma eşlemesi (IAM) sayfalarını izlemez. Daha fazla bilgi için bkz. Sayfalar ve kapsamlar mimarisi kılavuzu.
- Çalışmakta olan görevlerin alan kullanımını yansıtmaz
- Satırlar silindikten veya bir tablo, dizin ya da bölüm bırakıldığında veya kısaltıldığında, veri sayfaları zaman uyumsuz bir arka plan işlemi tarafından dağıtım dışı bırakılabilir. Bu sayfa ayırma işlemi gecikmeli olarak gerçekleşebilir.
sys.dm_resource_governor_workload_groups, bu sayfa serbest bırakmaları olduğu anda yansıtır. Bu serbest bırakmalara neden olan oturum kapatılmış olsa vesys.dm_db_session_space_usageiçerisinde artık mevcut olmasa bile.
Tempdb alanı kaynak idaresi için en iyi yöntemler
Alan kaynağı idaresini tempdb yapılandırmadan önce aşağıdaki en iyi yöntemleri göz önünde bulundurun:
Kaynak yöneticisi için genel en iyi yöntemleri gözden geçirin.
Çoğu senaryoda, özellikle
tempdbiş yükü grubu içindefaultalan tüketim sınırını küçük bir değere veya sıfıra ayarlamaktan kaçının. Bunu yaparsanız,tempdbalan ayırmaları gerekiyorsa birçok yaygın görev başarısız olacaktır. Örneğin, iş yükü grubu içindefaultsabit veya yüzde sınırını 0 olarak ayarlarsanız, SQL Server Management Studio'da (SSMS) Nesne Gezgini'ni açamayabilirsiniz.Özel iş yükü grupları ve iş yüklerini ayrılmış gruplarına yerleştiren bir sınıflandırıcı işlevi oluşturmadığınız sürece, iş yükü grubu tarafından
tempdbkullanımı sınırlamaktandefaultkaçının. Kullanıcı iş yükleri tarafından tüketilemeyen kullanılmamış bir alana sahip olduğundatempdb, 1138 hatasıyla sorguları durdurabilir.Tüm iş yükü gruplarının
GROUP_MAX_TEMPDB_DATA_MBdeğerlerinin toplamının maksimumtempdbboyutunu aşmasına izin verilir. Örneğin, maksimumtempdbboyutu 100 GB ise,GROUP_MAX_TEMPDB_DATA_MBA ve B iş yükü grupları için bu sınırlar her biri 80 GB olabilir.Bu yaklaşım, diğer iş yükü grupları için 20 GB bırakarak her iş yükü grubunun içindeki
tempdbtüm alanı tüketmesini engeller. Aynı zamanda,tempdbve B iş yükü gruplarının aynı anda büyük miktarda alan kullanma olasılığı olmadığından boştempdbalan kullanılabilir durumdayken gereksiz sorgu iptallerinden kaçınabilirsiniz.Benzer şekilde, tüm iş yükü grupları için değerlerin
GROUP_MAX_TEMPDB_DATA_PERCENTtoplamı yüzde 100'ü aşabilir. Birden çok grubun aynı anda yüksektempdbkullanıma neden olma olasılığının düşük olduğunu biliyorsanız, her gruba daha fazlatempdbalan ayırabilirsiniz.
İlgili içerik
- Öğretici: Tempdb alanı kaynak idaresini yapılandırma örnekleri
- Kaynak yöneticisi
- Öğreticisi: Kaynak yöneticisi yapılandırma örnekleri ve en iyi yöntemler
- KAYNAK YÖNETİCİSİNİ DEĞİŞTİR
- İŞ YÜKÜ GRUBU OLUŞTUR
- ALTER İŞ YÜKÜ GRUBU
- DROP İŞ YÜKÜ GRUBU
- sistem.kaynak_yöneticisi_iş_yükü_grupları
- sys.dm_kaynak_yöneticisi_iş_yükü_grupları