主キーをファイルグループに移動する(SQL Server 2012)


14

クラスター化された主キーを新しいファイルグループに移動するにはどうすればよいですか?私はすでに可能な「アルゴリズム」を見つけましたが、恐ろしく非効率的です:

  1. クラスター化されていないインデックス付きのドロップ(それらを再ソートして再構築する必要があります)
  2. クラスター化インデックスを削除します(テーブル全体を再ソートする必要があります)
  3. 新しい主キー制約を作成します(巨大なソート操作)
  4. すべての非クラスター化インデックスを作成する(並べ替えと書き込みが必要)

より効率的な方法はありますか?これはひどく非効率的であり、弱いサーバーではテーブルのサイズが50GBであるため、時間がかかります。

これらすべてをスキップして、新しいファイルグループで再構築する方法はありませんか?データの並べ替えは必要ありません。

回答:


24
CREATE UNIQUE CLUSTERED INDEX Your_PK_Name
    ON YourTable(YourColumnList)
WITH (DROP_EXISTING =  ON )
ON [YourOtherFileGroup]

これにより、構文で言及されていないにもかかわらず、論理PKプロパティが保持されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.