Разница между метаданными раздела и COUNT (*) в многораздельной таблице - PullRequest
0 голосов
/ 03 апреля 2012

Секционирование таблицы на основе столбца для повышения производительности. Для определенного раздела количество строк равно 1 в таблице sys.partition.Однако фактическая таблица содержит данные, пожалуйста, посмотрите на снимок экрана.

 SELECT  OBJECT_NAME(i.OBJECT_ID) AS TableName,
i.name AS IndexName,
indexstats.avg_fragmentation_in_percent ,
indexstats.partition_number,
 fg.name AS FileGroupName,
  value,
  fragment_count,
  page_count    
from sys.dm_db_index_physical_stats(@db_id, @object_id, NULL, NULL , 'DETAILED') indexstats
INNER JOIN sys.indexes i ON i.OBJECT_ID = indexstats.OBJECT_ID
AND i.index_id = indexstats.index_id
JOIN sys.partition_schemes ps
  ON (ps.data_space_id = i.data_space_id)
JOIN sys.partition_functions f
  ON (f.function_id = ps.function_id)
LEFT JOIN sys.partition_range_values rv   
  ON (f.function_id = rv.function_id
      AND indexstats.partition_number = rv.boundary_id)
JOIN sys.destination_data_spaces dds
  ON (dds.partition_scheme_id = ps.data_space_id
      AND dds.destination_id = indexstats.partition_number)
JOIN sys.filegroups fg
  ON (dds.data_space_id = fg.data_space_id)
WHERE indexstats.avg_fragmentation_in_percent > 20

enter image description here

select count(1) from table where id = 50002

enter image description here

Возможно ли иметьданные в таблице, не обновляя количество строк в sys.partitions?Я убедился, что индекс не находится в отключенном режиме.

...