日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

临时表 DML 产生redo 问题说明

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 临时表 DML 产生redo 问题说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

關于Oracle 臨時表,參考我的Blog

??????????? Oracle 臨時表

??????????? http://blog.csdn.net/tianlesoftware/archive/2009/10/20/4705283.aspx

?

Oracle 臨時表的操作,會產生redo undo

?

先看一個示例:

?

SYS@anqing1(rac1)> CREATE GLOBAL TEMPORARY TABLE dave_test? (id number,name varchar2(20)) ON COMMIT DELETE ROWS;

?

Table created.

?

SYS@anqing1(rac1)> set autotrace on

SYS@anqing1(rac1)> insert into dave_test values(1,'dave');

1 row created.

Execution Plan

----------------------------------------------------------

?

-------------------------------------------------------------------------

| Id? | Operation??????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |

-------------------------------------------------------------------------

|?? 0 | INSERT STATEMENT |????? |???? 1 |?? 100 |???? 1?? (0)| 00:00:01 |

-------------------------------------------------------------------------

?

?

Statistics

----------------------------------------------------------

????????? 2? recursive calls

????????? 8? db block gets

????????? 1? consistent gets

????????? 0? physical reads

????? ??284? redo size

??????? 662? bytes sent via SQL*Net to client

??????? 571? bytes received via SQL*Net from client

????????? 3? SQL*Net roundtrips to/from client

????????? 1? sorts (memory)

????????? 0? sorts (disk)

????????? 1? rows processed

?

SYS@anqing1(rac1)>

?

關于這些統計數據的分析,參考我的Blog

??????????? Oracle Explain Plan

??????????? http://blog.csdn.net/tianlesoftware/archive/2010/08/20/5827245.aspx

?

??????????? 在看下為什么對臨時表操作會產生redo

?

??????????? 因為我們可以對臨時表的操作進行回滾,即會產生undo數據; 但是所有undo都受到redo的保護,就是說假設此時數據庫崩潰了,下次啟動會利用redo把這些undo再次還原出來,然后利用這些undo進行反操作,撤銷上次那個崩潰的事務。

??????????? 這些undo里面可能有普通表的,也有臨時表的, redo都會把它們恢復出來。

?

??????????? 這個就是我們的一個數據庫roll forward roll back的順序問題, Crash recover 的時候必須先前滾,用redo 恢復出undo 之后,在用undo 回滾相關事務操作信息。簡單點說REDO的作用就是記錄所有的數據庫更改,包括UNDO表空間在內。

?

?

Oracle 實例恢復時 前滾(roll forward 后滾(roll back 問題

http://blog.csdn.net/tianlesoftware/archive/2011/03/29/6286330.aspx

?

?

?

?

?

-------------------------------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(滿);?? DBA2 群:62697977(滿)?? DBA3 群:62697850(滿)??

DBA 超級群:63306533(滿);? DBA4 群: 83829929? DBA5群: 142216823???

DBA6 群:158654907? 聊天 群:40132017?? 聊天2群:69087192

--加群需要在備注說明Oracle表空間和數據文件的關系,否則拒絕申請

總結

以上是生活随笔為你收集整理的临时表 DML 产生redo 问题说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。