コンポジット・リスト・レンジ・パーティション化が役立つのは、様々なディメンションに関してアクセスされる大きな表です。最もよく使用されるディメンションでは、離散値について行をパーティションに具体的にマップすることができます。リスト・レンジ・パーティション化は、リスト・パーティション内で範囲値を使用する表でよく使用されます。一方、レンジ・リスト・パーティション化は、レンジ・パーティション内の離散リスト値についてよく使用されます。リスト・レンジ・パーティション化は、履歴データの格納にはそれほど使用されませんが、同様のシナリオにはすべて対応します。レンジ・リスト・パーティション化は、時間隔リスト・パーティション化を使用して実装できますが、リスト・レンジ・パーティション化は時間隔パーティション化をサポートしていません。
例3-13に、様々な通貨単位での寄付額を格納するdonations
表を示します。donationsは、金額に応じて、低、中、高にカテゴリ分けされています。通貨によってレンジは異なります。
例3-13 コンポジット・リスト - レンジ・パーティション化による表の作成
CREATE TABLE donations ( id NUMBER , name VARCHAR2(60) , beneficiary VARCHAR2(80) , payment_method VARCHAR2(30) , currency VARCHAR2(3) , amount NUMBER ) PARTITION BY LIST (currency) SUBPARTITION BY RANGE (amount) ( PARTITION p_eur VALUES ('EUR') ( SUBPARTITION p_eur_small VALUES LESS THAN (8) , SUBPARTITION p_eur_medium VALUES LESS THAN (80) , SUBPARTITION p_eur_high VALUES LESS THAN (MAXVALUE) ) , PARTITION p_gbp VALUES ('GBP') ( SUBPARTITION p_gbp_small VALUES LESS THAN (5) , SUBPARTITION p_gbp_medium VALUES LESS THAN (50) , SUBPARTITION p_gbp_high VALUES LESS THAN (MAXVALUE) ) , PARTITION p_aud_nzd_chf VALUES ('AUD','NZD','CHF') ( SUBPARTITION p_aud_nzd_chf_small VALUES LESS THAN (12) , SUBPARTITION p_aud_nzd_chf_medium VALUES LESS THAN (120) , SUBPARTITION p_aud_nzd_chf_high VALUES LESS THAN (MAXVALUE) ) , PARTITION p_jpy VALUES ('JPY') ( SUBPARTITION p_jpy_small VALUES LESS THAN (1200) , SUBPARTITION p_jpy_medium VALUES LESS THAN (12000) , SUBPARTITION p_jpy_high VALUES LESS THAN (MAXVALUE) ) , PARTITION p_inr VALUES ('INR') ( SUBPARTITION p_inr_small VALUES LESS THAN (400) , SUBPARTITION p_inr_medium VALUES LESS THAN (4000) , SUBPARTITION p_inr_high VALUES LESS THAN (MAXVALUE) ) , PARTITION p_zar VALUES ('ZAR') ( SUBPARTITION p_zar_small VALUES LESS THAN (70) , SUBPARTITION p_zar_medium VALUES LESS THAN (700) , SUBPARTITION p_zar_high VALUES LESS THAN (MAXVALUE) ) , PARTITION p_default VALUES (DEFAULT) ( SUBPARTITION p_default_small VALUES LESS THAN (10) , SUBPARTITION p_default_medium VALUES LESS THAN (100) , SUBPARTITION p_default_high VALUES LESS THAN (MAXVALUE) ) ) ENABLE ROW MOVEMENT;