SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Server の v.Next の再開可能なインデックスのオンラインビルドを実行してみる

leave a comment

動作の仕組みはわかっていないのですが、再開可能なインデックスのオンラインビルドの実行方法がわかりましたので、書いておきたいと思います。

再開可能なインデックスのオンラインビルですが、インデックスの再構築を実施する際に「RESUMABLE = ON」を指定することで使用することができるようです。

ALTER INDEX [PK_CUSTOMER] ON [dbo].[CUSTOMER] REBUILD
WITH (RESUMABLE = ON, ONLINE = ON)
GO

RESUMABLE のオプションを有効にして再構築しているインデックスについては「sys.index_resumable_operations」から、状態を確認することができました。

image

「RESUMABLE=ON」を指定した再構築については、上記の DMV に情報が出力されるようになり、インデックスの再構築のクエリを停止 / Kill した場合は、

Warning: An existing resumable operation with the same options was identified for the same index on ‘CUSTOMER’. The existing operation will be resumed instead.

The statement has been terminated.

ユーザーがクエリを取り消しました。

というようなメッセージが表示されますが、「percent_complete」は維持されたままとなっており、再度同様のコマンドでインデックスの再構築を実施すると、処理が継続されてインデックスの再構築が実施されます。

中断中にデータの全件更新を実施した場合等は、中断していたものが 100% 完了になっていたので、この辺の動作が気になりますが、有効に活用すると大量データのオンライン操作を複数タイミングで実行するというようなことができて運用の利便性が向上するケースが出てくるのかなと。

Share

Written by Masayuki.Ozawa

2月 21st, 2017 at 9:21 pm

Posted in SQL Server

Tagged with

Leave a Reply