如何使用Oracle设置未使用
Oracle set unused 的使用
SET UNUSED 的使用
原理:清除字典信息(撤消存储空间),且不可恢复。
您可以使用 SET UNUSED 选项将一列或多列标记为不可用。
使用 DROP SET UNUSED 选项删除标记为不可用的列。
语法:
ALTER TABLE table SET UNUSED(多个 COLlist)或 ALTER TABLE 表 SET UN使用的列 col single;
ALTER TABLE 表 DROP UNUSED COLUMNS;
设置未使用实际上并不会删除该字段。
alter table set unused field;
alter table drop unused ;
设置unused的系统开销比较小,速度也比较快,所以可以先设置unused,当系统负载小时再drop。如果系统负载不重,也可以直接掉。
无论使用什么方法,空间都不会被回收。
如果你有这个需求,你需要删除某个表上的某些字段,但由于这张表有一个 ve数据量较大时,如果在高峰时段直接执行ALTER TABLE ABC DROP (COLUMN);您可能会收到 ORA-01562 - failed to Extend rollback segment number string,
这是因为在删除字段的过程中,您可能会消耗整个 RBS,从而导致此类错误。因此,这种做法并不是一个好方法,即使你拼命增加RBS空间来应对这个问题。 ,也不是一个好主意。
我建议的方法:
1 >
创建表 T1(A 数字,B 数字);
SQL> begin 2 for i in 1... 100000 3 循环 4 insert into t1 值(i, 100); 5结束循环; 6 提交; 7结束;
SQL> select count (*) from t1 ;
COUNT(*)
100000
2>
SQL> ALTER TABLE T1 设置未使用的列 A 级联约束;
不要立即删除该列,应先设置为未使用,使该列无法使用。避开系统高峰时段,然后删除数据需要注意的是,一旦设置了未使用的列,该列将无法恢复使用。.
3>
重点来了,如果你的字段有一百万条数据,我们应该避免一次写这么多undo log,所以我打算每删除一千条数据就提交一次。
SQL> alter 表 t1 删除未使用的列检查点 1000;
表已更改。
在非高峰时段执行此操作应避免 ORA-01562 错误。
有人刚刚问我如何修复设置为 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;
提交完成。
更改选项卡LE TTTA 设置未使用的 C 列;
2.恢复如下
SQL> SELECT OBJ# FROM OBJ$ WHERE NAME='TTTA';
OBJ#< br data-filtered="filtered"/>---------
32067
从 COL$ 中选择 COL#、INTCOL#、NAME OBJ#=32067;
COL# INTCOL# NAME
---------- -------- -- ---------------------------------- -----------
1 1 A
2 2 B
0 3 SYS_C00003_08031720:09:55$ 未使用的字段
3 4 D
SQL> SELECT COLS FROM TAB$ WHERE OBJ#=32067;
COLS
-------- ----
3 ------字段数量变成了3
SQL> UPDATE COL $ SET COL#=INTCOL# WHERE OBJ#=32067;
已更新 4 行。
SQL> UPDATE TAB$ SET COLS=COLS+1 WHERE OBJ#=32067;
1 行已更新。
更新 COL$ SET NAME='C' WHEREOBJ#=32067 AND COL#=3;
更新 COL$ SET PROPERTY=0 WHERE OBJ#=32067;
SQL> COMMIT;
3.重新启动数据库
SQL> SELECT * FROM SCOTT.TTTA;
A A B C D
--- ----- -- ---------- ---------- ----------
1 2 4
以上就是《如何使用Oracle设置未使用》一文的全部内容。感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。如果您想了解更多知识,请关注行业资讯频道!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何使用Oracle设置未使用