0

私は少し問題があります:(、私は1つのpartition_schemaに対して1000パーティションに達したデータベースを持っています、インターネットを見て、それがトップであることがわかりましたが、15000に増やすことができます。15000に増やすことはできません、私ができる解決策は、いくつかのパーティションをマージすることです。

20100101から日ごとにパーティションがあり、実際には999あり、それ以上増やすことができないので、1か月からパーティションをマージしたいのですが、その前に、影響を受ける情​​報のバックアップを作成したいと思います。 、しかし、999の範囲を持つ関数の影響を受けるテーブルはわかりません。

Q.関数の影響を受けるテーブルを確認するにはどうすればよいですか?または、パーティションをマージしてもデータが失われないようにするための最良の方法はどれですか?

4

1 に答える 1

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*/;

パーティションボリュームを監視するために定期的に使用するテーブル値関数については、ここで私の回答を参照することもできます。

于 2012-10-23T00:23:00.740 に答える