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