次の形のクエリがあります。
A
UNION ALL
B
UNION ALL
C
UNION ALL
D
そして、A、B、C、および D を並列に呼び出して並列化し、それらを .Net で結合したいと考えています。これら 4 つのクエリはすべて、同じテーブル プール内のデータを読み取ります。
私が試した最初のステップは、SSMS の 1 つのタブで A を実行し、2 番目のタブで B を実行することです。A と B はそれぞれ約 1 分続くので、A を起動してからタブ B に移動して起動する時間があります。
しかし、CPU 使用率を見ると、13% (私は 8 コアの CPU @ Windows を使用しています) で停止します。これは、1 つのコアの 100% に相当します。
私の質問: - 「ロック」メカニズムにより、特定のテーブル セットに対して 2 つのクエリを並行して実行できますか? - 並列処理が可能である場合、2 つの SSMS タブで A と B を並列に実行しようとすると、それに気付くでしょうか、それともテストに欠陥がありますか? - 最終的にそのUNION ALLシリーズのパフォーマンスをどのように改善できるでしょうか?