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:✅ Microsoft Fabric'te SQL analiz uç noktası ve Ambarı
Microsoft Fabric'teki Ambar, belirli bir SQL sorgusu için yürütme planı oluşturmak üzere bir sorgu altyapısı kullanır. Bir sorgu gönderdiğinizde, sorgu iyileştirici tüm olası planları listelemeye ve en verimli adayı seçmeye çalışır. Hangi planın en az ek yük (G/Ç, CPU, bellek) gerektirdiğini belirlemek için motorun her işleçte işlenebilecek iş veya satır miktarını değerlendirebilmesi gerekir. Ardından, her planın maliyetine göre en az tahmini çalışma miktarına sahip olanı seçer. İstatistikler, sorgu iyileştiricinin bu maliyetleri tahmin etmesine olanak sağlamak için verilerinizle ilgili bilgiler içeren nesnelerdir.
İstatistikler nasıl kullanılır
En iyi sorgu performansını elde etmek için doğru istatistiklere sahip olmak önemlidir. Microsoft Fabric şu anda ilgili ve güncel istatistikler sağlamak için aşağıdaki yolları desteklemektedir:
- Kullanıcı tanımlı istatistikler
- Otomatik istatistikler
- Motor otomatik olarak sorgu zamanında istatistikleri oluşturur ve korur
Tüm tablolar için manuel istatistikler
Geleneksel istatistik sağlığını koruma seçeneği Microsoft Fabric'te kullanılabilir. Kullanıcılar sırasıyla CREATE STATISTICS, UPDATE STATISTICS ve DROP STATISTICS ile histogram tabanlı tek sütunlu istatistikler oluşturabilir, güncelleştirebilir ve silebilir. Kullanıcılar, histogram tabanlı tek sütunlu istatistiklerin içeriğini de DBCC SHOW_STATISTICS ile görüntüleyebilir. Şu anda bu ifadelerin sınırlı bir sürümü desteklenmektedir.
- İstatistikleri el ile oluşturuyorsanız, sorgu iş yükünüzde yoğun olarak kullanılan sütunlara (özellikle GROUP BY, ORDER BY, filtreler ve JOIN'lerde) odaklanmayı göz önünde bulundurun.
- Satır sayısını veya verilerin dağılımını önemli ölçüde değiştiren veri değişikliklerinden sonra sütun düzeyi istatistikleri düzenli olarak güncelleştirmeyi göz önünde bulundurun.
Manuel istatistiklerin bakımı örnekleri
dbo.DimCustomer tabloda, bir sütundaki CustomerKey tüm satırları temel alarak istatistikler oluşturmak için:
CREATE STATISTICS DimCustomer_CustomerKey_FullScan
ON dbo.DimCustomer (CustomerKey) WITH FULLSCAN;
İstatistik nesnesini el ile DimCustomer_CustomerKey_FullScan güncelleştirmek için, örneğin büyük bir veri güncellemesinden sonra:
UPDATE STATISTICS dbo.DimCustomer (DimCustomer_CustomerKey_FullScan) WITH FULLSCAN;
İstatistik nesnesi hakkındaki bilgileri göstermek için:
DBCC SHOW_STATISTICS ("dbo.DimCustomer", "DimCustomer_CustomerKey_FullScan");
yalnızca istatistik nesnesinin histogramı hakkındaki bilgileri göstermek için:
DBCC SHOW_STATISTICS ("dbo.DimCustomer", "DimCustomer_CustomerKey_FullScan") WITH HISTOGRAM;
İstatistik nesnesini el ile DimCustomer_CustomerKey_FullScan silmek için:
DROP STATISTICS dbo.DimCustomer.DimCustomer_CustomerKey_FullScan;
Microsoft Fabric'te el ile oluşturulan ve otomatik olarak oluşturulan istatistikleri denetlemek için aşağıdaki T-SQL nesneleri de kullanılabilir:
- sys.stats katalog görünümü
- sys.stats_columns katalog görünümü
- STATS_DATE sistem işlevi
Sorguda otomatik istatistikler
Bir sorgu çalıştırdığınızda ve sorgu iyileştiricisi plan keşfi için istatistikler gerektirdiğinde, Microsoft Fabric henüz mevcut değilse bu istatistikleri otomatik olarak oluşturur. İstatistikler oluşturulduktan sonra, sorgu iyileştirici bunları tetikleyici sorgunun plan maliyetlerini tahmin etmek için kullanabilir. Ayrıca, sorgu altyapısı sorguyla ilgili mevcut istatistiklerin artık verileri doğru yansıtmadığını belirlerse, bu istatistikler otomatik olarak yenilenir. Bu otomatik işlemler eşzamanlı olarak yapıldığından, gerekli istatistikler henüz mevcut değilse veya son istatistik yenileme işleminden bu yana önemli veri değişiklikleri olduysa sorgu süresinin bu süreyi içermesini bekleyebilirsiniz.
Querytime'da otomatik istatistikleri doğrulayın
Bir tür otomatik istatistik bekleyebileceğiniz çeşitli durumlar vardır. En yaygın olanlar, GROUP BY, JOIN, DISTINCT yan tümceleri, filtreler (WHERE yan tümceleri) ve ORDER BY'lerde başvurulan sütunlar için sorgu iyileştiricisi tarafından istenen histogram tabanlı istatistiklerdir. Örneğin, bu istatistiklerin otomatik olarak oluşturulmasını görmek istiyorsanız, COLUMN_NAME için istatistikler henüz yoksa bir sorgu oluşturma işlemini tetikler. Örneğin:
SELECT <COLUMN_NAME>
FROM <YOUR_TABLE_NAME>
GROUP BY <COLUMN_NAME>;
Bu durumda, COLUMN_NAME için istatistiklerin oluşturulmuş olmasını beklemelisiniz. Sütun aynı zamanda bir varchar sütunu olsaydı, ortalama sütun uzunluğu istatistiklerinin de oluşturulduğunu görürdünüz. Otomatik olarak oluşturulan istatistikleri doğrulamak isterseniz aşağıdaki sorguyu çalıştırabilirsiniz:
select
object_name(s.object_id) AS [object_name],
c.name AS [column_name],
s.name AS [stats_name],
s.stats_id,
STATS_DATE(s.object_id, s.stats_id) AS [stats_update_date],
s.auto_created,
s.user_created,
s.stats_generation_method_desc
FROM sys.stats AS s
INNER JOIN sys.objects AS o
ON o.object_id = s.object_id
LEFT JOIN sys.stats_columns AS sc
ON s.object_id = sc.object_id
AND s.stats_id = sc.stats_id
LEFT JOIN sys.columns AS c
ON sc.object_id = c.object_id
AND c.column_id = sc.column_id
WHERE o.type = 'U' -- Only check for stats on user-tables
AND s.auto_created = 1
AND o.name = '<YOUR_TABLE_NAME>'
ORDER BY object_name, column_name;
Şimdi, otomatik olarak oluşturulan histogram istatistiğinin statistics_name adını bulabilir (muhtemelen _WA_Sys_00000007_3B75D760 gibi bir şeydir) ve aşağıdaki T-SQL'i çalıştırabilirsiniz:
DBCC SHOW_STATISTICS ('<YOUR_TABLE_NAME>', '<statistics_name>');
Örneğin:
DBCC SHOW_STATISTICS ('sales.FactInvoice', '_WA_Sys_00000007_3B75D760');
Updated
DBCC SHOW_STATISTICS sonuç kümesindeki değer, özgün GROUP BY sorgusunu çalıştırdığınız zamana benzer bir tarih (UTC olarak) olmalıdır.
Bu otomatik olarak oluşturulan istatistikler daha sonra plan maliyeti ve yürütme verimliliğini artırmak için sorgu altyapısı tarafından sonraki sorgularda kullanılabilir. Tabloda yeterli değişiklik olursa, sorgu işleme altyapısı sorgu iyileştirmeyi geliştirmek için bu istatistikleri de yeniler. Tabloyu önemli ölçüde değiştirdikten sonra önceki örnek alıştırmanın aynısı uygulanabilir. Fabric'te SQL sorgu altyapısı, istatistikleri yenilemek için SQL Server 2016 (13.x) ile aynı yeniden derleme eşiğini kullanır.
Otomatik olarak oluşturulan istatistik türleri
Microsoft Fabric'te, sorgu planlarını geliştirmek için altyapı tarafından otomatik olarak oluşturulan birden çok istatistik türü vardır. Şu anda, hepsi eyleme dönüştürülebilir olmasa da sys.stats içinde bulunabilirler:
- Histogram istatistikleri
- Sorgu zamanında histogram istatistiklerine ihtiyaç duyan her sütun için oluşturulur
- Bu nesneler, belirli bir sütunun dağılımıyla ilgili histogram ve yoğunluk bilgilerini içerir. Azure Synapse Analytics ayrılmış havuzlarında sorgu zamanında otomatik olarak oluşturulan istatistiklere benzer.
- Ad,
_WA_Sys_ile başlar. - İçerikler DBCC SHOW_STATISTICS ile görüntülenebilir
- Ortalama sütun uzunluğu istatistikleri
- Sorgu zamanında ortalama sütun uzunluğuna ihtiyaç duyan 100'den büyük değişken karakter sütunları (varchar) için oluşturuldu.
- Bu nesneler, istatistik oluşturma sırasında varchar sütununun ortalama satır boyutunu temsil eden bir değer içerir.
- Adı
ACE-AverageColumnLength_ile başlar. - İçerikler görüntülenemez ve kullanıcı tarafından işlem yapılamaz.
- Tablo tabanlı kardinalite istatistikleri
- Sorgu zamanında kardinalite tahmini gereken her tablo için, yalnızca diğer satır sayısı meta verileri mevcut olmadığında oluşturulur.
- Bu nesneler bir tablonun satır sayısına ilişkin bir tahmin içerir.
- Adı
ACE-Cardinality. - İçerikler görüntülenemez ve kullanıcı tarafından işlem yapılamaz.
- Sorgu zamanında kardinalite tahmini gereken her tablo için, yalnızca diğer satır sayısı meta verileri mevcut olmadığında oluşturulur.
Fabric istatistikleri içinde yerleşik optimizasyonlar
Kademeli istatistik yenileme
Artımlı istatistik yenilemesi, sütun istatistiklerinin otomatik güncelleştirmeleri için bir performans geliştirmesidir.
Genellikle bir sütunun istatistiği otomatik olarak yenilendiğinde, istatistiği güncelleştirmek için sütunun tamamının bir örneğinin taranması gerekir. Bu özellik, yalnızca son yenilemeden bu yana eklenen satırları örnekleme ve bu verileri mevcut histogramlarla birleştirme yoluyla mümkün olduğunda bu işlemleri hızlandırır.
Altyapı bir sütun istatistiği için güncelleştirme istediğinde, bu daha hızlı yenileme yönteminin kullanılıp kullanılamayacağını otomatik olarak belirler. Artımlı istatistik güncelleştirmeleri genellikle son istatistik yenilemeden bu yana çoğunlukla INSERT'leri olan daha büyük tablolara avantaj sağlar.
Proaktif istatistik yenileme
Proaktif istatistik yenilemesi, veri değişikliği sonrasında istatistik yenilemelerini ön yüklemeye çalışan tam olarak yönetilen bir işlemdir.
Bu iyileştirme, sorgu planı oluşturma sırasında istatistik güncelleştirmelerinin neden olduğu gecikmelerle karşılaşan sorgu SELECT olasılığını azaltmayı amaçlar.
Proaktif istatistik güncelleştirmeleri yalnızca sistem tarafından oluşturulan adlandırma kuralına sahip olan otomatik olarak oluşturulan histogram istatistiklerini _WA_Sys_etkiler.
Proaktif istatistik yenileme özelliği varsayılan olarak etkindir ancak ALTER DATABASE T-SQL komutu kullanılarak yapılandırılabilir.
Sınırlamalar
- Yalnızca tek sütunlu histogram istatistikleri el ile oluşturulabilir ve değiştirilebilir.
- Çok sütunlu istatistik oluşturma desteklenmez.
- El ile oluşturulan istatistikler ve otomatik olarak oluşturulan istatistikler dışında, diğer istatistik nesneleri sys.stats içinde görünebilir. Bu nesneler sorgu iyileştirme için kullanılmaz.