成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Oraclesetunused怎么用

這篇文章主要為大家展示了“Oracle set unused怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Oracle set unused怎么用”這篇文章吧。

10年積累的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有孟津免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

Oracle set unused的用法

SET UNUSED的用法


原理:清楚掉字典信息(撤消存儲(chǔ)空間),不可恢復(fù)。

   可以使用 SET UNUSED 選項(xiàng)標(biāo)記一列或者多列不可用。

   使用DROP SET UNUSED 選項(xiàng)刪除被被標(biāo)記為不可用的列。

語(yǔ)法:

   ALTER TABLE table SET UNUSED (COLlist多個(gè)) 或者 ALTER TABLE table SET UNUSED COLUMN col單個(gè);

   ALTER TABLE table DROP UNUSED COLUMNS;


set unused不會(huì)真地刪除字段。
除了alter table drop field外,也可以
alter table set   unused field;
alter table drop unused;
set unused系統(tǒng)開銷比較小,速度較快,所以可以先set unuased,然后在系統(tǒng)負(fù)載較小時(shí),再drop。如系統(tǒng)負(fù)載不大,也可以直接drop。
不管用何種方法,都不會(huì)收回空間。


如果你有這個(gè)需求,要?jiǎng)h除某一個(gè)表格上的某些欄位,但是由於這個(gè)表格擁有非常大量的資料,如果你在尖峰時(shí)間直接執(zhí)行 ALTER TABLE ABC DROP(COLUMN);可能會(huì)收到 ORA-01562 - failed to extend rollback segment number string,
這是因?yàn)樵谶@個(gè)刪除欄位的過(guò)程中你可能會(huì)消耗光整個(gè)RBS,造成這樣的錯(cuò)誤出現(xiàn),因此這樣的做法并不是一個(gè)好方法,就算你拼命的加大RBS空間來(lái)應(yīng)付這個(gè)問題,也不會(huì)是個(gè)好主意。

        我的建議做法:

        1>

        CREATE TABLE T1 (A NUMBER,B NUMBER);

        SQL> begin 2 for i in 1 …… 100000 3 loop 4 insert into t1 values (i,100);5 end loop;6 commit;7 end;

        SQL> select count(*) from t1;

        COUNT(*)

        100000

        2>

        SQL> ALTER TABLE T1 SET UNUSED COLUMN A CASCADE CONSTRAINTS;

        不要馬上drop column,應(yīng)該先set unused讓column無(wú)法使用,避開系統(tǒng)尖峰時(shí)間再來(lái)處理刪除欄位里的資料,要注意的是一但你set unused column,這個(gè)欄位是無(wú)法再回復(fù)使用的。

        3>

        重點(diǎn)來(lái)了,若你的欄位有一百萬(wàn)筆資料,我們應(yīng)該避免一次寫入那么多的undo log,所以我準(zhǔn)備每刪除一千筆資料就commit一次。

        SQL> alter table t1 drop unused columns checkpoint 1000;

        Table altered.

        在離峰的時(shí)間進(jìn)行這樣的動(dòng)作,應(yīng)該可以避免 ORA-01562 的錯(cuò)誤發(fā)生。



剛才有個(gè)人問我如何修復(fù)被設(shè)置為UNUSED的字段,我考慮了一下,以下的方法可以恢復(fù)(以下步驟執(zhí)行前要做好備份),沒有經(jīng)驗(yàn)的DBA不要輕易嘗試。

1、創(chuàng)建實(shí)驗(yàn)表TTTA

SQL> CREATE TABLE TTTA ( A INTEGER,B INTEGER,C VARCHAR2(10),D INTEGER);

表已創(chuàng)建。

SQL> INSERT INTO TTTA VALUES (1,2,'3',4);

已創(chuàng)建 1行。

SQL> INSERT INTO TTTA VALUES (2,3,'4',5);

已創(chuàng)建 1行。

SQL> COMMIT;

提交完成。
ALTER TABLE TTTA SET UNUSED COLUMN C;

2、以下進(jìn)行恢復(fù)

SQL> SELECT OBJ# FROM OBJ$ WHERE NAME='TTTA';

      OBJ#
----------
     32067

SELECT COL#,INTCOL#,NAME FROM COL$ WHERE OBJ#=32067;
      COL#    INTCOL# NAME
---------- ---------- ------------------------------
         1          1 A
         2          2 B
         0          3 SYS_C00003_08031720:09:55$   被UNUSED的字段
         3          4 D

SQL> SELECT COLS FROM TAB$ WHERE OBJ#=32067;

      COLS
----------
         3      ------字段數(shù)變?yōu)?了


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、重啟數(shù)據(jù)庫(kù)
SQL> SELECT * FROM SCOTT.TTTA;

         A          B C                   D
---------- ---------- ---------- ----------
         1          2 3                   4
         2          3 4                   5

恢復(fù)完成

以上是“Oracle set unused怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

新聞名稱:Oraclesetunused怎么用
文章源于:http://jinyejixie.com/article44/pggche.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)站維護(hù)、網(wǎng)站建設(shè)電子商務(wù)、企業(yè)網(wǎng)站制作、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
高密市| 黄骅市| 会昌县| 浦城县| 永平县| 灵山县| 丹凤县| 肥东县| 湄潭县| 高邑县| 山西省| 右玉县| 额济纳旗| 班戈县| 博野县| 双辽市| 怀远县| 康保县| 星座| 多伦县| 科尔| 新兴县| 醴陵市| 永春县| 台东县| 三亚市| 邢台市| 辰溪县| 保定市| 灌阳县| 万源市| 平南县| 丽江市| 桂林市| 定日县| 五峰| 保亭| 寻甸| 保定市| 搜索| 定结县|