Symfoware Serverでは、処理件数の多い検索処理を、CPU負荷に応じて複数のCPUコアに分散させて並列に処理することで、検索処理の性能向上を実現します。
以下の図のように、CPU負荷が低い場合には、より多くのプロセスで並列に処理し、よりCPU負荷が高い場合には、少ないプロセスで並列に処理します。CPU負荷が非常に高い場合には、並列化を行いません。このような自動的な判断によって、CPUの効率的な使用と検索処理の性能向上が可能となります。
Symfoware Serverの並列検索では、以下の演算をサポートしています。
シーケンシャルスキャン
集計処理(集約関数、GROUP BY)
以下の図のように、処理をスキャン範囲ごとに細分化して、CPU負荷に応じて並列化したプロセス(ワーカープロセスと呼びます)に割り当てます。ワーカープロセスごとに検索結果を用いて集計処理を行い、最後にすべての結果を集計処理して、アプリケーションに結果を返却します。
参照
並列検索については、“アプリケーション開発ガイド”の“並列検索”を参照してください。