Aracılığıyla paylaş


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 makalede, sistem tarafından sürümlenmiş bellek için iyileştirilmiş zamansal tablolar kullanılırken dikkat edilmesi gereken bazı performans konuları ele alınmaktadı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 büyük ölçüde kullanıyorsa beklenmeyen bellek tüketimiyle karşılaşabilirsiniz. Bu nedenle size aşağıdaki noktaları öneririz:

  • Geçerli tablodan tek adımda büyük silme işlemleri gerçekleştirmeyin. Verileri, aralardaki manuel veri temizleme işlemleriyle birden çok toplu işlemde silmeyi ve sp_xtp_flush_temporal_historyile veya SYSTEM_VERSIONING = OFFile kullanmayı göz önünde bulundurun.

  • Zamansal olmayan bellek için iyileştirilmiş bir tabloyu güncelleştirmek için gereken bellek miktarının iki katı bellek tüketimine neden olabileceğinden, büyük tablo güncelleştirmelerini aynı anda gerçekleştirmeyin. 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. Birden çok toplu işlemde veya yeni eklenen sütunların varsayılanlarını ayarlamak üzere güncelleştirmeleri kullanmak gibi SYSTEM_VERSIONING = OFFbüyük güncelleştirmeler 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.

Kümelenmiş columnstore'u disk tabanlı geçmiş tablosu için depolama seçeneği olarak kullanmayı göz önünde bulundurun. Özellikle toplama veya pencere işlevlerini kullanan geçmiş verilerde analiz sorguları çalıştırmayı planlıyorsanız. Bu durumda, kümelenmiş columnstore dizini geçmiş tablonuz için en uygun seçenektir. Kümelenmiş columnstore dizinleri iyi veri sıkıştırması sağlar ve geçmiş verilerinin oluşturulma şekliyle uyumlu kolay şekilde davranır.