概要
SQLite3 で SQL を実行した際、実行にかかった時間を計測するためのコマンド。
計測出来るのは SQL のみで、コマンドラインツールのコマンドの実行時間は計測出来ない。
構文
時間計測を有効化する「on」/ 無効化する「off」
出力される時間の単位は「秒」。
.timer on
.timer off
実行例
環境
- Windows 11
- SQLite Command-Line Shell ver 3.51.3
時間計測を「on」にしてSQLを実行する
c:\temp> rem # 1
c:\temp> sqlite3 sample.db
sqlite> -- # 2
sqlite> .timer on
sqlite> -- # 3
sqlite> select * from user;
...
Run Time: real 4.729 user 0.312500 sys 1.078125
- コマンドラインツールで「sample.db」というsqliteデータベースを開く
- 時間計測を「on」にする
- SQLを実行すると、SQLの実行結果の後に計測結果が秒単位で出力される
各項目の意味は以下の表の通りで、これはUNIXの timeコマンドの結果と同等の内容と思われる。
(SQLite3 公式サイトに正式な説明が載っていないので推測)
| 種類 | 意味 |
|---|---|
| real |
実際に経過した時間。 I/O待ちや他のプロセスの影響などクエリの開始から終了までの時間になる。 コマンドラインツール上であれば、select の結果をディスプレイに出力するのにかかった時間も含まれる。 |
| user | CPUが使われた時間。 実行する SQLの解析、テーブルのJOIN、ソート計算や関数の実行にかかった時間。 SQL 文の品質を確認したいならこの時間を確認すればよさそう。 |
| sys |
OSが処理した時間。 ファイルの読み書きの時間が含まれる。 ケースに寄りけりだが、SQLite3 ではそこまで重要視する時間ではないかも。 |
一般的に real ≧ user + sys となる想定
時間計測を止めるには以下のようにコマンドを実行する
sqlite> .timer off
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html