質問: ON ) ON [FILE_GROUP], ) ON PART_TEST GO ```
回答: パーティションテーブルを検討する前に、クラスター化インデックスの概念を理解する必要があります。 インデックスの一般的な概念はテーブルの該当行に対するポインター配列的な存在となっています。SQL Serverにおいても非クラスター化インデックスは同じです。 しかしクラスター化インデックスは全く異なり、テーブルそのものをクラスター化インデックス順に並べて配置する機能です。名前こそインデックスとなっていますが実体はテーブルの格納方法そのものです。そのため、テーブルに対してクラスター化インデックスは1つまでしか設定できません。その代わりにクラスター化インデックスを使用した検索の際にはインデックスに含まれていないカラムに対してもパフォーマンス低下することなく参照できる利点があります。 幸い、一般的なテーブルには主キーが存在するため、クラスター化インデックスの候補として主キーが適切です。 さて、パーティションテーブルももちろんテーブルの格納方法に関するものです。クラスター化インデックスが存在する場合はクラスター化インデックスを元に分割する必要があるのは明らかです。 どうしてもパーティションテーブルを他のインデックスを元に分割するのであれば、クラスター化インデックスを削除し非クラスター化インデックスに変更する必要があります。 ただし、前述の説明の通り、クラスター化インデックスと非クラスター化インデックスでは構造が全く異なるため、パフォーマンスの出方も全く異なってきます。パーティションテーブルのためにパフォーマンスが低下しては本末転倒ですので、インデックスを正しく理解した上で、テーブル・インデックスを設計してください。