SQL> alter table big_table parallel;
테이블이 변경되었습니다.
SQL> alter session enable parallel dml;
세션이 변경되었습니다.
SQL> update big_table set status = 'done';
10000000 행이 갱신되었습니다.
SQL> -- 다른 세션에서 모니터링
SQL> select a.sid, a.program, b.start_time, b.used_ublk,
2 b.xidusn ||'.'|| b.xidslot || '.' || b.xidsqn trans_id
3 from v$session a, v$transaction b
4 where a.taddr = b.addr
5 and a.sid in ( select sid
6 from v$px_session
7 where qcsid = 33 )
8 order by sid
9 /
SID PROGRAM START_TIME USED_UBLK TRANS_ID
---------- ---------------------------------------------------------------- -------------------- ---------- -------------------
7 ORACLE.EXE (P011) 01/14/15 09:25:00 1 17.0.4
8 ORACLE.EXE (P019) 01/14/15 09:25:00 7152 25.0.2
9 ORACLE.EXE (P027) 01/14/15 09:25:00 7201 30.0.2
33 sqlplus.exe 01/14/15 09:25:00 1 1.3.621
34 ORACLE.EXE (P012) 01/14/15 09:25:00 1 5.6.810
...
223 ORACLE.EXE (P004) 01/14/15 09:25:00 1 9.25.815
224 ORACLE.EXE (P018) 01/14/15 09:25:00 7776 11.0.4
225 ORACLE.EXE (P026) 01/14/15 09:25:00 7150 28.0.2
31 개의 행이 선택되었습니다.
SQL> show parameter cpu
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count integer 8
parallel_threads_per_cpu integer 2
...
SQL> alter table big_table parallel 4;
테이블이 변경되었습니다.
SQL> update big_table set status = 'done';
10000000 행이 갱신되었습니다.
SQL> -- 다른 세션에서 모니터링
SQL> select a.sid, a.program, b.start_time, b.used_ublk,
2 b.xidusn ||'.'|| b.xidslot || '.' || b.xidsqn trans_id
3 from v$session a, v$transaction b
4 where a.taddr = b.addr
5 and a.sid in ( select sid
6 from v$px_session
7 where qcsid = 33 )
8 order by sid
9 /
SID PROGRAM START_TIME USED_UBLK TRANS_ID
---------- ---------------------------------------------------------------- -------------------- ---------- -----------
33 sqlplus.exe 01/14/15 09:46:03 1 25.18.2
38 ORACLE.EXE (P000) 01/14/15 09:46:03 1 14.22.4
65 ORACLE.EXE (P001) 01/14/15 09:46:03 1 26.1.2
66 ORACLE.EXE (P005) 01/14/15 09:46:03 1892 21.1.2
101 ORACLE.EXE (P006) 01/14/15 09:46:03 5182 6.10.787
129 ORACLE.EXE (P007) 01/14/15 09:46:03 1961 8.29.962
163 ORACLE.EXE (P002) 01/14/15 09:46:03 1 17.1.4
193 ORACLE.EXE (P003) 01/14/15 09:46:03 1 31.1.2
222 ORACLE.EXE (P004) 01/14/15 09:46:03 2265 9.30.816
9 개의 행이 선택되었습니다.
제약조건 위배 시
병렬로 수행되지 않던지 ORA-12838: cannot read / modify an object after modifying it in parallel 같은 오류가 발생할 것이다
- 강좌 URL : http://www.gurubee.net/lecture/4066
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.