有没有办法在不绑定实际值的情况下获取参数化查询的执行计划?
我在我的应用程序中使用System.Data.SQLite,我正在尝试获取查询的执行计划以进行调试和分析。我们的想法是在实际语句之前添加EXPLAIN QUERY PLAN
字符串,执行并将结果转储到调试控制台。
此策略适用于非参数化查询,但在参数化查询中失败。
有没有办法克服这个问题? SQLite是否应该在参数绑定发生之前准备执行计划?
答案 0 :(得分:0)
SQLite本身并不要求每个参数都明确绑定;默认值为NULL。
如果您使用的数据库驱动程序强制您设置所有参数,只需将它们设置为NULL。
如果启用了索引统计信息,则只要设置了新参数,SQLite就可以重新编译语句。在这种情况下,执行计划可能与您获得的实际参数值不同。