对于SQLite,给定一个SQL查询Q,我试图弄清楚如何使用C ++ API从SQLite的查询优化器中获取Q的估计查询执行成本。
我已经搜索过这个问题,在SQLite网站上发现了很多关于这笔费用的讨论,以及查询优化器在内部如何使用它。但我无法找到任何C ++ API调用来获得此成本。
因此,我猜可能没有实现这样的调用,但也许有人可能知道从SQLite中获取这些成本的方法?
答案 0 :(得分:0)
EXPLAIN QUERY PLAN命令返回的数据仅用于交互式调试。输出格式可能会在SQLite版本之间发生变化。应用程序不应该依赖于EXPLAIN QUERY PLAN命令的输出格式。
任何属于API的东西都需要永远支持,因此查询优化器的细节不能成为API的一部分。
如果您真的想要这些值并知道自己在做什么,可以修改SQLite源代码以返回它们。
sqlite3_stmt_status() function允许您检索语句的一些与性能相关的指标,但这些不是估算值,而是执行后的实际成本。