Souhrn
Tento článek obsahuje dotaz a porovnejte počet skutečných řádků a počet řádků ve statistice paralelní datového skladu pro určitou tabulku nebo pro všechny tabulky v aktuální databázi. Pokud hodnoty počet řádků se příliš výrazně liší, paralelní datového skladu nemá přesné statistiky pro tuto tabulku. To může způsobit Optimalizátor paralelní datového skladu zvolte operace a data pohyby nejsou účinné a které by mohly způsobit časy spuštění dlouhého dotazu.
Další informace
Spusťte následující dotaz, chcete-li zobrazit srovnání počet skutečných řádků a počet řádků seznamu důvěryhodných certifikátů zobrazený ve statistice paralelní datového skladu:
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
Poznámky
-
Následující dotaz vyhodnotí počty řádků a není mohutnost. Také vyžaduje, že existují statistiky úrovně paralelní datového skladu na nejméně jeden sloupec v tabulce. Není zohledněn v úvahu zda existují statistiky o více než jeden sloupec nebo sloupec, jehož existují statistiky.
-
Výchozí hodnota pro počet v paralelní datový sklad je 1 000 řádků. Pokud byly vytvořeny žádné statistiky paralelní datového skladu, je vrácena hodnota 1000 pro počet řádků seznamu důvěryhodných certifikátů.