【问题标题】:does SWITCHING FMTONLY impacts performance. inside stored procedure? (entity framework)SWITCHING FMTONLY 是否会影响性能。内部存储过程? (实体框架)
【发布时间】:2013-12-02 07:43:25
【问题描述】:

我正在构建一个动态查询并尝试使用 sp_executesql 执行它。我使用 EF(实体框架)作为我的 ORM 工具。正如我所读到的,实体框架最初将 FMTONLY 首先设置为 OFF,然后只请求该 sql 过程的元数据..

我不知道 在 sql 中使用 set fmtonly 的影响如果仅在创建复杂类型时我将 fmtonly 设置为 ON 并且在 EF 中创建复杂类型后我会再次将其设置为关闭。这样用可以吗?

这会影响下一次过程调用的性能吗?

如果我已经完成并且想要回滚怎么办?...

【问题讨论】:

    标签: c# sql sql-server entity-framework stored-procedures


    【解决方案1】:

    不要这样做。使用FMTONLY 充满了问题。因为当 FMTONLY 为 ON 时,一个过程会执行每个 分支,结果通常是出乎意料的。

    由于在开发过程中您确切地知道您正在调用什么过程以及预期的结果集是什么,因此永远不需要在执行良好的开发周期中使用 FMTONLY。 EF 这样做的事实绝不是好的做法。

    【讨论】:

    • 如果我已经完成并且想要回滚怎么办?...你能解释一下 FMTONLY 的作用吗
    • 如果仅在创建复杂类型时我将 fmtonly 设置为 ON,并且在 EF 中创建复杂类型后我将再次将其设置为 OFF。这样用可以吗?
    • FMTONLY 由接受任意 SQL 并需要了解返回的结果集的形状(列的数量、类型和名称)的工具使用 没有实际执行 SQL我>。除非您创建设计时 SQL 工具(例如 EF 本身,而不是基于 EF 的应用程序),否则您几乎不需要在代码中使用 FMTONLY
    猜你喜欢
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    相关资源
    最近更新 更多