sqlite从api解释

sqlite从api解释,sqlite,explain,Sqlite,Explain,我的应用程序执行了一个复杂的SQL查询。查询在版本3.6.11(64ms)下运行良好。在3.6.22中运行时,需要超过100秒才能完成。从命令行客户端执行时,在11和22中执行都很快。因此,我希望从应用程序内部运行带有“EXPLAIN”的查询。可能吗?我尝试准备并单步执行查询,然后将列作为文本读取,但结果为空 >根据,可以使用C++ API?< /P> < P>执行“解释” 根据编译时选项,您可以将SQLite虚拟机置于一种模式,通过将消息写入标准输出来跟踪其执行。非标准SQL“PRAGMA”

我的应用程序执行了一个复杂的SQL查询。查询在版本3.6.11(64ms)下运行良好。在3.6.22中运行时,需要超过100秒才能完成。从命令行客户端执行时,在11和22中执行都很快。因此,我希望从应用程序内部运行带有“EXPLAIN”的查询。可能吗?我尝试准备并单步执行查询,然后将列作为文本读取,但结果为空

>根据

,可以使用C++ API?< /P> < P>执行“解释” 根据编译时选项,您可以将SQLite虚拟机置于一种模式,通过将消息写入标准输出来跟踪其执行。非标准SQL“PRAGMA”注释可用于打开和关闭跟踪。要启用跟踪,请输入:

PRAGMA vdbe_trace=on;
通过输入类似的语句,但将值“on”更改为“off”,可以关闭跟踪

另外,一个
EXPLAIN…
查询的输出只是一组(有序的)记录,如果你有能力,你可以对它们进行解码。见: