DB2 索引

索引 とは、表の行に対するポインターを順番に並べた集合です。 DB2® は索引を使用して、パフォーマンスが向上し、一意性を保証します。 DB2 索引の構造を理解することにより、システムの最適なパフォーマンスを実現できるようになります。

概念的には、本のページに対する索引のように、DB2 表の行に対する索引として考えることができます。各索引は、ある表の 1 つ以上の列のデータ値をベースとします。

索引の主な目的は、データへのアクセスのパフォーマンスを高めることです。ほとんどの場合は、データをスキャンするよりは索引を使った方がデータへのアクセスは速くなります。 例えば、DEPT 表の DEPTNO 列に対して索引を作成することにより、DB2 が特定の部門を容易に見つけることができ、表の各行全体を読み取る (スキャンする) ことを防止できます。

索引は、表の中のデータとは独立して格納されます。各索引は、自分自身の索引スペースに物理的に格納されます。CREATE INDEX ステートメントを使って索引を定義すると、DB2 がこの構造を作成し、自動的に維持管理します。 ただし、ユーザーが索引の再編成またはリカバリーなどの必要な保守を行うことができます。

索引のもう 1 つの目的は、固有性を保証することです。例えば、従業員表のユニーク索引は、2 人の従業員が同じ従業員番号を 保有していないことを保証します。

表にアクセスするために索引を使用するかどうかは DB2 が決定するので、索引のユーザーはほとんどの場合、索引が使用されていることを認識しません。

索引には、利点と欠点の両方があることに注意してください。索引の数が多いと、特定のトランザクションのアクセス・パフォーマンスが改善されると同時に、索引キーの挿入、更新、および削除に追加処理が必要になります。