Ged*_*rne 5 sql-server performance hibernate sql-server-2005
我有一个与本周播客类似的问题。
我们有一个Java应用程序,它在Sql Server 2005中使用了休眠模式。
Hibernate正在为我们生成一个查询,该查询需要近20分钟的时间才能完成。
如果我们使用show_sql进行相同的查询,并用常量值替换问号,则会立即返回答案。
我认为我们需要option(recompile),但是我不知道如何使用HQL来实现。
请帮忙!
从您的问题描述来看,您似乎遇到了参数嗅探。本质上,SQL Server 基于传入的一组较旧的参数值创建查询计划,这些参数值不会为当前运行的查询创建有效的执行计划。
通常,我通过将参数值传递到局部变量并在查询中使用这些参数值或使用 OPTION (RECOMPILE) 来解决此问题。但是,由于您使用的是 Hibernate,我通常的解决方案不适合您。据我了解,最好的选择是使用 Hibernate 使用 prepareStatement() 或 createSQLQuery() 运行本机 SQL 查询,不幸的是,这消除了使用 Hibernate 的一些好处。
归档时间: |
|
查看次数: |
8384 次 |
最近记录: |