我有一个多租户数据库,根据查询的租户返回不同数量的行。最近我们遇到了一个参数嗅探问题,其中针对一个租户 (TenantID = 1) 执行的实体框架 (EF) 查询比针对另一个租户 (TenantID = 2) 的相同查询花费的时间要长得多。我做了一些研究并确定 EF 不支持查询提示(请参阅此问题),这将允许我每次都强制重新编译查询。现在我想知道是否可以拦截 EF 生成的 Sql 查询并在执行之前手动附加“OPTION (OPTIMIZE FOR UNKNOWN)”。这可能吗?EF 是否可插入,以便我可以在生成的 Sql 执行之前对其进行修改?有没有如何做到这一点的例子?
问问题
1081 次