Parallel Processing 에 의한 Performance의 향상.
Parallel Processing은 시간이 소요되는 Batch 성격의 작업을 H/W의
Rosource를 최대한 이용할 수 있도록 분산하여 동시에 작업을 한 후
결과를 하나로 coordinate하여 작업을 함으로써 Performance 향상에
획기적인 결과를 얻을 수 있다.
Oracle Database의 경우 version 7 에서는 Query 에서만 Parallel
Processing이 가능 했으나 Version 8 으로 가면서 부터는 Parallel
DML 모두가 가능하게 되었다.
1. PARALLEL Processing OPTION이 사용되기에 적당한 환경
- 의사 결정 애플리케이션(decision support application)이나 대용량
데이타베이스 환경 등 이러한 환경에서의 data-intensive한 연산의 성능을
향상시킨다.
- symmetric multi processor (SMP), clustered system, massively
parallel system, 하나의 시스템에 여러개의 CPU가 있는 경우 query
processing이 효과적으로 각 CPU에 할당되어 처리될 수 있다.
- datafile이 여러 개의 disk drive에 나누어져 있는 경우 query의 대상이
되는 데이타들이 하나의 disk에 모여 있다면, 하나의 query를 여러 개의
process로 나누어 동시에 작업한다 하더라도 I/O 측면에서는 효과가 없다.
(주의) 현재 사용 중인 시스템의 CPU와 disk controller 사용율이 이미 100%에
가깝다면, parallel query option이 오히려 부하를 증가시킬 뿐이므로
system resource를 증가시킨 후 parallel query option을 고려하여야 한다.
2. 실제로 운영하는 Site의 예를 들면
- Parallel Processing을 End user및 개발자에게 사용하도록 Open 한 후
개발자들이 자신의 SQL 을 Tuning 하기 보다는 Parallel Degree(여기서
Degree란 Parallel 하게 몇개의 Process 로 동시에 작업을 하겠다는 의미)
를 높여서 구성을 하다 보니 전체 System Resource 의 고갈로 인한 OLTP
업무의 심각한 Performance의 장애를 유발 시켰다.
- 따라서, Parallel Processing은 DBA 및 Admin의 통제하에 System의
resource를 감안한 안배 및 운영이 중요 하다.
3. 이러한 운영을 하기에는 사실 추가되는 인력의 투입이 필요하게 되므로 ...
- Oracle의 최근 Version 에서는 Resource Manager를 통하여 OLTP/OLAP 성격의 업무를 분리하고 할당 받을 수 있는 Systgem resource 의 배분 및 통제를 Process 가 자동으로 할 수 있게 지원 하고 있다.
4. 이러한 Parallel Processing 은 사실 하나의 Transaction 을 여러개의 Slave Process로 분리하여 동시에 작업 후 다시 하나의 결과를 만들어 내는 거의 Art에 가까운 '기술의 결정체' 라고 볼 수 있다.
원본출처 : http://www.xpert.co.kr/main/jsp/ArticleRead.jsp?xid=oracle&category=3938&totcnt=9&id=32338&tpl=0&mode=u
|