【问题标题】:Oracle Partitioning and IndexesOracle 分区和索引
【发布时间】:2013-06-02 15:29:49
【问题描述】:
我很难理解这一点。或许有人可以帮忙。
有人让我创建一个应该分成两级的表:
1 - 时间
2 - 位置。
它应该有一个客户的全局倒排索引 - 这是我最大的问题。什么是全局倒排索引?
这是表结构(已经创建):
CREATE TABLE MY_TABLE
(
TIME DATE,
LOCATION NUMBER,
CUSTOMER_ID NUMBER,
CUSTOMER_NAME VARCHAR2(200)
);
(以及其他一些列...)
我应该怎么做?
提前谢谢你。
【问题讨论】:
-
全局倒排索引与文本搜索有关。我对此知之甚少,所以除了this link 之外,我对Oracle Text 文档无能为力。第三章介绍索引。
标签:
sql
oracle
partitioning
indexing
【解决方案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);