Oracle8 Core Technology Seminar 1997109,31
Oracle8 OS: UNIX Oracle8 : Release8.0.3 Oracle8 Quick Start Package Lesson 5 -- Enhancements to Distributed Facilities Oracle8 -- -
Oracle8 LOB Oracle8 -- -
Updates Parallel Stream Master Master Oracle8 -- -
1. Oracle 2. Oracle 3. Oracle 4. Oracle8 -- -
51 2 CREATE TABLE table0 (id NUMBER PRIMARY KEY, col1 CHAR(10),...,col50 CHAR(10)); CREATE TABLE table1 (id NUMBER PRIMARY KEY, col1 CHAR(10),...,col50 CHAR(10)); 2 1000 UPDATE 1 UPDATE COMMIT ( PL/SQL UPDATE ) BEGIN FOR i IN 1..1000 LOOP UPDATE table0 SET col1 = 'u' TO_CHAR(i) '.1' WHERE id = i; COMMIT; END LOOP; END; / BEGIN FOR i IN 1..1000 LOOP UPDATE table1 SET col1 = 'u' TO_CHAR(i) '.1' WHERE id = i; END LOOP; COMMIT; END; / Oracle8 -- -
parallelism0 4 parallelism1 Oracle8 -- -
Oracle8 -- -
Oracle MIN_COMMUNICATION TRUE DBMS_REPCAT ( TRUE ) CREATE_SNAPSHOT_REPOBJECT GENERATE_REPLICATION_SUPPORT GENERATE_REPLICATION_TRIGGER GENERATE_SNAPSHOT_SUPPORT SEND_AND_COMPARE_OLD_VALUES LOB Oracle7 MIN_COMMUNICATION FALSE Oracle8 -- -
emp empno(pk) ename sal deptno 1234 SCOTT 150 20 new old UPDATE emp SET sal = 200; 1234 SCOTT 200 20 1234 SCOTT 150 20 EXECUTE DBMS_REPCAT. GENERATE_REPLICATION_SUPPORT( SCOTT, EMP, TABLE, min_communication => FALSE); min_communication FALSE Oracle7 Oracle8 -- -
emp empno(pk) ename sal deptno 1234 SCOTT 150 20 new old UPDATE emp SET sal = 200; 1234 SCOTT 200 20 1234 SCOTT 150 20 EXECUTE DBMS_REPCAT. GENERATE_REPLICATION_SUPPORT( SCOTT, EMP, TABLE, min_communication => TRUE); min_communication TRUE Oracle8 -- -
emp empno(pk) ename sal deptno 1234 SCOTT 150 20 new old UPDATE emp SET sal = 200; 1234 SCOTT 200 20 1234 SCOTT 150 20 EXECUTE DBMS_REPCAT. SEND_AND_COMPARE_OLD_VALUES( SCOTT, EMP, ENAME,DEPTNO, UPDATE,FALSE); EXECUTE DBMS_REPCAT. GENERATE_REPLICATION_SUPPORT( SCOTT, EMP, TABLE, min_communication => TRUE); SEND_AND_COMPARE_OLD_VALUES DBMS_REPCAT.SEND_AND_COMPARE_OLD_VALUES SEND_AND_COMPARE_OLD_VALUES Oracle8 -- -
RS001 RS050 RS100 Oracle7 min_communication =>FALSE min_communication =>TRUE SEND_AND_COMPARE _OLD_VALUES RS001 (id NUMBER PRIMARY KEY, col1 CHAR(10)) RS050 (id NUMBER PRIMARY KEY, col1 CHAR(10),..., col50 CHAR(10)) RS100 (id NUMBER PRIMARY KEY, col1 CHAR(10),..., col100 CHAR(10)) 1000 col1 1 Oracle8 -- -
Oracle8 -- -
Oracle 2 ( ) after-row PL/SQL Oracle 3 ( Oracle7 ) 1. ($RT ) 2. (TLOG$ ) 3. (USTRG$ ) GENERATE_REPLICATION_SUPPORT Oracle8 -- -
Oracle8 -- - min_communication SEND_AND_COMPARE_OLD_VALUE Update! void trig(){ return; }
RS001RS050RS100 Oracle7 min_communication =>FALSE Oracle7 min_communication=>false Oracle7 Oracle8 -- -
2PC Parallelism 1 Oracle8 Parallelism 1 Oracle8 -- -
Oracle8 -- - ( ) (DBMS_DEFER_SYS.PUSH ) (DBMS_DEFER_SYS.PURGE ) (DBMS_DEFER_SYS.EXECUTE ) Oracle8 CPU PUSH PURGE PURGE SCHEDULE_EXECUTION DBMS_DEFER_SYS.EXECUTE DBMS_DEFER_SYS.PUSH DBMS_DEFER_SYS.PURGE Oracle7 Oracle8
Oracle8 -- -
EXECUTE DBMS_REPCAT_ADMIN. GRANT_ADMIN_ANY_SCHEMA( REPADMIN ); EXECUTE DBMS_DEFER_SYS. REGISTER_PROPAGATOR( REPADMIN ); Oracle8 (repadmin) (repuser) Repadmin DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA Repuser DBMS_REPCAT_ADMIN.GRANT_ADMIN_SCHEMA (Propagator) DBMS_DEFER_SYS.REGISTER_PROPAGATOR ( ) EXECUTE ANY PROCEDURE Oracle8 -- -
Oracle8 -- -
Oracle8 Oracle8 SUSPEND_MASTER_ACTIVITYRESUME_MASTER_ACTIVITY Oracle7 Oracle8 -- -
Oracle8 -- -
CREATE SNAPSHOT schema. snapshot REFRESH WITH WITH FAST START WITH date NEXT date COMPLETE FORCE PRIMARY KEY ROWID PRIMARY KEY ROWID FOR UPDATE AS subquery With WITH PRIMARY KEY Oracle8 ROWID ( V7,V8ROWID ) CREATE SNAPSHOT DUAL Oracle8 -- -
SQL*Loader Oracle8 1 ( ) 2 WHERE 1=2 ) 3 4 DBMS_SNAPSHOT.BEGIN_LOAD 5 DBMS_SNAPSHOT.END_LOAD Oracle8 -- -
ROWID Oracle7 ROWID ROWID Oracle8 DBMS_SNAPSHOT BEGIN_TABLE_REORGANIZATION END_TABLE_REORGANIZATION Oracle8 -- -
1. BEGIN_TABLE_REORGANIZATION 2. 3. (TRUNCATE) 4. 5. END_TABLE_REORGANIZATION BEGIN_TABLE_REORGANIZATION ( ) SQL (ALTER TRIGGER) ALTER TRIGGER BEGEN(END)_TABLE_REORGANIZATION Oracle8 -- -
Oracle8 -- -
DBA_REGISTERED_SNAPSHOTS DBA_REGISTERED_SNAPSHOTS (optional). ( ROWID ) DBA_REGISTERED_SNAPSHOTS DBA_SNAPSHOT_LOGS Oracle8 -- -
Oracle8 -- -
(deferrable) PL/SQL Oracle8 -- -
table0 A(PK) B(U) 123 234 345 10 20 40 C POCHI TARO JIRO UPDATE table0 SET B = B + 10; (123,10,POCHI) (123,20,POCHI) (234,20,TARO) (234,30,TARO) (345,40,JIRO) (345,50,JIRO) A(PK) B(U) C 123 10 20 POCHI 234 20 30 TARO 345 40 50 JIRO COMMIT COMMIT : SQL Oracle8 -- -
Oracle8 -- -
Example CREATE SNAPSHOT orders REFRESH FAST FOR UPDATE AS SELECT * FROM orders@mas o WHERE EXISTS (SELECT c_id FROM customer@mas c WHERE o.c_id = c.c_id AND zip = 19555); NOT OR Oracle8 -- -
Oracle8 -- -
LOB Oracle8 -- -
LOB Oracle8 BLOB CLOB NCLOB LONG RAW LOB MIN_COMMUNICATION TRUE LOB Oracle8 -- -
LOB Oracle8 -- -
Oracle8 -- -
LOB Oracle8 -- -
Oracle8 V8.0,V7.3 ( ) ROWID WHERE ( ) (WHERE ) Next Date Interval Oracle8 -- -
Oracle8 Oracle8 Oracle8 Oracle8 Oracle8 -- -