我想查看查询执行时间(不使用.timer)
我想测量每个SQL语句的执行时间
我想我可以使用Gettimeofday功能
但我不知道每个SQL查询的“开始/结束”点是什么。
简而言之,
- 查询执行期间的起点/终点是什么?
- 如何衡量每个查询执行时间? (不使用.timer选项)
答案 0 :(得分: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期望用于计算查询的操作的完整说明。