都内で働くSEの技術的なひとりごと

都内でサラリーマンやってます。マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。よろしくお願いします♪

クエリの完了率と予測完了時間を確認してみる

今回やることを説明してみる

 クエリの完了率と予測完了時間を確認します。久しぶりの SQL Server 関連の記事です。

使用する環境を説明してみる

 My Lenovo with SQL Server 2014 です。

試してみる

 早速試してみましょう。今回は、DBCC CHECKDB で確認してみます。SQL Server Management Studio で クエリ画面を二つ立ち上げ、それぞれの画面で下記のコマンドおよびクエリを実行します。

DBCC CHECKDB
SELECT [クエリ] = est.text,
       [完了率] = percent_complete, 
       [開始時間] = start_time,  
       [予測完了時間] = DATEADD(SECOND,estimated_completion_time/1000, GETDATE()) 
FROM sys.dm_exec_requests er
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) est
OPTION (RECOMPILE)

f:id:koogucc11:20150312074443p:plain

 完了率、予測完了時間が取得できています。長時間に及ぶ処理だと、どのくらいで完了するかわかると安心できますよね。但し、完了率が取得できるコマンドは下記のものだけです。

  • ALTER INDEX REORGANIZE
  • ALTER DATABASE の AUTO_SHRINK オプション
  • BACKUP DATABASE
  • DBCC CHECKDB
  • DBCC CHECKFILEGROUP
  • DBCC CHECKTABLE
  • DBCC INDEXDEFRAG
  • DBCC SHRINKDATABASE
  • DBCC SHRINKFILE
  • RECOVERY
  • RESTORE DATABASE
  • rollback
  • TDE ENCRYPTION

終わりに何か言ってみる

 全部のコマンドで完了率とか取れたらいいのに....と思ってみる。INDEX の REBUILD 処理とか....

プログラミング.NET Framework 第4版買おうかな....ちょっと前は、kindle 版が半額になってました。

プログラミング.NET Framework 第4版

プログラミング.NET Framework 第4版

あ、これです。買えばよかったなー。二週間くらい前ですね。
f:id:koogucc11:20150220034345p:plain