有没有人知道MARS(多个活动结果集)的任何缺点?有没有人知道为什么人们应该避免使用MARS,比如游标比MARS更有用的情况。
答案 0 :(得分:56)
显然至少有两个已知的(潜在的)缺点(来自这(1)Team blog):
显然,这可能会导致任何未设计为针对支持MARS的设计运行的遗留系统出现潜在问题 - “优化为在非MARS世界中运行的现有代码可能会略微降低性能当使用MARS“
“使用MARS,您可以向服务器发送多个多语句批次。服务器将交错执行此类批处理,这意味着如果批处理通过SET或USE语句更改服务器状态,或者使用TSQL事务管理语句(BEGIN TRAN,COMMIT,ROLLBACK),则您和服务器都会混淆关于你的实际意图。“
我还没有尝试过支持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)
答案 2 :(得分:3)
取决于什么?没有真正的缺点。
他们不支持交易保存点。但我不认为这是一个劣势。