SQL Server | 並列処理とは

【注目記事】

・SEの転職体験談 | 受託開発から自社製品開発へ
・SIer勤務のSEがパソナキャリアに相談してみた
・SIer勤務のSEがマイナビエージェントに相談してみた

SQL Severの並列処理について調べました。

SQL Serverの並列処理とは

PCには人間でいう頭脳にあたるCPUがあります。

昔はCPUは1つのPCに1つだけでしたが、最近では複数のCPUが入っていることが多いです。

複数のCPUがあると、同時に複数の処理ができます。

そして、SQL Serverの並列処理とはこの複数のCPUを使って1つのクエリを動かすことです。

並列処理のメリットとデメリット

並列処理のメリットは処理にかかる時間が短くなることです。

1つの頭で処理するより、複数の頭で分担して考えた方が早く終わるからです。

デメリットはCPUの負荷が高くなることです。

並列処理になる基準

並列クエリとなる基準は以下の通りです。

  1. 複数のCPUが搭載されている環境か
  2. スレッドの数に余裕があるか
  3. 並列プラン適したクエリ、インデックスか
  4. 処理行数が十分に多いか
  5. 分布統計が使用できるか

(参考) 並列処理の次数

並列処理をやってみる

テスト環境

SQL Serverのバージョン : Microsoft SQL Server Developer (64-bit)

OS                                    : Windows10

CPU                                  : 2コア / 4スレッド

データベースの作成

テーブルの作成

テストデータの作成

負荷の高い処理を実行

並列処理ができたか確認

上記のSQLを実行して実行プラン※をみると、「Parallelism(Gather Streams )」という表示が出てきます。

Parallelismは並列処理関連の操作(ここではGather Streams)をした時に表示されるもので、これが表示されていれば並列処理をしたと判断できます。

実行プランを読み解くと、Gather Streamsは複数の入力を1つの出力に切り替えるものなので、1つ前のSortで並列処理をして、その結果をGather Streamsで1つにまとめていることが分かります。

Parallelismの例

念のためSortの詳細をみると実行回数が2になっています。

実行数の確認

SQLではSort(Order by)は1回だけなのに、実行数回数が2回になっているということは、2つのCPUを使ってSortしている、つまりSortを並列実行で処理しているということです。

※実行プランの確認方法は実行プランの確認方法をご覧ください。

SQLスキルを高めるためのおススメ書籍

SQLのスキルを高めるには、学校の試験勉強と同じように多くの問題を解いてみるのが効率的です。

『スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)』は、SQLの基本的な内容の解説に加え、200問を超える問題が掲載されているので、SQL初心者が学習に使うのにおススメです。

実際、この書籍を新卒1年目の新人さんに2-3週間かけて取組んでもらったことがあり、書籍を読んだ後に簡単なSQLの改修を任せましたが、基本的な部分にはつまずかずに改修を進められました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です