oracle 11g之alter table drop unused columns checkpoint删除表不可用列系列二

结论

1,alter table drop unused columns checkpoint适用于减少不必要的undo空间消耗

2,checkpoint选项可取值有:
    不取值,默认在512条记录后发生检查点动作
    大于表记录个数,表明在处理完所有表记录后发生检查点
    小于表记录个数,表明在指定表记录后发生检查点

3,如果checkpoint选项后产生的检查点动作被中断,仅truncate table,drop table,alter table drop unused columns continue语句可以运行

4,alter table drop unused columns continue即恢复继续执行被中断的alter table drop unused columns checkpoint继续下去    


测试

1,数据库版本
SQL> select * from v$version where rownum=1;


BANNER
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production


2,开启检查点信息到告警日志
SQL> show parameter checkpoint


NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
log_checkpoint_interval              integer                0
log_checkpoint_timeout               integer                1800
log_checkpoints_to_alert             boolean                FALSE


SQL> alter system set log_checkpoints_to_alert=true;


System altered.


[oracle@seconary trace]$ tail -f alert_guowang.log 
  Current log# 2 seq# 356 mem# 0: /oracle/oradata/guowang/redo02.log
Fri Oct 16 08:18:16 2015
Thread 1 advanced to log sequence 357 (LGWR switch)
  Current log# 3 seq# 357 mem# 0: /oracle/oradata/guowang/redo03.log
Fri Oct 16 08:27:17 2015
ALTER SYSTEM SET log_checkpoints_to_alert=TRUE SCOPE=BOTH;
Fri Oct 16 08:28:44 2015
Beginning log switch checkpoint up to RBA [0x166.2.10], SCN: 11696352
Thread 1 advanced to log sequence 358 (LGWR switch)
  Current log# 1 seq# 358 mem# 0: /oracle/oradata/guowang/redo01.log


SQL> alter system checkpoint;


System altered.


Fri Oct 16 08:29:15 2015
Beginning global checkpoint up to RBA [0x166.1044.10], SCN: 11698731
Completed checkpoint up to RBA [0x166.1044.10], SCN: 11698731
Completed checkpoint up to RBA [0x166.2.10], SCN: 11696352


3,创建测试表并插入数据
SQL> conn scott/system
Connected.
SQL> create table t_checkpoint(a int,b int);


Table created.


SQL> insert into t_checkpoint select level,level from dual connect by level<=100000;


100000 rows created.


SQL> commit;


Commit complete.


4,指定测试表B列为不可用
SQL> alter table t_checkpoint set unused column b;


Table altered.


5,可见指定checkpoint选项后会发生一个检查点动作


SQL> alter table t_checkpoint drop unused columns checkpoint 500;


Table altered.


Fri Oct 16 08:34:11 2015
Beginning log switch checkpoint up to RBA [0x167.2.10], SCN: 11720087
Thread 1 advanced to log sequence 359 (LGWR
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值