oracle 12C 新特性之臨時undo控制
1 Oracle 12C 臨時undo
在ORACLE 8i中引進了全域性臨時表,而且把臨時表的資料儲存在臨時表空間以減少資源開銷。全域性臨時表在臨時表空間的資料會隨著一個事務或者一個會話而結束。一個臨時表上執行dml操作自身不產生redo,因為這些資料是儲存在臨時表空間,但是這些操作會產生undo,而undo儲存是永久表空間,進而undo反過來會產生redo。而對於這些臨時表是不需要恢復的,因此這些redo是不是可以不要產生,在ORACLE 12C中引進了Temporary undo的功能(temp_undo_enabled引數控制),很大程度上解決了該問題。----參考自xifenfei
根據臨時undo作用,我們進行在臨時表建立中的redo日誌生成情況的觀看。
1.1 關閉臨時undo設定
SQL> show user;
USER is "SCOTT"
SQL> show con_name
CON_NAME
------------------------------
PDBA
SQL> select name, value from v$mystat natural join v$statname where name in ('redo entries','redo size');
NAME VALUE
---------------------------------------------------------------- ----------
redo entries 2
redo size 736
SQL> create global temporary table temp_gui as select * from dba_objects where 1=2;
Table created.
SQL> select name, value from v$mystat natural join v$statname where name in ('redo entries','redo size');
NAME VALUE
---------------------------------------------------------------- ----------
redo entries 105
redo size 28364
可以看出,在只有ddl操作的情況下,redo變化情況還是非常明顯的。
SQL> insert into temp_gui select * from dba_objects;
91718 rows created.
SQL> select name, value from v$mystat natural join v$statname where name in ('redo entries','redo size');
NAME VALUE
---------------------------------------------------------------- ----------
redo entries 2948
redo size 632172
從上面的結果可以看到,在有dml操作(inert)時,產生了大量的redo。Redo日誌的變化非常的明顯。
SQL> show parameter temp_undo
NAME TYPE VALUE
------------------------------------------------------
temp_undo_enabled boolean FALSE
1.2 啟用臨時undo設定
重新登入會話,修改臨時undo引數測試
SQL> alter session set temp_undo_enabled=true;
Session altered.
SQL> show parameter temp_undo
NAME TYPE VALUE
------------------------------------ -----------
temp_undo_enabled boolean TRUE
SQL> select name, value from v$mystat natural join v$statname where name in ('redo entries','redo size');
NAME VALUE
---------------------------------------------------------------- ----------
redo entries 2
redo size 736
SQL> insert into temp_gui select * from dba_objects;
91718 rows created.
SQL> select name, value from v$mystat natural join v$statname where name in ('redo entries','redo size');
NAME VALUE
---------------------------------------------------------------- ----------
redo entries 3
redo size 1016
從上面結果可以看到,此次測試中,redo資料的產生極其的小。
我們做多次的資料inert看看結果:
SQL> insert into temp_gui select * from dba_objects;
91718 rows created.
SQL> select name, value from v$mystat natural join v$statname where name in ('redo entries','redo size');
NAME VALUE
---------------------------------------------------------------- ----------
redo entries 3
redo size 1016
SQL> insert into temp_gui select * from dba_objects;
91718 rows created.
SQL> select name, value from v$mystat natural join v$statname where name in ('redo entries','redo size');
NAME VALUE
---------------------------------------------------------------- ----------
redo entries 3
redo size 1016
SQL> select count(*) from temp_gui;
COUNT(*)
----------
275154
SQL> select name, value from v$mystat natural join v$statname where name in ('redo entries','redo size');
NAME VALUE
---------------------------------------------------------------- ----------
redo entries 3
redo size 1016
同樣沒有新的redo資料產生。
結論:
1、在oracle 12C中,提供了關於全域性臨時變redo生成控制的引數temp_undo_enabled,該引數預設為false,此時臨時表會產生一定量的redo資訊,而當將該引數修改為true時,將抑止redo資訊的產生,從而大大節省redo的儲存空間以及在一定的程度上降低了資料庫效能的開銷。
版權所有,轉載請註明出處
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28612416/viewspace-1402349/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12c 新特性之臨時Undo--temp_undo_enabledOracle
- Oracle 12c 新特性 - 臨時表undo(TEMP UNDO)Oracle
- oracle 12c 新特性 Temporary UNDO 臨時回滾段Oracle
- Oracle 12c 新特性之 temp undoOracle
- oracle12c新特性(5)- 臨時undoOracle
- Oracle12c中效能最佳化&功能增強新特性之臨時undoOracle
- Oracle 12C R2新特性-本地UNDO模式(LOCAL_UNDO_ENABLED)Oracle模式
- Oracle 12c新特性之Sequence的Session特性OracleSession
- Oracle 12C 新特性之級聯truncateOracle
- Oracle 12C 新特性之 恢復表Oracle
- Oracle 12c新特性Oracle
- oracle 12c 新特性之不可見欄位Oracle
- Oracle 12c 新特性(四)Oracle
- Oracle 12c 新特性(三)Oracle
- Oracle 12c 新特性(二)Oracle
- Oracle 12c 新特性(一)Oracle
- oracle10G新特性之臨時表空間組的應用Oracle
- lockdown profile 12c之後的許可權控制新特性
- Oracle 12C新特性-History命令Oracle
- Oracle 12c 兩個新特性Oracle
- Oracle 12C新特性In-MemoryOracle
- Oracle GoldenGate 12c 新特性OracleGo
- Oracle 12c新特性之——TABLE ACCESS BY INDEX ROWID BATCHEDOracleIndexBAT
- Oracle 12c新特性--ASMFD(ASM Filter Driver)特性OracleASMFilter
- 11.2新特性之不可見索引-臨時統計資訊索引
- Oracle 12c DG新特性Far SyncOracle
- ORACLE 12C新特性——CDB與PDBOracle
- 12c RMAN新特性之Recover Table
- Oracle 12c新特性之:APPROX_COUNT_DISTINCT 函式OracleAPP函式
- Oracle goldengate 12c 新特性之完美支援Active Data GuardOracleGo
- Oracle 12C 新特性之表分割槽部分索引(Partial Indexes)Oracle索引Index
- Oracle 12C 新特性之 sqlplus檢視History命令OracleSQL
- Oracle 12C 新特性之資料檔案線上遷移Oracle
- oracle全域性臨時表的特性Oracle
- Oracle 11g 新特性 -- 臨時表空間收縮(轉)(Oracle
- Oracle10新特性:臨時表空間組(temporary tablespace group)Oracle
- [20130808]12c新特性Temporary undo.txt
- Oracle 12C新特性-RMAN恢復表Oracle