【发布时间】:2012-03-28 16:56:29
【问题描述】:
我有一个多租户数据库,根据查询的租户返回的行数大不相同。最近我们遇到了一个参数嗅探问题,其中针对一个租户 (TenantID = 1) 执行的实体框架 (EF) 查询比针对另一个租户 (TenantID = 2) 的相同查询花费的时间要长得多。我进行了一些研究并确定 EF 不支持查询提示(请参阅this question),这将允许我每次都强制重新编译查询。现在我想知道是否可以拦截 EF 生成的 Sql 查询并在执行之前手动附加“OPTION (OPTIMIZE FOR UNKNOWN)”。这可能吗? EF 是否可插入,以便我可以在生成的 Sql 执行之前对其进行修改?是否有任何示例说明如何执行此操作?
【问题讨论】:
标签: sql-server entity-framework multi-tenant query-hints