Oracle set unused的用法
来源:互联网 发布:mac安装应用程序 编辑:程序博客网 时间:2024/05/16 03:36
Oracle set unused的用法
原理:清楚掉字典信息(撤消存储空间),不可恢复。
语法:
set unused不会真地删除字段。
除了alter table drop field外,也可以
alter table set
alter table drop unused;
set unused系统开销比较小,速度较快,所以可以先set unuased,然后在系统负载较小时,再drop。如系统负载不大,也可以直接drop。
不管用何种方法,都不会收回空间。
如果你有这个需求,要删除某一个表格上的某些栏位,但是由於这个表格拥有非常大量的资料,如果你在尖峰时间直接执行 ALTER TABLE ABC DROP (COLUMN);可能会收到 ORA-01562 - failed to extend rollback segment number string,
这是因为在这个删除栏位的过程中你可能会消耗光整个RBS,造成这样的错误出现,因此这样的做法并不是一个好方法,就算你拼命的加大RBS空间来应付这个问题,也不会是个好主意。
刚才有个人问我如何修复被设置为UNUSED的字段,我考虑了一下,以下的方法可以恢复(以下步骤执行前要做好备份),没有经验的DBA不要轻易尝试。
1、创建实验表TTTA
SQL> CREATE TABLE TTTA ( A INTEGER,B INTEGER,C VARCHAR2(10),D INTEGER);
表已创建。
SQL> INSERT INTO TTTA VALUES (1,2,'3',4);
已创建 1 行。
SQL> INSERT INTO TTTA VALUES (2,3,'4',5);
已创建 1 行。
SQL> COMMIT;
提交完成。
ALTER TABLE TTTA SET UNUSED COLUMN C;
2、以下进行恢复
SQL> SELECT OBJ# FROM OBJ$ WHERE NAME='TTTA';
----------
SELECT COL#,INTCOL#,NAME FROM COL$ WHERE OBJ#=32067;
---------- ---------- ------------------------------
SQL> SELECT COLS FROM TAB$ WHERE OBJ#=32067;
----------
SQL> UPDATE COL$ SET COL#=INTCOL# WHERE OBJ#=32067;
已更新4行。
SQL> UPDATE TAB$ SET COLS=COLS+1 WHERE OBJ#=32067;
已更新 1 行。
UPDATE COL$ SET NAME='C' WHERE OBJ#=32067 AND COL#=3;
UPDATE COL$ SET PROPERTY=0 WHERE OBJ#=32067;
SQL> COMMIT;
3、重启数据库
SQL> SELECT * FROM SCOTT.TTTA;
---------- ---------- ---------- ----------
恢复完成
- Oracle set unused的用法
- Oracle set unused的用法
- Oracle set unused的用法
- Oracle set unused的用法
- Oracle set unused的用法
- Oracle set unused的用法
- Oracle SET UNUSED的用法
- Oracle set unused的用法
- ORACLE删除字段(set unused的用法)
- ORACLE删除字段(set unused的用法)
- ORACLE删除字段(set unused的用法)
- set unused的用法(ORACLE删…
- alter set unused用法
- ORACLE删除字段(set unused…
- unused的用法和恢复
- 【转】dcba的文章:Oracle的SET UNUSED COLUMN操作到底做了什么?
- 恢复Set unused的字段数据
- unused用法
- Mina源码阅读笔记(一)-整体解读
- iOS程序性能优化
- 字符驱动程序设计学习笔记4-1
- Mina源码阅读笔记(二)- IoBuffer的封装
- 求属性集的闭包和函数依赖的闭包算法(一)
- Oracle set unused的用法
- SPI协议再读
- Mina源码阅读笔记(三)-Mina的连接IoAccpetor
- iOS性能优化策略
- CStringArray使用方法(1)
- javadoc生成注释文档
- bubble
- 程序员面试宝典学习笔记——删除C/C++代码中的注释
- one-wire DS2431