これは見た目ほど単純なプロセスではありません。その理由は、ファイルを SQL サーバーに追加するだけでは不十分であり、4 つの新しいファイルを追加したとしても、それらはすべて空のスペースになるためです。 1Tb のデータを含む 1 つのファイルと 4 つの空のファイルがあり、SQL サーバーがファイルに比例フィル方式を使用するため、最終的にはいっぱいになりますが、ほとんどのクエリは依然として 1 つのファイルにヒットします。
パフォーマンスを向上させるためにこれを行っていると思いますか?その場合、実際にデータを分割するには、データを別のファイルに移動する必要があります。これをオンラインで実行できるかどうかは、Enterprise Edition を実行しているかどうかによって異なります (これにより、オンラインでインデックスを再構築できるため)。
テーブル (より正確にはクラスター化インデックス。すべての意図と目的においてテーブルとほぼ同じものです) を移動する簡単な方法は、新しいデータ ファイルを含む新しいファイル グループを追加し、次のように指定してクラスター化インデックスを再構築することです。新しいファイル グループの場合、次を使用してこれを行うことができます。
CREATE CLUSTERED INDEX Existing_Index_Name ON schema_name.table_name(column_name)
WITH(DROP_EXISTING=ON,Online=ON) on [new_filegroup_name]
GO
このコードは、新しいファイル グループに新しいインデックスを作成し、古いインデックスを削除します。エンタープライズ エディションを実行している場合は、ユーザーをブロックすることなくすべてを実行します。
ファイル グループ間でデータを移動するその他の方法については、次のリンクを参照してください。
SQL Server データベース ファイル グループ間でデータを移動する
パフォーマンスを向上させるために、テーブルのパーティション分割も検討する必要があります。
テーブルとインデックスの分割
ミラーリングのセットアップに関しては、ミラーを解除し、プライマリにすべてのファイル/ファイル グループを追加し、ファイル グループ間でデータを移動し、変更されたデータベースをプライマリにバックアップし、ミラーに復元する必要があります (したがって、すべてのファイルミラーで同じようにセットアップされている)、ミラーリングを再セットアップします。