database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9949 게시물 읽기
No. 9949
도대체.. parallel query가 뭔가요?!
작성자
test
작성일
2018-02-27 14:11
조회수
6,165

 gather 4설정하고 쿼리돌려봤습니다.

약 천만개로우가 있는 테이블과 다른 테이블과 조인하는 쿼리를 실행해봤습니다. (explain anaylze)

23분이 뜨더군요. cpu 상태보니 cpu 8개가 풀로 상승했습니다.

(parallel seq scan on...)

 

천만개 로우가 있는 테이블에 인덱스(btree)를 걸고 인덱스 스캔하도록 쿼리를 실행해봤습니다.

1초가 걸리네요. 분석 설명에 인덱스 스캔을 하는경우는 parallel 처리 구분이 안뜨네요.

 

인덱스가 역시 짱이구나 생각이 들면서 parallel query에 대한 의문이 드는데,

제가 잘못생각한건지.. 좀 헷갈리네요 자세한 설명좀 볼수있을까요 ㅠㅠ

 

 

이 글에 대한 댓글이 총 4건 있습니다.

 아직 한국어 번역은 안되었습니다. 

 

https://www.postgresql.org/docs/current/static/parallel-query.html

김상기(ioseph)님이 2018-02-27 14:15에 작성한 댓글입니다.

 언어적 한계로인해 이해하는데 어려움이.. 

test님이 2018-02-27 14:31에 작성한 댓글입니다. Edit

색인 탐색과 병렬 쿼리는 별개의 문제입니다. 

10버전 이상에서는 색인 탐색을 하면서도 그 탐색 작업을 병렬로 처리할 수 있으니까요.

병렬 쿼리는 어떤 하나의 작업을 여러 프로세스로 나눠서 작업하고 그 결과를 다시 합치는 작업을 합니다. 

쿼리의 성능을 색인을 사용해서 최적화 하는 것은 기본이고, 그 기본 성능임에도 불구하고 자료량이 많은 경우 그 일을 여러 프로세스가 나눠서 하도록 하는 것입니다. 

 

select count(*) from table

쿼리에서 그 테이블의 count(*)에 사용할 수 있는 색인이 있다면(예를 들어서 기본키가 되겠죠) 그 기본키용 색인 크기가 min_parallel_index_scan_size 크기보다 크다면, (기본값 512kB) 그 색인 탐색 자체가 max_parallel_workers_per_gather 만큼의 프로세스를 만들어(기본값이 2) 나눠서 로우수를 계산하고 그 결과를 합쳐서 클라이언트한테 줍니다. 

이와 달리 색인 탐색이 불가능하다면, 테이블 크기가 min_parallel_table_scan_size (기본값 8MB) 보다 크다면, 병렬 쿼리로 처리합니다. 

 

물론 여러 테이블의 join 작업을 하는데, 단일 프로세스로 색인을 사용한 nested loop join이 더 합리적이다고 판단하면, 당연히 해시나 머지 정렬 조인같이 선행 집합을 병렬 쿼리로 만들어  처리하지는 않습니다. 

 

explain (verbose) 쿼리로 병렬 쿼리 실행 계획을 구체적으로 살펴 볼 수 있습니다.

 

김상기(ioseph)님이 2018-02-27 15:09에 작성한 댓글입니다.

 이해됬어요. 끙끙알면서 보다가 여기와서 댓글보니 이해가 되는 느낌..

감사합니다.

test님이 2018-02-27 17:32에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
9953case when에서 결과 값이 없으면을 조건으로 달 수 있나요? [1]
심상호
2018-03-06
5450
9951데이터폴더의 log에 대해 질문.! [1]
test
2018-03-02
5368
9950프로시저 호출시 파라메터 세팅 [1]
최진석
2018-02-27
6268
9949도대체.. parallel query가 뭔가요?! [4]
test
2018-02-27
6165
994810.x partition table 두번째 질문드려요. [2]
test
2018-02-26
5314
9947DB 스키마 모델링 작업 어떤툴 쓰시나요? ㅇ.ㅇ [1]
test
2018-02-23
5415
9946datetime 형 데이타를 년월만 조회되게 되나요? [1]
이기자
2018-02-21
5474
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다