加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – SQLite查询的执行时间:单位

发布时间:2020-12-13 17:55:43 所属栏目:Linux 来源:网络整理
导读:如 SQLite Documentation所述,人们可以使用: sqlite .timer ON 或者向?/ .sqliterc添加相同的命令 当这样做完成时,SQLite shell会响应执行的每个查询的CPU Time的用户和sys组件: user@machine% sqlite3 test.db-- Loading resources from ~/.sqlitercSQLit
如 SQLite Documentation所述,人们可以使用:
sqlite> .timer ON

或者向?/ .sqliterc添加相同的命令

当这样做完成时,SQLite shell会响应执行的每个查询的CPU Time的用户和sys组件:

user@machine% sqlite3 test.db
-- Loading resources from ~/.sqliterc

SQLite version 3.7.14 2012-09-03 15:42:36
Enter ".help" for instructions
Enter SQL statements terminated with a ";"

sqlite> select count(*) from my_table;
count(*)
10143270
CPU Time: user 0.199970 sys 1.060838

当我发现this answer为几秒钟的时间单位提供证据时,我很难同意.当使用秒表计时执行查询时,我发现几乎每个查询的花费要比使用shell的时间长.例如,上述示例中的查询大概花了1分54秒的时间.这个差异的原因是什么?

那么再一次,单位是什么?什么是用户和系统组件?

我在运行SQLite 3.7.14的Debian GNU / Linux 6.0.6(挤压)分发可通过NFS访问.

解决方法

用户是CPU花费在用户空间中执行代码(即数据库本身)的时间; sys是用于内核中的代码.

在执行I / O时,CPU大部分时间都在等待.

SQLite的最新版本也显示经过实时的时间:

SQLite version 3.8.6 2014-08-15 11:46:33
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .timer on
sqlite> UPDATE ...;
Run Time: real 36.591 user 17.362911 sys 1.809612

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读