由于 SQL Server 中的参数嗅探,我们遇到了性能问题。我们的应用程序将 NHibernate 与 LINQ 提供程序一起使用。
我正在寻找一种将例如“OPTION(RECOMPILE)”添加到该特定 SQL 查询的方法。我现在可以为此使用拦截器,但我希望它只添加到某些 IQueryable 查询中。所以不是我所有的休眠查询,因为那样我会失去查询计划缓存的优势。
也欢迎使用 NHibernate 解决 1 个特定查询的参数嗅探的其他选项。
由于 SQL Server 中的参数嗅探,我们遇到了性能问题。我们的应用程序将 NHibernate 与 LINQ 提供程序一起使用。
我正在寻找一种将例如“OPTION(RECOMPILE)”添加到该特定 SQL 查询的方法。我现在可以为此使用拦截器,但我希望它只添加到某些 IQueryable 查询中。所以不是我所有的休眠查询,因为那样我会失去查询计划缓存的优势。
也欢迎使用 NHibernate 解决 1 个特定查询的参数嗅探的其他选项。
使用查询计划指南为其指定优化。
这是一个基本的演练:http ://realsqlguy.com/dont-get-slimed-bad-parameter-sniffing/
虽然这在服务器端修复了它,但您需要找到导致问题的查询,找到正确的计划,并为其生成计划指南。也许下一版本的 SQL Server 将解决一些参数嗅探问题。