演示一个带有全文索引表的分区交换例子(2)

----------在临时表上创建全文索引,这样就可以直接把表数据和索引数据同时交换到原表中,就不需要再在原表中创建索引---------
SQL> create index jack_temp_ind on jack_temp(name) indextype is ctxsys.context;

Index created.

SQL> select segment_name,bytes from user_segments where segment_type='TABLE' and segment_name like 'DR%' order by 1;

SEGMENT_NAME                BYTES
------------------------------ ----------
DR#JACK_TEST_IND0001$I            65536
DR#JACK_TEST_IND0001$R            65536
DR#JACK_TEST_IND0002$I            65536
DR#JACK_TEST_IND0002$R            65536
DR#JACK_TEST_IND0003$I            65536
DR#JACK_TEST_IND0003$R            65536
DR$JACK_TEMP_IND$I                131072      -------从全文索引基表大小上可以看出临时表上的全文索引的基表里面有数据
DR$JACK_TEMP_IND$R                65536

8 rows selected.
  -----------查看索引和表的对应关系--------------------------------
SQL> select index_name,table_name from user_indexes where table_name in('JACK_TEMP','JACK_TEST');

INDEX_NAME              TABLE_NAME
------------------------------ ------------------------------
JACK_TEST_IND              JACK_TEST
JACK_TEMP_IND              JACK_TEMP

七、通过分区交换方式,将临时表中的数据和索引交换入原表

-------------开始进行数据交换----------------------------------------
SQL> alter table jack_test exchange partition p2011 with table jack_temp including indexes without validation;

Table altered.
                                          ---上面的语句是将jack_test表的分区p2011和jack_temp临时表进行数据交换,交换的数据同时包含索引信息。
                                              ---without validation的意思是,不对表中的数据是否和分区对应进行验证,因为验证工作是需要额外开销的。
  ---------查看交换后表的信息----------------
SQL> select count(*) from jack_temp;

COUNT(*)
----------
    0

SQL> select count(*) from jack_test partition(p2011);

COUNT(*)
----------
    27378

SQL> select segment_name,bytes from user_segments where segment_type='TABLE' and segment_name like 'DR%' order by 1;

SEGMENT_NAME                BYTES
------------------------------ ----------
DR#JACK_TEST_IND0001$I          131072
DR#JACK_TEST_IND0001$R            65536
DR#JACK_TEST_IND0002$I            65536
DR#JACK_TEST_IND0002$R            65536
DR#JACK_TEST_IND0003$I            65536
DR#JACK_TEST_IND0003$R            65536
DR$JACK_TEMP_IND$I            65536
DR$JACK_TEMP_IND$R            65536

8 rows selected.

由Oracle索引来理解ArcSDE索引

Oracle索引技术之如何建立最佳索引

Oracle索引列NULL值引发执行计划该表的测试示例

Oracle索引 主键影响查询速度

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4341bcb2a8cf2d5f5adb016c526a32e2.html