I am using JOOQ with Microsoft SQL Server 2019. It states in this reference,
https://www.jooq.org/doc/latest/manual/sql-execution/performance-considerations/
It takes some time to construct jOOQ queries. If you can reuse the same queries, you might cache them.
Does JOOQ remove any of Microsoft SQL server caching abilities? Is there anything I should do specifically with JOOQ to cache sql plans, or will SQL server automatically take care of it?
It takes some time to construct jOOQ queries. If you can reuse the same queries, you might cache them.
This is about the client side generation of the SQL string, which is re-generated every time you run a SQL query (with jOOQ's queries being all dynamic by default). The same page that you quoted above also says:
Optimise wisely
In rare cases, jOOQ's client side overhead may be a problem for your application's throughput. In those cases, you might be interested in caching the SQL string or even the prepared statement in the client, but you should do so only when you can measure an actual problem.
Does JOOQ remove any of Microsoft SQL server caching abilities?
No, not at all. All jOOQ queries are created as JDBC PreparedStatement
using bind values by default. You can obviously override this default because there are always reasons to do so, but the default is to use prepared statements to benefit prepared statement caching on the server side.
Is there anything I should do specifically with JOOQ to cache sql plans, or will SQL server automatically take care of it?
SQL server will automatically take care of it.