国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

講解Oracle數(shù)據(jù)庫(kù)逐漸增大時(shí)的歸檔處理

瀏覽:108日期:2023-11-29 12:38:24
問(wèn):在數(shù)據(jù)庫(kù)日漸龐大時(shí)應(yīng)該如何進(jìn)行歸檔?

答:以下是一些解決的思路:

1.新建一個(gè)表空間存放各表的歷史數(shù)據(jù)。

1.1寫(xiě)一個(gè)存儲(chǔ)過(guò)程搬數(shù)據(jù),數(shù)據(jù)搬遷到歷史表后,在基表中將搬遷的數(shù)據(jù)刪除。

2.定期將歷史數(shù)據(jù)exp到磁帶中去做永久保存。

3.歷史數(shù)據(jù)exp之后,可以清空各歷史數(shù)據(jù)表。這樣,表空間的大小實(shí)際上是很容易伸縮及控制的。

在這個(gè)過(guò)程當(dāng)中,我們可以看到基本的數(shù)據(jù)由于可以定期清理到歷史數(shù)據(jù)表,繼而再清理到磁帶。因此,數(shù)據(jù)庫(kù)不會(huì)越來(lái)越大。方便備份及減少查詢時(shí)間。

具體的實(shí)現(xiàn)過(guò)程如下:

1.創(chuàng)建臨時(shí)表:

CREATE GLOBAL TEMPORARY TABLE SCOTT.ARCHIVE_ROWS

(

CROWID VARCHAR2(20 BYTE),

PRIMARYKEY VARCHAR2(15 BYTE)

)

ON COMMIT PRESERVE ROWS

/

2.創(chuàng)建歸檔表:

sql>create table emp_archive as select * from emp_b;

3.創(chuàng)建歸檔記錄表:

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 /* 定義歸檔的記錄數(shù)*/

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

intLoop number; /* 記數(shù)器*/

v_primarykey archive_rows.PRIMARYKEY%type;

CURSOR C_ARCH_EMP IS

SELECT * FROM ARCHIVE_ROWS; /* 創(chuàng)建游標(biāo)*/

BEGIN

DELETE FROM ARCHIVE_ROWS; /*先清空臨時(shí)表*/

COMMIT;

INSERT INTO ARCHIVE_ROWS

SELECT ROWID,'' FROM EMP_B WHERE ROWNUM < MAXARCHIVEROW;

COMMIT; /*將基表中指定行數(shù)的rowid插入臨時(shí)表*/

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;

/*根據(jù)rowid,將數(shù)值插入到歸檔表中*/

COMMIT;

DELETE FROM EMP_B WHERE ROWID=V_CROWID; /*將基表已歸檔數(shù)據(jù)刪除*/

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;

/

主站蜘蛛池模板: 桂林市| 江阴市| 曲周县| 太原市| 郓城县| 广汉市| 尼玛县| 北宁市| 泸溪县| 玛纳斯县| 梅河口市| 宁津县| 林芝县| 平凉市| 阿坝| 肃南| 叙永县| 华蓥市| 兰考县| 马鞍山市| 肥西县| 大荔县| 兰考县| 霍邱县| 扶风县| 辽源市| 梁山县| 新巴尔虎左旗| 永川市| 普格县| 佛教| 衢州市| 临海市| 五原县| 顺平县| 白河县| 甘肃省| 临清市| 会昌县| 临清市| 漾濞|