SQLite .net提供程序和“准备语句”功能

3

前言

SQLite的“预处理语句”功能的描述可以在这里找到。

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

概述:无操作。命令在首次执行时准备好,并保持准备状态。

问题

  1. 通常情况下,SQLite的预处理语句功能是否提高了多次执行的查询的整体性能?
  2. 预处理语句存储在哪里?我如何确保实际使用了这些预处理语句?
  3. 我如何确保Dapper正在使用这些语句?(在我的情况下,我使用Dapper运行相同的查询数百次。查询基于传递的参数每次获取10k条结果。)

编辑:

刚刚发现这个部分回答了我的问题。尽管如此,如果我需要自己构建DbCommand并将其保留在某个地方,我如何在Dapper中使用该命令?

1个回答

4

可以完全肯定地说,Dapper目前不会调用Prepare()

你可以在这里阅读更详细的解释。

长话短说,主要原因是:Dapper确实非常不希望储存你的连接,因为它被设计为考虑高并发,并且通常在DbConnection短暂存在的情况下工作。


1
好的,那很有道理。也许在这种特定情况下,纯ADO.net对我有用。谢谢。 - Aryéh Radlé
谢谢分享这个。这是我迄今为止读到的关于ADO.NET中Prepare()语句的优缺点的最佳解释。 - Andreas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接