【发布时间】:2008-12-17 12:49:04
【问题描述】:
有人知道 MARS(多活动结果集)的缺点吗?有谁知道为什么应该避免使用 MARS,例如光标比 MARS 更有用的情况。
【问题讨论】:
标签: sql-server-2005 sql-server-mars
有人知道 MARS(多活动结果集)的缺点吗?有谁知道为什么应该避免使用 MARS,例如光标比 MARS 更有用的情况。
【问题讨论】:
标签: sql-server-2005 sql-server-mars
显然至少有两个已知的(潜在的)缺点(来自这个(1)Team blog):
显然,这可能会导致未设计为针对启用 MARS 的设计运行的任何遗留系统的潜在问题 - “为在非 MARS 世界中运行而优化的现有代码在运行时可能会出现轻微的性能下降- 用 MARS 修改”
“使用 MARS,您可以将多个多语句批次发送到服务器。服务器将交错执行此类批处理,这意味着如果批处理通过 SET 或 USE 语句更改服务器状态,或者使用 TSQL 事务管理语句(BEGIN TRAN、COMMIT、ROLLBACK),您和服务器都会感到困惑关于你的实际意图是什么。”
我还没有尝试启用 MARS 的设计,但在我当前的项目中我已经非常接近这样做了。我们在竞争(有时是依赖)查询操作(例如从活动记录集正在执行的同一数据库中延迟加载配置数据)时遇到了一个小问题。
MSDN 网站(2) here上有更多信息
[(1)https://web.archive.org/web/20190911155929/https://blogs.msdn.microsoft.com/sqlnativeclient/2006/09/27/using-mars-with-sql-native-client/]
[(2)http://msdn.microsoft.com/en-us/library/ms131686.aspx]
【讨论】:
【讨论】:
取决于什么?没有真正的缺点。
它们不支持事务保存点。但我不认为这是一个缺点。
【讨论】: