【Oracle】append
我們在生產環境中經常遇到需要往表中插入大量數據的情況,怎么樣才能讓插入數據的速度變快呢?Oracle中的append簡直就是神器!!沒圖說個**,直接上圖:
是不是看暈了?哈哈,莫慌,請看下面總結:
1. 數據庫為歸檔模式,必須同時有nologging和append才可以;
2. 數據庫為非歸檔模式,只需要append就可以了。
為什么使用了append就能提高速度呢?這是因為append可以使數據庫在高水位線之上直接插入數據,相對于普通插入,在做rollback的時候需要更少的操作(加了append后的insert,在做rollback時直接把高水位線降到原來位置),所以就可以產生更少的redo。
PS:提供一下實驗可能會用的SQL
1. 查詢數據庫狀態
(1)SELECT name,log_mode FROM v$database;
(2)ARCHIVE LOG LIST;
2. 修改數據庫歸檔狀態
步驟1:shutdowm immediate
步驟2:startup mount
步驟3:alter database archivelog; 或者 alter database noarchivelog;
步驟4:alter database open;
3. 查詢redo和undo量
select name,value from (select b.name,a.value from v$mystat a,v$statname b where a.STATISTIC#=b.statistic#) where name='redo size' or name like 'undo change%';
The End!
總結
以上是生活随笔為你收集整理的【Oracle】append的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL索引的建立与实现
- 下一篇: substrate 编译出错unreso