전문가를 위한 오라클 데이터베이스 아키텍처 (2014년)
병렬 처리 사용 시기 0 0 85,522

by 구루비스터디 병렬처리 [2018.09.27]


병렬처리

이 장의 목적

  • 어떤 문제를 해결하는데 병렬처리가 적합한가에 대한 이해를 도우려는 것이다.


병렬처리

  • 오라클 Enterprise Edition의 기능 중 하나이다.
  • 대량의 Serial 작업(Query, 일반적인 DML, DDL)을 작은 단위로 나누어 동시에 처리할 수 있는 기능이다.
  • 큰 작업을 작은 단위의 작업으로 나누어 동시에 처리함으로써 전체 작업에 소용되는 총 시간을 줄이는 것이 목적이다.


수행방식

병렬도 4로 대량 테이블을 full table scan한다면
  1. 4개의 parallel 세션(p001~p004)이 서로 다른 부분의 데이터를 읽어 처리하고(producer)
  2. 최종적으로 쿼리전체를 총괄하는 조정세션에 결과를 전달한다 (cordinator)
  3. 정렬을 해야 한다면 추가 parallel세션(p005~p008)이 이를 수행하고(consummer) 조정세션에 결과를 전달한다



이장에서 다룰 내용

  • 병렬 쿼리 : '단일 쿼리 (single query)' 를 여러 개의 운영체제 프로세스 또는 쓰레드를 사용해서 수행하는 오라클의 기능이다.
  • 병럴 DUMP DML : 이것은 병렬 쿼리와 매우 비슷하나, 병렬 처리를 사용해서 변경 (INSERT ,UPDATE, DELETE, MERGE)하는 데 사용된다.
  • 병렬 DDL : 병렬 DDL은 대량의 DDL 작업을 병렬로 수행하는 오라클의 기능이다
  • 병렬 복구 : 장애를 복구하는데 걸리는 시간을 줄이기 위해 병렬로 인스턴스 또는 미디어 복구를 수행하는 기능이다.
  • 절차적 병렬 기능 : 사용자가 개발한 코드를 병렬로 실행하기 위한 2가지 기능
    • 방법1 : 오라클이 제공하는 방식으로 개발자가 작성한 PL/SQL 코드를 병렬로 실행하는 방법이다
    • 방법2 : 개발된 코드가 병렬도 실행되도록 설계하는 'do-it-yourself 병렬 처리'


병렬처리사용시기

  • Parallel query 옵션은 반드시 확장성을 보장하지 않는다.


  • 병렬 처리는 대량의 작업이면서 충분한 자원이 있을 때 탁월한 방안이다.
  • 몇 초 소요되는 작업을 병렬로 실행할 때 더 빨라진다는 것은 불확실하며, 오히려 그 반대가 될 가능성이 더 높다.
  • 이미 자원이 부족하다면(자원이 모두 활용되고 있다면) 병렬 처리를 추가하는 것은 상황을 더 악화시킬 것이다.


<고려사항>

  • 충분한 I/O (iops/channel)
  • 충분한 여유CPU


병렬처리비유

  • 한 페이지 요약 : 한 사람이 작성해야 할 분량을 여러 사람이 작성하게 되면 관리비용이 부담스럽다
  • 10장으로 이루어진 보고서 : 각 부분별로 담당자를 정해 동시에 진행하면 빨리 처리할 수 있다
"데이터베이스 스터디모임" 에서 2014년에 "전문가를 위한 오라클 데이터베이스 아키텍처 " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4063

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입