【发布时间】:2021-11-05 00:26:25
【问题描述】:
我正在将 JOOQ 与 Microsoft SQL Server 2019 一起使用。它在此参考中指出,
https://www.jooq.org/doc/latest/manual/sql-execution/performance-considerations/
构建 jOOQ 查询需要一些时间。如果你可以重复使用 相同的查询,你可以缓存它们。
JOOQ 是否删除任何 Microsoft SQL 服务器缓存功能?我应该专门用 JOOQ 做些什么来缓存 sql 计划,还是 SQL Server 会自动处理它?
【问题讨论】:
-
JOOQ 是否删除任何 Microsoft SQL 服务器缓存功能? 有点。 SQL Server 缓存以
@@OPTIONS为键的执行计划以及语句散列。这适用于重用语句和参数化查询。除此之外,jOOQ 还支持带有inlined parameters 的语句,它实际上将查询参数值注入到 SQL 语句中——这意味着语句是不同的,因此在使用不同的参数时会有不同的执行计划。 -
@LukasEder 我从来没有说过默认情况下会这样做。但是,如果您使用内联参数,则会通过为每个参数组合提交不同的计划来破坏 SQL Server 的计划缓存。
-
@AlwaysLearning:但是 OP 的问题是一个笼统的问题,您的观点是关于一个与 jOOQ 无关的特定功能。您可以使用任何向 SQL Server 发送语句的方法内联值,包括直接使用 JDBC。
标签: java sql-server spring-boot jooq