【问题标题】:NHibernate LINQ Parameter Sniffing issueNHibernate LINQ 参数嗅探问题
【发布时间】:2015-12-13 22:08:48
【问题描述】:

由于 SQL Server 中的参数嗅探,我们遇到了性能问题。我们的应用程序将 NHibernate 与 LINQ 提供程序一起使用。

我正在寻找一种方法,例如将“OPTION(RECOMPILE)”添加到某个 SQL 查询中。我现在可以为此使用拦截器,但我希望它只添加到某些 IQueryable 查询中。所以不是我所有的休眠查询,因为那样我会失去查询计划缓存的优势。

也欢迎使用 NHibernate 解决对 1 个特定查询的参数嗅探的其他选项。

【问题讨论】:

  • 我们已经偶然发现了这个链接,但是它使用了一个依赖于 IQuery 接口的实现,而我们使用的是 IQueryables。我现在没有办法通过 IQueryables 向 SQL 查询添加注释。

标签: sql sql-server linq nhibernate parameter-sniffing


【解决方案1】:

使用查询计划指南为其指定优化。

这是一个基本的演练:http://realsqlguy.com/dont-get-slimed-bad-parameter-sniffing/

虽然这在服务器端解决了问题,但您需要找到导致问题的查询,找到正确的计划,并为其生成计划指南。也许下一个版本的 SQL Server 会解决一些参数嗅探问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2016-10-07
    • 1970-01-01
    • 2013-07-22
    • 2015-04-26
    • 2018-06-01
    • 1970-01-01
    相关资源
    最近更新 更多