有没有一个工具来configurationsqlite查询?
我正在使用SQLite数据库,并希望加快我的查询,也许与索引或完全重组。
有没有一个工具来configuration查询,这可能会帮助我决定什么东西放缓?
我知道我可以将查询input到像SQLite Administrator这样的工具来计时,但是我正在寻找一些比这更有系统性的东西 – 也许是在后台进行查询,并查看所有通过SQLiteinput的查询期间,给任何瓶颈分解。
你在这里有一个混合的问题。 要查看运行的查询和每个查询需要多长时间,您需要修改sqlite3.dll,如果应用程序链接到该应用程序,或者如果它是您自己的应用程序,则可以更容易地将其写入代码(我们这样做,查询,交易,时间等)。
对于单个查询分析,您可以使用EXPLAIN
。 它不会告诉你在一个查询中单个步骤的时间,但它会告诉你如何执行查询。
http://www.sqlite.org/lang_explain.html
一个SQL语句可以在关键字“EXPLAIN”之前或短语“EXPLAIN QUERY PLAN”解释。 任何修改都会导致SQL语句作为查询行为,并返回有关SQL语句如何在已省略EXPLAIN关键字或短语的情况下操作的信息。
当EXPLAIN关键字本身出现时,它会导致语句作为查询返回虚拟机指令序列,如果不存在EXPLAIN关键字,它将执行该命令。 当EXPLAIN QUERY PLAN短语出现时,该语句将返回有关使用哪些索引的高级信息。
EXPLAIN和EXPLAIN QUERY PLAN的输出仅用于交互式分析和故障排除。 输出格式的细节可能会从一个版本的SQLite更改为下一个。 应用程序不应该使用EXPLAIN或EXPLAIN QUERY PLAN,因为它们的确切行为是无证的,未指定的和可变的。
这只会回答问题的一部分(不幸的是,最无益的部分)。
我google了这个,因为我正在寻找一些时间查询和sqlite3客户端有一个计时器元命令。
sqlite> .timer上
从那里开始,所有的查询结果都会附加上cpu定时器的统计信息。 希望这至less有一点帮助。
现在SQLite有实验性的sqlite3_trace
和sqlite3_profile
(详情请参阅https://www.sqlite.org/c3ref/profile.html )。 他们可以在长时间的testing中派上用场,统计/调查罪魁祸首。