講解Oracle資料庫逐漸增大時的歸檔處理

2021-08-29 14:48:55 字數 1910 閱讀 4068

講解oracle資料庫逐漸增大時的歸檔處理

在資料庫日漸龐大時應該如何進行歸檔?以下是一些解決的思路:

1.新建乙個表空間存放各表的歷史資料。

1.1寫乙個儲存過程搬資料,資料搬遷到歷史表後,在基表中將搬遷的資料刪除。

2.定期將歷史資料exp到磁帶中去做永久儲存。

3.歷史資料exp之後,可以清空各歷史資料表。這樣,表空間的大小實際上是很容易伸縮及控制的。

在這個過程當中,我們可以看到基本的資料由於可以定期清理到歷史資料表,繼而再清理到磁帶。因此,資料庫不會越來越大。方便備份及減少查詢時間。

具體的實現過程如下:

1.建立臨時表:

create global temporary table scott.archive_rows

(crowid varchar2(20 byte),

primarykey varchar2(15 byte)

)on commit preserve rows

/2.建立歸檔表:

sql>create table emp_archive as select * from emp_b;

3.建立歸檔記錄表:

create table scott.archive_log

(tablename varchar2(50 byte),

recordcount number,

updatedate date

)logging

nocompress

nocache

noparallel

monitoring

/4. procedure:

create or replace procedure archive_emp

(maxarchiverow number) is /* 定義歸檔的記錄數*/

v_crowid archive_rows.crowid%type; /* 存放基表的rowid*/

intloop number; /* 記數器*/

v_primarykey archive_rows.primarykey%type;

cursor c_arch_emp is

select * from archive_rows; /* 建立游標*/

begin

delete from archive_rows; /*先清空臨時表*/

commit;

insert into archive_rows

select rowid,'' from emp_b where rownum < maxarchiverow;

commit; /*將基表中指定行數的rowid插入臨時表*/

intloop:=0;

open c_arch_emp;

loop fetch c_arch_emp into v_crowid,v_primarykey;

intloop:=intloop+1;

exit when c_arch_emp%notfound;

insert into emp_archive select * from emp_b where rowid=v_crowid;

/*根據rowid,將數值插入到歸檔表中*/

commit;

delete from emp_b where rowid=v_crowid; /*將基表已歸檔資料刪除*/

commit;

if mod(intloop,200)=0 /*以200行為界記錄歸檔情況*/

then

insert into archive_log values('emp_b',intloop,sysdate);

commit;

end if;

end loop;

end archive_emp;

/

oracle資料庫資料量增大的優化措施。

oracle 資料庫資料量增大的優化措施。1 硬體優化 2 資料庫表分割槽 範圍分割槽,雜湊分割槽,列表分割槽和復合分割槽。3 分表 4 索引優化 對海量的資料處理,對大表建立索引是必行的,建立索引要考慮到具體情況,例如針對大表的分組 排序等字段,都要建立相應索引,一般還可以建立復合索引,對經常插入...

Oracle資料庫中序列用法講解

序列 sequence 是序列號生成器,可以為表中的行自動生成序列號,產生一組等間隔的數值 型別為數字 其主要的用途是生成表的主鍵值,可以在插入語句中引用,也可以通過查詢檢查當前值,或使序列增至下乙個值。建立序列需要create sequence系統許可權。序列的建立語法如下 quote creat...

史上最全講解 oracle資料庫 續

主外來鍵關係 主表 父表 從表 子表 從表中的外來鍵關聯主表中的主鍵字段 當兩張表存在主從表關係,刪除表的時候,需要注意 預設先刪除從表,再刪除主表 cascade constraints 刪除主表的同時級聯刪除主從表之間約束關係 當兩張表存在主從表關係,刪除資料的時候,需要注意 刪除主表中沒有被從...