
9
8
7
6
5
4
3
2
1
56
現在ではサーバーのCPUはマルチコア構成であることが普通です。しかし、通
常 SQL 文は実行時にシングルコアしか使うことができません。そのため、ストレー
ジ帯域やメモリが余っているのに1コアを100% 使い切るようなケースでは、CPU
ネックとなってクエリが遅延することがあります。
そうした場合に有効なのがパラレルクエリという方法です。これはアプリケー
ションを変えることなく高速化が可能という点でヒント句に似ています(という
か、ヒント句で埋め込む場合もあります)。通常、シングルコアで実行されるクエ
リの処理を分割してマルチコア化する方法で、パラメータやヒント句で多重度を設
定します。
たとえばOracle でセッション単位でパラレルクエリを有効化するコマンドは以
下のような構文です。
ALTER SESSION FORCE PARALLEL QUERY PARALLEL <
>;
Oracleでは非常に幅広いクエリがパラレル化の対象となるため、しばしばその
効果は絶大です。
PostgreSQLでは「max_parallel_workers_per_gather」というパラメータを0
より大きくすることでパラレルクエリが有効化されます。これによって、テーブル
やインデックスへのスキャンが並列 ...