有谁知道MARS(多个 Activity 结果集)的任何缺点?有谁知道为什么应该避免使用MARS的任何原因,例如游标比MARS更有用的情况。

最佳答案

显然至少存在两个已知(潜在)缺陷(从此(1)Team blog):

  • 显然,这对于未设计为与启用MARS的设计运行的任何旧系统都可能引起潜在问题-“经过优化以在非MARS Realm 中运行的现有代码,在未使用MARS进行修改的情况下运行时,可能会表现出轻微的性能下降”。
  • “使用MARS,您可以将多个多语句批处理发送到服务器。服务器将交错执行此类批处理,这意味着,例如,如果批处理通过SET或USE语句更改服务器状态,或使用TSQL事务管理语句(BEGIN TRAN,COMMIT,ROLLBACK),则您和服务器都可能会感到困惑关于您的实际意图。”

  • 我还没有尝试过启用MARS的设计,但是在我当前的项目中,我已经非常接近这样做了。我们在竞争性查询(有时是依赖项)的查询操作中存在一个小问题(例如,从 Activity 记录集正在执行的同一数据库中延迟加载配置数据)。

    在MSDN网站(2) here上有更多信息。

    [(1) http://blogs.msdn.com/sqlnativeclient/archive/2006/09/27/774290.aspx]
    [(2) http://msdn.microsoft.com/en-us/library/ms131686.aspx]

    关于sql-server-2005 - MARS(多个事件结果集)的缺点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/374444/

    10-11 01:43