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 9589 게시물 읽기
No. 9589
프로시져 실행시 성능 저하
작성자
최지용
작성일
2015-09-03 18:47
조회수
9,375

 안녕하세요 postgresql 에 프로시져 실행 하는 부분이 있는데 가끔 속도가 느린 쿼리들이 보입니다. 

프로시져 내용을 보면 인덱스는 잘 타고 있는것 같은데, 무엇을 확인 해봐야 하는지 궁금합니다. 

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

느린 쿼리들을 추출하여 explain을 확인하셔야할듯 합니다.

pg_badger 등을 이용하시면 좋으시고..

disk i/o가 적게 발생하도록 튜닝을 하셔야할듯 합니다.

김주왕(kimjuking)님이 2015-09-04 10:23에 작성한 댓글입니다.

 네 감사합니다. 

우선 플랜으로 봤을때는 문제가 될만한 상황은 아닌것 같습니다.

같은 프로시져를 실행하는데 100번 실행 하는데 90번은 매우 빠르게 실행이 되는데.

10번이 느린 경우가 발생됩니다. 계속 느린다고 하면 이해가 되는데. 데이터량은 1~2건 정도 이므로 이해가 되지 않습니다. 우선 DB 에서 실행 되는 시간을 찾아봐야겠네요.

최지용님이 2015-09-04 10:53에 작성한 댓글입니다. Edit

특정 회수에서 느려지는 경우는 그 때, 그 세션이 다른 작업 - 일반적으로 세션프로세스에 wal 스위칭 작업을 해야 하는 경우인데, 그 새 트랜잭션 로그 파일을 새로 만들어야 하는 경우이거나, 체크포인트를 찍어야 하는 경우 - 때문에 느려집니다.

 

해결 방법은 일단 os 차원에서 디스크 i/o를 살펴보세요.

디스크 i/o와 그 느려지는 때가 같다면, 윗 경우가 거의 맞습니다.

이런 경우라면, 최대한 세션 스스로 체크포인트를 하지 않도록 checkpoing_segments 값을 크게 느리는 것 말고는 별로 없을 것 같네요.

 

또 다른 하나는 autovacuum 관련 작업이 해당 작업에 영향을 줄 가능성도 있는데,

이 부분은 autovacuum 로그를 남겨서 그 느려지는 시간대와 vacuum 수행 시간대가 일치하는지를 살펴보는 것이고요.

 

이렇게 애매한 경우는 직업 그 느려지는 시간대와, DB 상태를 파악해서 유추해 내는 방법 밖에 없습니다.

 

또 다른 하나는 OS 쪽에서 다른 작업을 주기적으로 진행해서 OS의 캐시가 DB 최적화 상태가 아니게 바뀌는 경우도 있겠지요.

 

김상기(ioseph)님이 2015-09-07 23:39에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9592서로다른 DB에 테이블 검색 어떻게 하고 계신가요? [6]
김현진
2015-09-21
9542
9591기존 테이블을 파티션 테이블로 만들때... [2]
tester
2015-09-09
10114
9590암호화 관련 질문이 있습니다. [3]
유석훈
2015-09-07
9625
9589프로시져 실행시 성능 저하 [3]
최지용
2015-09-03
9375
9588AIX 6.1에서 PostGIS 64bit 소스설치 가능한가요? [2]
윤수민
2015-08-25
10981
9587vm환경 이중화문의 [1]
김세중
2015-08-24
9797
9586백업 않고 데이터를 옮기거나 살리는 방법? [1]
박병호
2015-08-21
9738
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다