さてデータを分割すると、特定のサーバで膨大なデータを一手に読み書きする必要はなくなります。 一方、図1に示すように、このままではSQLの処理を行う際には、すべてのデータをいったんSQLの処理をするサーバに送らなければならなくなります。 これは通常、LAN(ローカルエリアネットワーク)を介して行われますが、この時の速度はサーバ内の磁気ディスクのデータ転送速度よりもかなり遅いのが現状で、単純にデータを蓄積しただけでは、かえって効率が低下する場合もあります。 そこで、SQLの処理の内部構造に着目してみます。この内部構造を非常に単純にモデル化したものを図2に示します。 SQLの処理は、SQLの構文を解釈する部分(パーサ)と、この構造を理解して処理手順を決める部分(プランナ)、そして実際に処理を行う部分(エグゼキュータ)に分けられます。 SQLの結果を受け取るデータはわずかでも、何百万何千万のレコー