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

linux – SQLite查询的执行时间:单位,第1张

概述如 SQLite Documentation所述,人们可以使用: sqlite> .timer ON 或者向〜/ .sqliterc添加相同的命令 当这样做完成时,SQLite shell会响应执行的每个查询的CPU Time的用户和sys组件: user@machine% sqlite3 test.db-- Loading resources from ~/.sqlitercSQLite 如 SQLite Documentation所述,人们可以使用:
sqlite> .timer ON

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

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

user@machine% sqlite3 test.db-- Loading resources from ~/.sqlitercsqlite version 3.7.14 2012-09-03 15:42:36Enter ".help" for instructionsEnter sql statements terminated with a ";"sqlite> select count(*) from my_table;count(*)10143270cpu 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:33Enter ".help" for usage hints.Connected to a transIEnt in-memory database.Use ".open filename" to reopen on a persistent database.sqlite> .timer onsqlite> UPDATE ...;Run Time: real 36.591 user 17.362911 sys 1.809612
总结

以上是内存溢出为你收集整理的linux – SQLite查询的执行时间:单位全部内容,希望文章能够帮你解决linux – SQLite查询的执行时间:单位所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1042588.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存