1
テーブルAをテーブルBに切り替えると、インデックスデータも切り替えられますか?
現在、かなり大きなテーブル(500〜700万行)があります。このテーブルは、ステージングテーブルのデータを構築し、ALTER TABLE .. SWITCH TO ..ステートメントを使用してデータを本番テーブルに切り替えるプロシージャによって定期的に再構築されます。 例: BEGIN TRAN; -- Rebuild indexes ALTER INDEX IX_NC_GroupEvent_staging_GroupName on [dbo].[GroupEvent_staging] REBUILD; ALTER INDEX IX_NC_GroupEvent_staging_Created ON [dbo].[GroupEvent_staging] REBUILD; -- Empty production table TRUNCATE TABLE [dbo].[GroupEvent]; -- Switch data from staging-table into production table ALTER TABLE [dbo].[GroupEvent_staging] SWITCH TO [dbo].[GroupEvent] COMMIT; この操作を実行すると、インデックス(または必要に応じてインデックスデータ)の現在の状態も切り替えられますか?私は2つの理由のために尋ねています: 1)SWITCH TOステートメントを実行するには、ソーステーブルとターゲットテーブルの両方に同じインデックスが含まれている必要があります。これにより、インデックスデータも切り替えられる可能性があると思いますが、これを確認する方法がわかりません。 2)この方法でテーブルを作成する主な利点は、使用中に本番テーブルで過度の作業を実行しないようにすることです。当然、ステージングテーブルでインデックスを再構築でき、再構築されたインデックスをテーブルと共に本番用インデックスに切り替えることができれば、とても嬉しく思います。