본문 바로가기

parallel processing

오라클 병렬처리 Union All 성능향상 (PQ_CONCURRENT_UNION) - Oracle 12c 신기능 Oracle 12c 신기능 중에 Union 또는 Union All SQL의 성능을 개선한 부분이 있습니다. 원래 Union 이나 Union All 구문의 처리는 Union 으로 묶여있는 각각의 SQL을 1개씩 Serial 하게 처리합니다. 이게 Oracle 12.1 버전부터는 동시에 처리되도록 바뀌었습니다. 단, 병렬처리의 경우에 한정입니다. 이전버전에서는 PQ_CONCURRENT_UNION 이라는 힌트를 별도로 주어서 이런 기능이 구현되었었는데, 12c 부터는 자동으로 Default 적용됩니다. 왼쪽은 optimizer_features_enable 파라메타를 조정해서 11g 환경으로 세팅한 것이고, 오른쪽은 19c 환경입니다. 똑같은 Union all SQL문을 양쪽에서 실행했는데, 왼쪽(11g)은 1.. 더보기
오라클 병렬처리 Plan 개선 (PX SELECTOR) - Oracle 12c 신기능 Oracle 12.1 버전부터 병렬처리 실행계획(Plan) 상에 PX SELECTOR 라는 것이 추가되었습니다. QC(Query Coordinator)가 하던 역할을 일부 떼어서 Parallel Process 가 하도록 바꾼 것인데, 이렇게 바꾸면서 불필요하게 Buffer Sort 하던 작업을 없애버려 결과적으로는 약간의 성능이 개선되는 효과를 가져왔습니다. 아래에서 확인할 수 있는데, 왼쪽은 optimizer_features_enable 파라메타를 조정해서 11g 환경으로 세팅한 것이고, 오른쪽은 19c 환경입니다. 아래 SQL문을 11g 환경에서 실행했을때는 0.67초가 걸렸고, 19c 환경에서는 0.45초가 걸렸습니다. select /*+ monitor ordered parallel(a 4) */ .. 더보기