Veri mühendisliği
Partition, columnstore ve compression
Büyük veri tasarımı iş yükünden başlar.
Kavramı anlayalım
Partitioning veriyi anahtar aralıklarına ayırır. Tarih filtreleri partition elimination sağlayabilir; yalnız partition sayısını artırmak sorguyu hızlandırmaz. Aligned indeksler, boundary yönetimi ve switching operasyonları planlanmalıdır. Partitioning tek başına arşiv veya yedek stratejisi değildir.
Columnstore sütun bazlı depolama ve sıkıştırmayla büyük analitik taramaları destekler. Rowgroup kalitesi, segment elimination, delta store ve batch işleme önemlidir. Rowstore kısa tekil erişimlerde uygun olabilir. PAGE/ROW compression CPU ile IO arasında denge kurar. Küçük 12 siparişli lab gerçek warehouse performansını temsil etmez; örnek indeks yalnız geçici tabloda kurulur. Üretim tasarımında veri hacmi, yazma deseni, sürüm ve bakım maliyeti ölçülür.
Analitik hacmi için uygun depolama deseni seçmek için.
Küçük OLTP tablosuna columnstore ekleyip her sorgunun hızlanacağını sanmak.
Aynı konu. Üç farklı derinlik.
SELECT name, type_desc FROM sys.indexes WHERE object_id = OBJECT_ID(N'lab.OrderItem');Mevcut depolama türünü gör.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
Product tablosunun partition satır sayılarını incele.
Çözümü ve açıklamasını göster
SELECT partition_number, rows FROM sys.partitions WHERE object_id = OBJECT_ID(N'lab.Product') AND index_id IN (0, 1);Base storage seçildiği için nonclustered indeksler satır sayısını çoğaltmaz.