- Sıcak lekelenme nedir?
Aaron doğrudur ve yukarıda söylediklerini yeniden şekillendirmeyeceğim, ancak bu sadece disk IO ile ilgili değil. Çoğu insanın TempDB'de sorun yaşadığı ana kısım, belirli izleme yapılarındaki çekişmelerden kaynaklanmaktadır.
Birden fazla tempdb dosyasına sahip olmak, orantılı dolgu ve yuvarlak robin algoritmalarının ayırmalar arasında "adil" olmada etkili bir şekilde yer almasına izin verdiğinden, ayırma olmadan yeni bir dosya eklemek bunu bir parça atar. PAGELATCH_*
Bahsedilen yeni dosyada beklemeleri görmeye başlarsanız , diğer dosyalarda çok fazla veya herhangi bir şey görmüyorsanız, bunun bir "tavuk küçük" uyarısı olduğuna (aşağıdaki ürün güncellemelerine bakın) katılmıyorum . Bu genellikle TempDB etkinliği yüksek olan ve zaten tek bir dosyadan daha fazlasına sahip olan sistemlerde olur.
SQL Server 2019'da temel sistem tablolarından bazılarını bellek içi tablolara dönüştürmek için seçenekler bulunduğunu unutmayın; bellek içi nesneler disk fırında tablolardan farklı olarak ayrıldığından bu durum iyileştirilebilir. Disk tabanlı tablolar, yıllar boyunca birlikte çalıştığımız geleneksel tablolardır. SQL Server 2014, bellek için optimize edilmiş tablolar tanıttı . SQL Server 2019, bellek için optimize edilmiş tablolardaki bazı ayırma meta verilerini işleyebilir.
Eşzamanlı PFS değişikliklerine yardımcı olmak için SQL Server 2019'da başka bir değişiklik yapıldı, bu genellikle ayırmadaki bellek içi yapı için PAGELATCH_*
çekişmenin beklediği şeydir .
- Sıcak lekelenme tempdb'de işleri daha da kötüleştirir mi?
Hiçbir şey IMHO. Evet, TempDB, doğrudan kullanılmadan yazmaya neden olabilecek daha fazla öğeye sahiptir, böylece bazı öğeleri engelleyebilir. Ancak, veri değişim hızı açısından çok yoğun bir kullanıcı veritabanı da aynı derecede kötü. Sadece TempDB ile sınırlı değil.
- DB'deki belirli şeyler çok daha kötü olur?
Aaron'ın benzetmesini gerçekten çok seviyorum! Olanların özü budur. Daha da kötüsü, veritabanındaki nesneler için alan tahsisi ve izlemesidir. Kullanıcı veritabanınız çoğunlukla statikse (düşük değişim oranı) veya TempDB'niz gerçekten kullanılmıyorsa, hiçbir şey fark etmezsiniz. Bununla birlikte, oldukça meşgul bir sunucuysa, konvoyları engellemeye yol açabilecek pagelatch beklemelerini başlatabilir veya şiddetlendirebilirsiniz.
Aaron zaten eski sürümde, tekdüze uzantıların kullanıldığından ve bir dosya grubundaki tüm dosyaların birlikte büyüdüğünden emin olmak için izleme bayrakları olduğunu belirtti (Aaron, 2016'da NOP olan 1117 ve 1118'i işaret ediyor). Tekrar belirtmek istediğim bir diğer şey, bunun sadece TempDB için değil, herhangi bir veritabanı için olduğu ve fiziksel düzenin ihtiyaçlara bağlı olarak düşünülmesi gerektiğidir.
Bu yalnızca etkin nokta ile ilgili sorunlar için değil, aynı zamanda yedekleme / geri yükleme, dosya yönetimi, dosya sistemi meta veri parçalanması vb. Gibi birden çok dosyaya sahip olmanıza yardımcı olabilecek diğer bölümler için de geçerlidir.
waitresource
Bir PFS sayfasında (sayfa 1 ve sonra her 8088 sayfada bir) arayarak tahsis yapısı çekişmesini görebilirsiniz . Hepsini aynı dosyada (2: dosya: sayfa) görürseniz, bunun gerçekleştiğini bilirsiniz.