SQLite .net 提供程序和 "prepare statement" 功能

SQLite .net provider & "prepare statement" functionality

前言

可以找到对 SQLite "Prepared Statement" 功能 here 的描述。

SQLite 命令(.NET 的 SQLite 提供程序) 有一个方法 "Prepare",其描述如下:

Summary: Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards.

问题

  1. 一般来说,SQLite 的 Prepared Statement 功能是否提高了查询的整体性能,它被一遍又一遍地执行?
  2. 准备好的语句保存在哪里?我如何确定这些准备好的语句实际上正在被使用?
  3. 我如何确定 Dapper 正在使用这些语句? (在我的例子中,我使用 Dapper 运行 同一个查询数百次。根据传递的参数,查询在每次调用中获取 10k 个结果)。

编辑:

刚找到 this,这部分回答了我的问题。尽管如此,如果我需要自己构建 DbCommand,然后将其保存在某个地方,我该如何将命令与 Dapper 一起使用?

说 Dapper 目前没有调用 Prepare() 是完全正确的。

您可以阅读详细说明here

长话短说,主要原因是:Dapper 真的、真的不想存储您的连接,因为它在设计时考虑了高并发性,并且通常在 DbConnection 短暂存在的场景中工作