使用参数检索SQLite执行计划以进行查询

时间:2014-03-01 09:46:22

标签: c# sqlite sql-execution-plan

有没有办法在不绑定实际值的情况下获取参数化查询的执行计划?

我在我的应用程序中使用System.Data.SQLite,我正在尝试获取查询的执行计划以进行调试和分析。我们的想法是在实际语句之前添加EXPLAIN QUERY PLAN字符串,执行并将结果转储到调试控制台。

此策略适用于非参数化查询,但在参数化查询中失败。

有没有办法克服这个问题? SQLite是否应该在参数绑定发生之前准备执行计划?

1 个答案:

答案 0 :(得分:0)

SQLite本身并不要求每个参数都明确绑定;默认值为NULL。

如果您使用的数据库驱动程序强制您设置所有参数,只需将它们设置为NULL。

如果启用了索引统计信息,则只要设置了新参数,SQLite就可以重新编译语句。在这种情况下,执行计划可能与您获得的实际参数值不同。