0

私はこれを理解するのに苦労しています。誰かが助けてくれるかもしれません。

誰かに、2 つのレベルに分割する必要があるテーブルを作成するように依頼されました。

1 - 時間 2 - 場所。

顧客ごとにグローバル逆インデックスを持つ必要があります - これが私の最大の問題です。グローバル逆インデックスとは何ですか?

テーブル構造は次のとおりです (既に作成されています)。

CREATE TABLE MY_TABLE
(
TIME          DATE,
LOCATION      NUMBER,
CUSTOMER_ID   NUMBER,
CUSTOMER_NAME VARCHAR2(200)
);

(および他のいくつかの列...)

どうすればいいですか?前もって感謝します。

4

1 に答える 1

1
CREATE TABLE my_table
(
    a_time        DATE,
    a_location    NUMBER,
    customer_id   NUMBER,
    customer_name VARCHAR2(200)
)
PARTITION BY RANGE (a_time)
SUBPARTITION BY LIST (a_location)
(
    PARTITION p_20130101 VALUES LESS THAN (TO_DATE('2013-01-01', 'YYYY-MM-DD'))
    (
        SUBPARTITION a_location_1_1 VALUES (1),
        SUBPARTITION a_location_1_2 VALUES (2),
        SUBPARTITION a_location_1_3 VALUES (3)
    ),
    PARTITION p_20130201 VALUES LESS THAN (TO_DATE('2013-02-01', 'YYYY-MM-DD'))
    (
        SUBPARTITION a_location_2_1 VALUES (1),
        SUBPARTITION a_location_2_2 VALUES (2),
        SUBPARTITION a_location_2_3 VALUES (3)
    ),
    PARTITION p_20130301 VALUES LESS THAN (TO_DATE('2013-03-01', 'YYYY-MM-DD'))
    (
        SUBPARTITION a_location_3_1 VALUES (1),
        SUBPARTITION a_location_3_2 VALUES (2),
        SUBPARTITION a_location_3_3 VALUES (3)
    )
)
ENABLE ROW MOVEMENT;

Oracle の逆インデックスは、数値 (my_table_idx) としてテーブル内の文字列と列を対象としています。通常のインデックスをお勧めします。

CREATE INDEX my_table_idx ON my_table(customer_id);
于 2013-06-06T16:17:55.987 に答える