Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Özet

Bu makalede, gerçek satır sayısı ve satır sayısı geçerli veritabanındaki tüm tabloları veya belirli bir tablo için paralel veri ambarı istatistiklerinde karşılaştırmak için bir sorgu içeriyor. Satır sayısı değerlerini çok önemli ölçüde farklıysa, o tablo için doğru İstatistikler paralel veri ambarı yok. Bu verimli değildir ve çalışma zamanları uzun sorgu neden olabilecek işlemleri ve verileri hareketleri seçmek paralel veri ambarı en iyi duruma getiricisi neden olabilir.

Daha fazla bilgi

Gerçek satır sayısı ve paralel veri ambarı istatistikleri görüntülenir CTL satır sayısı arasında bir karşılaştırma göstermek için aşağıdaki sorguyu çalıştırın:

SELECT db_name() as [Database],   pdwtbl.name as [Table], 
Sum(part.rows)/ max(pdwpart.partition_number)/8 AS CMP_ROW_COUNT,
sum(pdwpart.rows)/max(size.distribution_id)/max(pdwpart.partition_number)/8 AS CTL_ROW_COUNT
FROM sys.pdw_nodes_partitions part
JOIN sys.pdw_nodes_tables tbl
ON part.object_id = tbl.object_id
AND part.pdw_node_id = tbl.pdw_node_id
JOIN sys.pdw_distributions size
on size.pdw_node_id = tbl.pdw_node_id
JOIN sys.pdw_table_mappings map
ON map.physical_name = tbl.name
JOIN sys.tables pdwtbl
ON pdwtbl.object_id = map.object_id
JOIN sys.partitions pdwpart
ON pdwpart.object_id = pdwtbl.object_id
join sys.pdw_table_distribution_properties dist
on pdwtbl.object_id = dist.object_id
WHERE dist.distribution_policy = 2
-- uncomment the below if you are looking for row counts for a specific table
-- this table will also need to be added below
-- and pdwtbl.name = 'table_name'
GROUP BY pdwtbl.name
UNION ALL
SELECT db_name() as [Database],
pdwtbl.name,
Sum(part.rows)/ sum(pdwpart.partition_number) AS CMP_ROW_COUNT,
sum(pdwpart.rows) /max(pdwpart.partition_number) /(select count(type) from sys.dm_pdw_nodes where type = ''' + 'COMPUTE' + ''')
AS CTL_ROW_COUNT
FROM sys.pdw_nodes_partitions part
JOIN sys.pdw_nodes_tables tbl
ON part.object_id = tbl.object_id
AND part.pdw_node_id = tbl.pdw_node_id
JOIN sys.pdw_table_mappings map
ON map.physical_name = tbl.name
JOIN sys.tables pdwtbl
ON pdwtbl.object_id = map.object_id
JOIN sys.partitions pdwpart
ON pdwpart.object_id = pdwtbl.object_id
join sys.pdw_table_distribution_properties dist
on pdwtbl.object_id = dist.object_id
where dist.distribution_policy = 3
-- uncomment the below if you are looking for row counts for a specific table
-- this table will also need to be added below
-- and pdwtbl.name = 'table_name'
GROUP BY pdwtbl.name




Notlar

  • Bu sorgu yalnızca satır sayar ve önemlilik değil değerlendirir. Paralel veri ambarı düzey istatistikleri tablonun en az bir sütun üzerinde bulunması gerekir. Birden fazla sütun üzerinde istatistikleri var olup olmadığını dikkate almaz veya hangi sütun için İstatistikler bulunması.

  • Varsayılan sayım paralel veri ambarındaki 1.000 satır değerdir. Paralel veri ambarı istatistik oluşturulmuşsa, CTL satır sayısı için 1000 değeri döndürülür.

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin

Eğitimleri keşfedin >

Yeni özellikleri ilk olarak siz edinin

MICROSOFT 365 INSIDER’LARA KATILIN >

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?

Geri bildiriminiz için teşekkürler!

×