我有一个包含大量查询的 sql server 批处理文件,例如:
update_query_1;
insert_query_2;
update_query_3;
Run Code Online (Sandbox Code Playgroud)
查询顺序很重要,这意味着它们应该一一执行。我的问题是,sql server 是否会通过并行处理自动优化查询,这可能会破坏订单。如果可以,如何保证顺序?
无论您投入多少处理器,SQL Server 永远不会在同一批处理中的多个语句之间“并行化”。它会update_query_1
在开始之前完全结束insert_query_2
,并且会insert_query_2
在开始之前完全结束update_query_3
。
除非您正在谈论启动作业、调用 Service Broker 或触发某些副作用,否则批处理中的任何语句都不是异步的。但从技术上讲,这些东西都不是这批的一部分。