我正在使用一个基于java的web应用程序,我们使用Microsoft SQL server作为数据库服务器。在那里,我们有几个长时间运行的SQL查询,我们正在寻找提高这些查询性能的选项。
当我开始阅读有关查询性能改进的文章时,我发现SQL Server缓存了查询执行计划,下次它可以从缓存中重用这些计划,而无需创建新的执行计划。我用SET STATISTICS TIME ON;在MSSQL management studio控制台上试用了一下,它清楚地显示SQL Server缓存了执行计划。JDBC会自动发生这种情况吗?或者,我们需要遵循任何特定的说明吗?我试着用谷歌搜索,但没那么走运。
发布于 2018-04-18 18:48:09
是的,它发生在JDBC中。只需小心,将准备好的语句(https://docs.oracle.com/javase/8/docs/api/java/sql/PreparedStatement.html)与绑定变量一起使用即可。例如:
select * from tab where col = 'somevalue'不同于:
select * from tab where col = 'someothervalue'但两者在编写时都可以使用相同的计划:
select * from tab where col = ?https://stackoverflow.com/questions/49897593
复制相似问题