在某个时刻,您决定将分区Y03Q2移动到另一个表空间 (TRANSY03Q2),该表空间可能位于一个不同类型的磁盘(一个慢一点、便宜一点的磁盘)上。为此,请首先确认您可以联机重新定义该表:
begin
dbms_redefinition.can_redef_table(
uname => ’ARUP’,
tname => ’TRANS’,
options_flag => dbms_redefinition.cons_use_rowid,
part_name => ’Y03Q2’);
end;
/
此处没有输出,因此您确认可以联机重新定义该表。接下来,创建一个临时表保存该分区的数据:
create table trans_temp
(
trans_id number,
trans_date date,
txn_type varchar2(1),
acc_no number,
tx_amt number(12,2),
status varchar2(1)
)
tablespace transy03q2
/
请注意,由于表TRANS进行了范围分区,因此您已经将该表定义为未分区表。该表在所需的表空间TRANSY03Q2中创建。如果表TRANS包含一些本地索引,则表示您已经对表TRANS_TEMP 创建了这些索引(当然是创建为未分区索引)。
现在,您就可以启动重新定义过程:
begin
dbms_redefinition.start_redef_table(
uname => ’ARUP’,
orig_table => ’TRANS’,
int_table => ’TRANS_TEMP’,
col_mapping => NULL,
options_flag => dbms_redefinition.cons_use_rowid,
part_name => ’Y03Q2’);
end;
/
该调用有几个注意事项。第一,将参数col_mapping设置为NULL;在单个分区重新定义中,该参数没有意义。第二,一个新参数part_name指定了要重新定义的分区。第三,注意其中没有 COPY_TABLE_DEPENDENTS 参数,该参数也没有意义,原因是表本身无法更改;只移动分区。
如果该表很大,此操作可能持续很长时间;因此请在操作过程中对它进行同步。
begin
dbms_redefinition.sync_interim_table(
uname => ’ARUP’,
orig_table => ’TRANS’,
int_table => ’TRANS_TEMP’,
part_name => ’Y03Q2’);
end;
/
最后,使用以下代码完成该过程
begin
dbms_redefinition.finish_redef_table(
uname => ’ARUP’,
orig_table => ’TRANS’,
int_table => ’TRANS_TEMP’,
part_name => ’Y03Q2’);
end;
此时,分区Y03Q2位于表空间TRANSY03Q2中。如果该表存在任何全局索引,则它们将被标记为UNUSABLE并且必须被重新构建。
单个分区重新定义对于跨表空间移动分区(一个常见的信息生命周期管理任务)很有用。但显而易见,其中存在几个限制。例如,您无法在重新定义过程中更改分区方法(即从范围更改为散列)或更改表的结构。
逐块地删除表
您注意到过删除一个分区的表需要多长时间吗?这是因为每个分区都是一个必须删除的段。在Oracle数据库10g第2版中,当您删除分区的表时,分区将逐个被删除。由于每个分区是单独删除的,因此所需的资源要比删除整个表少。
要演示这个新行为,您可以使用10046跟踪跟踪该会话。
alter session set events ’10046 trace name context forever, level 12’;
然后,删除该表。如果查看跟踪文件,则将看到分区表删除的代码:
delete from tabpart$ where bo# = :1
delete from partobj$ where obj#=:1
delete from partcol$ where obj#=:1
delete from subpartcol$ where obj#=:1
请注意,分区是按顺序删除的。该方法最大限度地降低了删除过程中的资源使用率并增强了性能。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
超越RDBMS:数据仓库与数据湖、数据集市
现在企业从各种来源收集的大量数据已经远远超出传统关系学数据库可处理的范畴。这引发数据仓库与数据湖的问题:何时使 […]
-
对SAP HANA数据库涉嫌知识产权盗窃的指控存疑
Enterprise Applications Consultin公司负责人Joshua Greenbaum表 […]
-
数据货币将决定企业成败
在2017年3月McKinsey公司对500多名高管的调查显示,越来越多的企业使用数据和分析来推动增长,但目前 […]
-
在HANA上实施SAP BW要做哪些准备?
在HANA上实施SAP BW可以帮助公司利用到HANA的速度和性能优势。不过,CIO及技术团队首先要注意一些关键问题。