我有以下形状的查询:
A
UNION ALL
B
UNION ALL
C
UNION ALL
D
并希望通过并行调用 A、B、C 和 D 来并行化它,然后在 .Net 中合并它们。这 4 个查询都在同一个表池中读取数据。
我尝试的第一步是在 SSMS 的一个选项卡中执行 A,在第二个选项卡中执行 B。A 和 B 各持续约 1 分钟,所以我有时间启动 A,然后转到选项卡 B 并启动它。
但是当我查看 CPU 使用率时,它停滞在 13%(我在 8 核 CPU @ Windows 上),这对应于一个内核的 100%。
我的问题:-“锁定”机制是否允许对给定表集的两个查询并行运行?- 如果并行性是可能的,我会通过尝试在两个 SSMS 选项卡中并行运行 A 和 B 来注意到它,还是我的测试有缺陷?- 最终如何提高 UNION ALL 系列的性能?