テーブルの行がAMP間で不均等に分散していると(スキュー)、問合わせの処理効率が低下します。
分散にスキューが発生すると、次の結果が生じます。
- フル テーブル スキャンおよびバルク挿入の際、CPU並列処理の効率が劣化する。
- 値が重複する場合に、更新と挿入に伴う入出力が増大する。
テーブルがスキューされると、その影響がいくつかの操作に現れることになります。例えば、次のようになります。
- フル テーブル スキャンの場合、ターゲット テーブルの行数が少ないAMPは、行数が多いAMPが完了するまで待機することを余儀なくされます。ノードのCPU使用状況はこうした相違を反映することになります。ノード全体の速度は最も遅いノードのAMPと同じになるためです。
- スキュー テーブルへのバルク(大量の)挿入を行なう場合は、同じNUPI値の行が多数あるAMPに余分の負担がかかるということを考慮してください。
500万行のテーブルのうち、5,000行が同じNUPI値を持つとします。ここで、100,000行をこのテーブルに挿入します。この挿入行のうち100行はNUPI値が同じであるとします。このNUPI値を持つ5,000行を保持するAMPは、このNUPIについて50万回(5,000 * 100)も重複行の検査をしなければなりません。結果として、この操作の並列効率性が悪化します。