プライマリ インデックスは、行パーティションまたは非パーティションのどちらにもすることができます。パーティション プライマリ インデックス(PPI)では、AMP上のユーザー定義のデータ パーティションに行を割り当てることが許可されています。PPIはシングルレベル、マルチレベルのどちらにも定義できます。マルチレベルのパーティション化によって各パーティションをサブパーティション化することもできます。
プライマリ インデックスを行パーティション化することの最大の潜在的利点は、適切なパーティションの行のみにアクセスすることができ、問合わせの検索条件に合った行を含まないパーティションはスキップするという点です。
PPIは、問合わせの効率を増大するために、フル テーブル スキャンを回避しますが、セカンダリ インデックスのオーバーヘッドとメンテナンス コストは伴いません。マルチレベルのPPIは、プライマリ テーブル内の行に対する複数のアクセス パスを提供し、行パーティション排除を様々なレベルの各々で、またはレベルの組み合わせで行なうことにより、問合わせのパフォーマンス向上を実現します。
PPIは、範囲問合わせを最適化し、同時に効率的なPI結合戦略を提供するように設計されています。範囲問合わせは、指定された境界内に含まれるデータを要求します。これに関する一般的な例として、日付範囲を含む問合わせがあります。
列パーティション化はプライマリ インデックスを持つテーブルに対してはサポートされません。
推奨事項: PPIを持つテーブルを定義して、以下のワークロード特性に対応することを検討してください。
- ワークロード内の大半の問合わせが、PPIテーブルの特定の列(特に日付列)に範囲の述部を指定します。
- ワークロード内の大半の問合わせが、PPIテーブルの特定の列に等価述部を指定します。この場合の列は次のどちらかの特性を持っています。プライマリ インデックス列セット内の列のみではないか、またはプライマリ インデックス列ではありません。