【问题标题】:C# .net and CLR Stored Procedures QuestionC# .net 和 CLR 存储过程问题
【发布时间】:2010-06-15 12:33:48
【问题描述】:

是正常的操作吗:

在 CLR 中从 ProductId = x 的产品中删除比普通 MS SQL 2005 服务器存储过程快吗?

【问题讨论】:

  • 你能说得更具体点吗?您是在测量总体时间(包括 AppDomain 预热),还是仅在所有内容都加载后(例如 SP 版本中的执行计划)?
  • 我正在尝试优化存储过程,使它们执行得更快,更省力。

标签: .net stored-procedures clr


【解决方案1】:

没有。

一般建议是继续将 T-SQL 用于基于集合的操作,并且仅考虑将 CLR 用于计算绑定任务(或没有 T-SQL 等效任务的任务)。

例如,请参阅此 MS white paper

【讨论】:

    【解决方案2】:

    简短的回答是否定的。虽然差异可能如此之小,但您永远无法判断用原生 T-SQL 编写的存储过程会比用 C# 编写的、必须编译成 MSIL 才能运行的存储过程快。

    仅当您无法使用本机 T-SQL 执行某些操作时,您才应该执行 CLR 存储过程。例如,我有一个使用 EDI 的 CLR 过程,我必须进行大量的文本处理,而使用 T-SQL 不太可行。

    【讨论】:

      【解决方案3】:

      不。实际上使用存储过程更快,因为不是每条语句在每次使用时都会重新编译。

      【讨论】:

        猜你喜欢
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多