MARS(多个活动结果集)的缺点?

时间:2008-12-17 12:49:05

标签: sql-server-2005 mars

有没有人知道MARS(多个活动结果集)的任何缺点?有没有人知道为什么人们应该避免使用MARS,比如游标比MARS更有用的情况。

3 个答案:

答案 0 :(得分:56)

显然至少有两个已知的(潜在的)缺点(来自这(1)Team blog):

  1. 显然,这可能会导致任何未设计为针对支持MARS的设计运行的遗留系统出现潜在问题 - “优化为在非MARS世界中运行的现有代码可能会略微降低性能当使用MARS“

  2. 进行未修改时
  3. “使用MARS,您可以向服务器发送多个多语句批次。服务器将交错执行此类批处理,这意味着如果批处理通过SET或USE语句更改服务器状态,或者使用TSQL事务管理语句(BEGIN TRAN,COMMIT,ROLLBACK),则您和服务器都会混淆关于你的实际意图。“

  4. 我还没有尝试过支持MARS的设计,但我现在非常接近我目前的项目。我们在竞争(有时是依赖)查询操作方面存在轻微问题(例如,延迟加载配置数据来自活动记录集正在执行的同一数据库)。

    有关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]

答案 1 :(得分:6)

  • 一次连接一个连接所需的服务器资源略多。
  • 您必须运行SQL Server 2005或更高版本。所以这可能是遗留(ack!)环境中的一个问题。

答案 2 :(得分:3)

取决于什么?没有真正的缺点。

他们不支持交易保存点。但我不认为这是一个劣势。