資料來源 Link
其 實 nologging與表模式,插入模式,數據庫運行模式(archived/unarchived)都有很大的關係。force logging(強制日誌)模式通過命令:alter database force logging來使得Oracle無論什麼操作都進行redo的寫入。
其實nologging與表模式,插入模式,數據庫運行模式(archived/unarchived)都有很大的關係:
總結如下:
注意append是一種hint;
一般我們可以這樣來使用
insert /*+append+/ into mytable values(1,'alan');
數據庫在歸檔模式下
當表模式為logging狀態時,無論是append模式還是no append模式,redo都會生成。
當表模式為nologging狀態時,只有append模式,不會生成redo.
數據庫在非歸檔模式下
無論是在logging還是nologing的模式下,append的模式都不會生成redo,而no append模式下都會生成redo。
如果我想看一張表是否是logging狀態,可以這樣
select table_name,logging from dba_tables where table_name='tablename';
那麼在Oracle內部還存在一個內部參數:_disable_logging 默認是false
通過更改為true可以讓Oracle在修改表中的記錄的時候完全不記錄redo,這個參數要甚用。平時,我們只作為性能測試用。
force logging(強制日誌)模式:
通過命令:
alter database force logging來使得Oracle無論什麼操作都進行redo的寫入。
通過select force_logging from v$database可以看到當前數據庫強制日誌模式的狀態。
沒有留言:
張貼留言