완전히 다른 서버 (DB2)에있는 db에있는 데이터를 아카이브해야합니다. 다음 단계를 통해이 작업을 수행 할 수 있지만 성능이 문제입니다. 보관할 데이터가 너무 많습니다. 어쨌든 최적화 된 아카이브 성능으로이 작업을 수행 할 수 있습니까?DB2는 다른 서버에 DB2로 오래된 데이터를 저장합니다.
/* TEST WITH 1 TABLE */
--1. RETRIEVE IDs AND SAVE IN LIST - [USE LOOP TO PUSH RECORDS BASED ON IDs IN AN ARRAY]
SELECT ID FROM TABLE_1
WHERE CREATED_TIME >= '2013-08-07 10:06:22' AND CREATED_TIME <= '2013-08-07 11:09:43'
ORDER BY A.ID ASC
--2. DROP INDEXES [TOO SLOW!!!]
ALTER TABLE TABLE_1_ARC DROP PRIMARY KEY
--3. INSERT RECORDS INTO ARC TABLE [STORED PROCEDURE TO INSERT IN ALL TABLES???]
INSERT INTO TABLE_1_ARC
SELECT * FROM TABLE_1
WHERE CREATED_TIME >= '2013-08-07 10:06:22' AND CREATED_TIME <= '2013-08-07 11:09:43'
ORDER BY ID ASC
--LOOPING THROUGH ARRAY FROM STEP 1 WILL BE USED HERE INSTEAD OF WHERE
--4. DELETE ARCHIVED RECORDS FROM OPERATIONAL TABLE [STORED PROCEDURE TO DELETE EVERY FEW RECORDS???]
DELETE FROM TABLE_1
WHERE CREATED_TIME >= '2013-08-07 10:06:22' AND CREATED_TIME <= '2013-08-07 11:09:43'
--LOOPING THROUGH ARRAY FROM STEP 1 WILL BE USED HERE INSTEAD OF WHERE
--5. PUT INDEXES BACK [TOO SLOW!!!]
ALTER TABLE TABLE_1_ARC ADD PRIMARY KEY (ID)
이 경우 데이터베이스 스위칭을 제 3 자 도구로 처리합니다. –
아카이브 테이블이 다른 데이터베이스에있는 경우 페더레이션을 통해 2 개의 데이터베이스를 어떻게 이야기합니까? –
데이터베이스에서 읽은 후 도구를 사용하여 데이터베이스 소스를 전환하고 삽입을 시작합니다. –