oracle分区exchange,oracle 分区表exchange原理
oracle分區的exchange操作非常快,那原理是什么呢?下面我們來做個實驗:
SQL> create table test (id number(3));
表已創建。
SQL> insert into test values (1);
已創建 1 行。
SQL> commit;
提交完成。
SQL> select object_id,data_object_id from user_objects s where s.object_name='TEST';
OBJECT_ID DATA_OBJECT_ID
---------- --------------
180148???????? 180148
SQL> create table test_part(id number(3)) partition by range(id)
2????? (partition p1 values less than (10),
3?????? partition p2 values less than (20));
表已創建。
SQL> col object_name format a20
SQL> col subobject_name format a20
SQL> select object_name,s.subobject_name,object_id, data_object_id
2??? from user_objects s
3?? where s.object_name = 'TEST_PART';
OBJECT_NAME????????? SUBOBJECT_NAME??????? OBJECT_ID DATA_OBJECT_ID
-------------------- -------------------- ---------- --------------
TEST_PART??????????? P1180150???????? 180150TEST_PART??????????? P2?????????????????????? 180151???????? 180151
TEST_PART???????????????????????????????????? 180149
SQL> select * from test;
ID
----------
1
SQL> select * from test_part;
未選定行
SQL> alter table test_part exchange partition p1 with table test;
表已更改。
SQL> select * from test;
未選定行
SQL> select * from test_part;
ID
----------
1
SQL> select * from test_part partition (p1);
ID
----------
1
SQL> select object_id,data_object_id from user_objects s where s.object_name='TEST';
OBJECT_ID DATA_OBJECT_ID
---------- --------------
180148???????? 180150
SQL> select object_name,s.subobject_name,object_id, data_object_id
2??? from user_objects s
3?? where s.object_name = 'TEST_PART';
OBJECT_NAME????????? SUBOBJECT_NAME??? OBJECT_ID?? DATA_OBJECT_ID
-------------------- ---------------- ----------?? --------------
TEST_PART??????????? P1180150???????? 180148TEST_PART??????????? P2???????????????? 180151???????? 180151
TEST_PART?????????????????????????????? 180149
exchange只是在oracle的數據字典中修改了分區和表的結構。數據并未發生任何修改,因此速度很快。更詳細一點就是只是把不同object_id 對應的data_object_id交換了一下,而segment本身并沒有改變,和物理存儲位置無關,但必須是分區表和非分區表 之間才可以交換。
總結
以上是生活随笔為你收集整理的oracle分区exchange,oracle 分区表exchange原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle执行命令显示2,Oracle
- 下一篇: oracle中触发器只能用于表吗,Ora