Oracle中實現大表資料快速轉移

2021-05-11 14:38:16 字數 938 閱讀 9337

如果你要把

oracle

裡的大量資料

(80m以上)

轉移到另外的使用者,另外的表空間裡。可以用下面介紹的快速轉移資料的方法。

一、建新表的方式

create table target_tablename tablespace

target_tablespace_name nologging

pctfree 10 pctused 60

storage(initial 5m next 5m minextents 1

maxextents unlimited pctincrease 0)

as select * from username.source_tablename where 條件;

注意事項:

新建的表沒有原來表的索引和預設值

, 只有非空

(not null)

的約束素條件可以繼承過來

,其它的約束條件或索引需要重新建立。

二、直接插入的方法

select * from username.source_tablename where

條件;

commit;

注意事項: 用

的方法會對

target_tablename

產生級別為

6的獨佔鎖,如果執行此命令時還有對

target_tablename

的dml

操作會排隊在它後面,對

oltp

系統在用的表操作是不合適的。

說明:這兩種方法轉移資料時沒有用

sga裡資料緩衝區和事物處理的回滾段

, 也不寫聯機事物日誌,就象資料庫裝載工具

solload

一樣直接把資料寫到物理檔案,速度是很快的。在

oracle8i

以後的版本都可以使用。

Oracle 大表快速建立索引

第一步 show parameter workarea size policy alter session set workarea size policy manual 設定手動管理pga 第二步 show parameter sort area size 設定使用1g的pga alter ses...

Oracle中快速刪除所有表資料

一 禁止所有的外來鍵約束 在pl sql developer下執行如下語句 select alter table table name disable constraint constraint name from user constraints where constraint type r 把...

Oracle如何快速操作千萬級大表資料

不管oracle有多牛,乙個上千萬級記錄資料的表操作起來還是很慢,是超級慢.最近公司處理乙個接近一億記錄數的表,需要按時間刪除前幾個月的資料,這個就頭疼了.就是統計此表的總記錄數都要處理10多分鐘,更不用說根據時間條件去刪除資料了.現在說說我在操作大表時遇到的問題吧.剛開始我使用的是這個sql de...