如果我們使用ALTER TABLE RENAME PARTITION語句重命名Oracle表中的現有分區,是否需要重新創建具有新更改的分區名稱的本地分區索引?重命名ORACLE中的分區
4
A
回答
7
不,重命名分區不會影響本地分區索引。您可以輕鬆地測試:
--create table
CREATE TABLE t (
c1 DATE,
c2 NUMBER(3))
partition by range (c1) (
partition t_nov values less than (
to_date('01-12-2009 00:00:00', 'DD-MM-YYYY HH24:MI:SS')
),
partition t_dec values less than (
to_date('01-01-2010 00:00:00', 'DD-MM-YYYY HH24:MI:SS')
)
)
/
--create index
create index idx_t on t (c1) local (partition t_nov, partition t_dec);
--insert some rows
insert into t values (sysdate, 1);
insert into t values (sysdate, 1);
insert into t values (sysdate, 1);
insert into t values (sysdate, 1);
insert into t values (sysdate, 1);
insert into t values (sysdate, 1);
insert into t values (sysdate, 1);
insert into t values (sysdate, 1);
insert into t values (sysdate, 1);
insert into t values (sysdate, 1);
--gather statistics
exec dbms_stats.gather_table_stats('SYSTEM', 'T');
--set autotrace on, to determine that index is used
set autotrace on
--select indexed column
select c1 from t where c1 < sysdate+1;
--------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
--------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 11 | 88 | 1 (0)| 00:00:01 | | |
| 1 | PARTITION RANGE ITERATOR| | 11 | 88 | 1 (0)| 00:00:01 | 1 | KEY |
|* 2 | INDEX RANGE SCAN | IDX_T | 11 | 88 | 1 (0)| 00:00:01 | 1 | KEY |
--------------------------------------------------------------------------------------------------
--rename partition
alter table t rename partition t_dec to t_december;
Table altered.
select c1 from t where c1 < sysdate+1;
--------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
--------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 11 | 88 | 1 (0)| 00:00:01 | | |
| 1 | PARTITION RANGE ITERATOR| | 11 | 88 | 1 (0)| 00:00:01 | 1 | KEY |
|* 2 | INDEX RANGE SCAN | IDX_T | 11 | 88 | 1 (0)| 00:00:01 | 1 | KEY |
--------------------------------------------------------------------------------------------------
該指數仍在使用,重命名分區
+0
感謝您的精彩演示。欣賞你的時間。 – 2009-12-30 12:19:02
2
重命名分區不會影響本地分區索引,因此您不需要重建索引。
+0
感謝您的回答。 – 2009-12-30 12:19:44
相關問題
- 1. 表重命名和交換分區之間的區別
- 2. 用區分大小寫的名稱重命名文件夾
- 3. 如何重命名Google存儲分區中的對象?
- 4. 重命名之間的區別!並在Julia中重新命名爲新的DataFrame?
- 5. 在mysql中使用分區重命名錶
- 6. 重命名Crystal Reports中的Report部分
- 7. Git:重命名分支中的目錄
- 8. 重命名區分大小寫的項目
- 9. 重命名遠程分支
- 10. 在Gitkraken重命名分支?
- 11. 在github中重命名基本分支
- 12. 在TortoiseHG中重命名默認分支
- 13. 命名的列重命名
- 14. oracle調度器重命名間隔分區
- 15. 如何重新命名配置單元中的所有分區列
- 16. 重命名Eclipse的多個安裝以在OS X中區分它們Doc
- 17. 如何重命名由錯誤「-update」命名的git分支?
- 18. 重命名文件的一部分
- 19. 修復重命名的git流分支
- 20. Git的 - 重命名多個分支
- 21. 重命名目錄的一部分
- 22. IntelliJ在Java中用Spock重命名重命名 - 不重命名測試文件
- 23. 重命名Rails中
- 24. 在MonoTouch中重命名命名空間
- 25. 區分基於命名約定的類中的方法?
- 26. 重命名命名空間
- 27. 重命名wordpress中的cpt
- 28. 如何從已保存的工作區中重命名變量?
- 29. 在Windows命令(批處理文件)中重命名文件名的一部分
- 30. TFS中的分支命名
讓我知道,如果我沒有在這個問題提供足夠的細節後。 – 2009-12-30 10:15:04