OCP考试第19题

19. A PL/SQL procedure queries only those columns of a redefined(重定义) table that were unchanged by the online table redefinition. What happens to the PL/SQL procedure after the online table redefinition?

表的重定义之后选取的字段会发生什么变化?

A. It remains valid.

B. It becomes invalid for all options of online table redefinition but automatically gets revalidated the next time it is used.

C. It becomes invalid for all options of online table redefinition and is automatically recompiled during online redefinition of the table.

D. It becomes invalid only if the storage parameters have been modified and it automatically gets revalidated the next time it is used.

 

知识点:

Oracle 支持在线重定义表,也就是说我们可以在修改表结构(DDL)的同时进行相关的DQL、DML操作,使得前端的DML根本感觉不到表结构实际上已经发生了变化,对于用户而言是完全透明的。

其实质是Oracle使用了智能物化视图及物化视图日志的方式。在对象结构重组期间,表现为一个本地对象的复制,重组期间发生的任何变化都会被刷新到最新。

在线表重定义可以达到以下的目的:
1).修改表或集群的存储参数。
2).移动表或集群到不同的表空间。
3).增加,修改或者DROP表或集群的一个或多个字段。
4).改变分区结构。
5).改变单一表分区的物理属性,包括一定它到相同用户的不同表空间下。
6).改变物化视图日志的物理属性或者Oracle Streams高级队列队列表。
7).添加并行查询支持。
8).重建表或者集群减少碎片,在很多情况下,在线段shrink是减少碎片更容易的方法。
9).将普通表转换为IOT,或者将IOT转换为普通表。
10).转换一个相关表到表的对象字段,或者反向转换。
11).转换一个对象表到相关的表或者表的对象字段,或者反向转换。
在线重定义表的步骤

1.选择重定义方法:by key或者by rowid

2.验证表是否能被在线重定义。 CAN_REDEF_TABLE

3.创建一个空的中间表 : 目标表(重定义之后的结构)的中间表

4.rowid启动行迁移功能。

5.大表启用会话并行功能。

ALTER SESSION FORCE PARALLEL DML PARALLEL degree-of-parallelism;
ALTER SESSION FORCE PARALLEL QUERY PARALLEL degree-of-parallelism;

6.开始在线重定义过程:

表在被重新定义的整个过程中,查询和DML操作仍然是可执行的。
如果START_REDEF_TABLE以为某种原因失败,必须调用ABORT_REDEF_TABLE过程,否则接下来重新定义表将失败。

7.拷贝依赖的对象:

使用COPY_TABLE_DEPENDENTS过程自动创建中间表的依赖对象;

可以手动创建中间表的依赖对象,并且注册它们。

8.同步被重定义的表到临时表

(调用过程sync_interim_table,此步可选)

9.完成在线重定义过程。

FINISH_REDEF_TABLE

10.处理M_ROW$$字段:

使用rowid在线重定义,COMPATIBLE初始化参数设置为10.1.0或者更低

ALTER TABLE table_name set UNUSED(M_ROW$$);

COMPATIBLE初始化参数为10.2.0或者更高

ALTER TABLE ... DROP UNUSED COLUMNS语句DROP该字段

11.DROP中间表。

 

 

参考

http://blog.itpub.net/23135684/viewspace-1765128/

http://blog.sina.com.cn/s/blog_61cd89f60102ed7p.html

https://blog.csdn.net/leshami/article/details/11760417

 

答案 A

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值