2012-10-22 20 views
0

我有一个小问题:(我有一个数据库,达到一个partition_schema 1000个分区,在互联网上看看我发现它是顶部,但它可以增加到15000.我不能增加到15000,我可以做的解决方案是合并一些分区。处理分区,当你不知道受影响的表

我有一个分区,自20100101以来,实际上有999,它不能再增加了,所以我想合并分区从一个月,但在此之前,我想做一个将受到影响的信息的备份,但我不知道哪些表受到具有999范围的功能的影响。

问:我怎样才能找到最好的布莱尔是受这个函数影响的?或者哪个是确保合并分区的最佳方式,我不会丢失数据?

回答

2

您不应该丢失数据合并分区。以防万一,尽量创建一个备份。

这里有一个查询,可以给你一些洞察表可以使用分区功能:

DECLARE @PartitionFunction sysname = 'YourPartitionFunctionName'; 

SELECT t.name TableName 
    , pf.name PartitionFunction 
    , ps.name PartitionScheme 
    , pst.partition_number 
    , pst.used_page_count 
    , row_count 
from sys.dm_db_partition_stats pst 
JOIN sys.partitions p ON pst.partition_id = p.partition_id 
JOIN sys.tables t 
     ON p.object_id = t.object_id 
JOIN sys.indexes i 
     ON p.object_id = i.object_id 
     AND p.index_id = i.index_id 
JOIN sys.allocation_units au 
     ON p.hobt_id = au.container_id 
JOIN sys.filegroups f 
     ON au.data_space_id = f.data_space_id 
JOIN sys.partition_schemes ps 
     ON ps.data_space_id = i.data_space_id 
JOIN sys.partition_functions pf 
     ON ps.function_id = pf.function_id 
WHERE used_page_count > 0 
    AND pf.name = @PartitionFunction 
    AND pst.index_id IN (0,1)/*Remove Nonclustered index counts*/; 

您也可以参考我的答案here的,我经常使用的监控分区卷的表值函数。

相关问题