2016-10-30 6 views
0

クエリ実行時間を確認したい(.timerを使用しない)
各SQL文の実行時間を測定したい。
私はGettimeofday関数を使うことができると思います。
しかし、私は各SQLクエリの "開始/終了"ポイントがわかりません。ショートパンツでSQLite内の各SQL文クエリの実行時間を測定する方法


- クエリ実行
時のスタート/エンドポイントは何ですか - どのように私は、各クエリの実行時間を計測することができますか? (.timerオプションを使用していません)

+0

'sqlite3'コマンドラインシェルまたは独自のプログラムからデータベースにアクセスしていますか? –

答えて

2

OS Xを使用している場合は、クエリの実行時間を測定するために時間を使用することをお勧めします。それは、これまでで最も簡単な方法です:

time printf "<your query>;" | sqlite3 databaseFile.db > /dev/null 

例:

time printf "select * from blame;" | sqlite3 mydata.db > /dev/null 

real 0m1.603s 
user 0m1.167s 
sys  0m0.112s 

コマンドでも、Linuxで動作します。出力を保存/出力することによる時間の無駄を避けるために、出力を/ dev/nullにパイプします。

データベース接続を開き、実行可能ファイルをロードするのにはいくつかのオーバーヘッドがありますが、クエリの高価(時間の点で)の点では良い考えがあります。

あなたはこのような何かを行うことによって、そのオーバーヘッドのアイデアを得ることができます。

time printf ".schema" | sqlite3 mydata.db > /dev/null 

をあなたは何が起こっているかのより良い理解を取得したい場合、私はあなたが説明コマンドに見てお勧めします。 sqlite3の場合:

explain select * from table; 

そして、sqliteがクエリを計算するために期待している操作の完全な説明が得られます。

関連する問題