Bellek optimizasyonlu sistem sürümlü zamansal tablo performansı

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri Azure SQL Yönetilen Örnek

Bu makale, sistem sürümüyle uyumlu bellek optimize edilmiş zamansal tabloları kullanırken belirli performans hususlarını ele almaktadır.

Mevcut zamansal olmayan bir tabloya sistem sürümü ekleme işlemi eklediğinizde, geçmiş tablosu otomatik olarak güncelleştirildiğinden güncelleştirme ve silme işlemleri üzerinde performans etkisi olmasını bekleyebilirsiniz.

Performansla ilgili dikkat edilmesi gerekenler

Her güncelleştirme ve silme, dahili bellek için iyileştirilmiş geçmiş tablosuna kaydedilir. İş yükünüz bu iki işlemi yoğun şekilde kullanırsa beklenmedik bellek tüketimi yaşayabilirsiniz. Aşağıdakileri göz önünde bulundurun:

  • Geçerli tablodan tek adımda büyük silme işlemleri gerçekleştirmeyin. Verileri, arada sp_xtp_flush_temporal_history ile el ile tetiklenen bir veri temizleme işlemi gerçekleştirerek veya SYSTEM_VERSIONING = OFF çalışırken, birden çok toplu iş halinde silmeyi düşünün.

  • Aynı anda büyük tablo güncellemeleri yapmayın, çünkü zamansal olmayan bellek optimize edilmiş bir tabloyu güncelletmek için iki kat fazla bellek kullanabilir. Bu çift bellek tüketimi geçicidir çünkü veri temizleme görevi, öngörülen sınırlar içindeki iç hazırlama tablolarının bellek tüketimini sabit durumda tutmak için düzenli olarak çalışır. Sınır, geçerli zamana bağlı tablonun bellek tüketiminin yüzde 10'unu oluşturur. Büyük çaplı güncelleştirmeleri, birden çok parti halinde veya SYSTEM_VERSIONING = OFF sırasında, örneğin yeni eklenen sütunlar için varsayılanları ayarlamak amacıyla güncelleştirmeleri kullanarak yapmayı göz önünde bulundurun.

Veri temizleme görevi için etkinleştirme süresi yapılandırılamaz, ancak gerektiğinde sp_xtp_flush_temporal_history el ile yürütebilirsiniz.

Özellikle toplu veya pencereleme fonksiyonları kullanan tarihsel veriler üzerinde analiz sorguları yapmayı planlıyorsanız, disk tabanlı tarih tablosu için kümelenmiş columnstore'u depolama seçeneği olarak kullanmayı düşünün. Bu durumda, kümelenmiş columnstore dizini geçmiş tablonuz için en uygun seçenektir. Kümelenmiş sütun deposu dizinleri, iyi veri sıkıştırması sağlar ve geçmiş verilerinin oluşturulma biçimiyle uyumlu, eklemeye elverişli bir yapı sergiler.