Doku veri ambarında istatistikler
Şunlar için geçerlidir: Microsoft Fabric'te SQL 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 olası tüm planları listelemeye ve en verimli adayı seçmeye çalışır. Hangi planın en az ek yük (G/Ç ve bellek) gerektireceğini belirlemek için altyapının her işleçte işleçte işlenebilen 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.
Önemli
Microsoft Fabric şu anda ÖNİzLEME aşamasındadır. Bu bilgiler, yayımlanmadan önce önemli ölçüde değiştirilebilen bir yayın öncesi ürünle ilgilidir. Microsoft, burada sağlanan bilgilerle ilgili olarak açık veya zımni hiçbir garanti vermez.
İstatistiklerden yararlanma
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
- Kullanıcı gerektiğinde istatistikleri oluşturmak, güncelleştirmek ve bırakmak için DDL sorunları
- Otomatik istatistikler
Tüm tablolar için el ile istatistikler
İstatistiklerin durumunu korumanın geleneksel 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 bırakabilir. Kullanıcılar ayrıca DBCC SHOW_STATISTICS histogram tabanlı tek sütunlu istatistiklerin içeriğini de görüntüleyebilir. Şu anda bu deyimlerin sınırlı bir sürümü desteklenmektedir.
- İstatistikleri el ile oluşturuyorsanız, sorgu iş yükünüzde (özellikle GROUP BY'ler, ORDER BY'ler, filtreler ve JOIN'lerde) yoğun olarak kullanılanlara odaklanmayı göz önünde bulundurun.
- Verilerin satır sayısını veya 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.
El ile istatistik bakımı örnekleri
Bir sütundaki dbo.DimCustomer
CustomerKey
tüm satırları temel alarak tabloda istatistikler oluşturmak için:
CREATE STATISTICS DimCustomer_CustomerKey_FullScan
ON dbo.DimCustomer (CustomerKey) WITH FULLSCAN;
İstatistik nesnesini DimCustomer_CustomerKey_FullScan
el ile güncelleştirmek için büyük bir veri güncelleştirmesinin ardından olabilir:
UPDATE STATISTICS DimCustomer_CustomerKey_FullScan (CustomerKey) 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 DimCustomer_CustomerKey_FullScan
el ile bırakmak 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ü
- katalog görünümünü sys.stats_columns
- sistem işlevini STATS_DATE
Sorguda otomatik istatistikler
Bir sorgu yayımladığınızda ve sorgu iyileştiricisi plan araştırması için istatistikler gerektirdiğinde, Microsoft Fabric henüz yoksa bu istatistikleri otomatik olarak oluşturur. İstatistikler oluşturulduktan sonra, sorgu iyileştirici bunları tetikleyen sorgunun plan maliyetlerini tahmin etmek için kullanabilir. Bu oluşturma zaman uyumlu olarak yapıldığından, ilk sorgu çalıştırmasının bu istatistik oluşturma zamanını içermesini bekleyebilirsiniz.
Sorgu zamanında otomatik istatistik oluşturmayı doğrulamak için
Bir tür istatistiğin otomatik olarak oluşturulmasını bekleyebileceğiniz çeşitli durumlar vardır. En yaygın olanı, genellikle GRUP BY'leri, JOIN'ler, DISTINCT yan tümceleri, filtreler (WHERE yan tümceleri) ve ORDER BY'lerinde başvurulan sütunlar için oluşturulan histogram tabanlı sistem istatistikleridir. Örneğin, bu istatistiklerin otomatik olarak oluşturulmasını görmek istiyorsanız, istatistikleri henüz yoksa COLUMN_NAME
sorgu oluşturma işlemini tetikler. Örneğin:
SELECT <COLUMN_NAME>
FROM <YOUR_TABLE_NAME>
GROUP BY <COLUMN_NAME>;
Bu durumda, istatistiklerinin COLUMN_NAME
oluşturulmasını beklemelisiniz. Sütun aynı zamanda bir varchar sütunuysa, oluşturulan ortalama sütun uzunluğu istatistiklerini de görürsünüz. İstatistiklerin otomatik olarak oluşturulduğunu 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
INNER JOIN sys.stats_columns AS sc
ON s.object_id = sc.object_id
AND s.stats_id = sc.stats_id
INNER 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;
Bu sorgu yalnızca sütun tabanlı istatistikleri arar. Bu tablo için mevcut olan tüm istatistikleri görmek isterseniz ve sys.columns
üzerindeki sys.stats_columns
JOIN'leri kaldırın.
Artık otomatik olarak oluşturulan histogram istatistiğini (gibi _WA_Sys_00000007_3B75D760
olmalıdır) bulabilir statistics_name
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ıza benzer bir tarih (UTC olarak) olmalıdır.
Not
Microsoft Fabric şu anda sorgu zamanında istatistiklerin otomatik olarak güncelleştirilmesi için destek sağlamamaktadır.
Otomatik olarak oluşturulan istatistiklerin 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 bulunabilir:
- Histogram istatistikleri
- Sorgu zamanında histogram istatistiklerine ihtiyaç duyan sütun başına oluşturuldu
- 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 ile
_WA_Sys_
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 karakter sütunları (char ve 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 ile
ACE-AverageColumnLength_
başlar. - İçerikler görüntülenemez ve kullanıcı tarafından kullanılamaz.
- Tablo tabanlı kardinalite istatistikleri
- Sorgu zamanında kardinalite tahmini gereken tablo başına oluşturulur.
- Bu nesneler bir tablonun satır sayısıyla ilgili bir tahmin içerir.
- adlı
ACE-Cardinality
. - İçerikler görüntülenemez ve kullanıcı tarafından kullanılamaz.
Sınırlamalar
- Yalnızca tek sütunlu histogram istatistikleri el ile oluşturulabilir ve değiştirilebilir.
- Çok sütunlu istatistikler oluşturma desteklenmez.
- İstatistikler (herhangi bir türde) şu anda varchar(max) için desteklenmemektedir.
- Diğer istatistik nesneleri, el ile oluşturulan istatistiklerin ve otomatik olarak oluşturulan istatistiklerin dışında sys.stats altında görüntülenebilir. Bu nesneler sorgu iyileştirme için kullanılmaz.