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 9331 게시물 읽기
No. 9331
8.2 버젼과 그이상버젼(8.4 대, 9.대 ) 에서의 속도차이??? (미해결-로그올립니다 - 상기님 한번 봐주세요 ^^)
작성자
롱다리
작성일
2013-08-28 21:46ⓒ
2013-09-06 14:47ⓜ
조회수
9,495

 2G 정도의 자료가 있습니다 . . .

 

제일 많이 조회 하는 테이블의 자료수는 200만건 정도 이구요 . .  

index ,가 6개 정도 잡혀저 있습니다 . . .

주로 select 할 때 메인 테이블을 포함하여 8 개 테이블 정도를 조인하여 작업합니다 . .  

 

이번에 업글이 필요해서 8.4 로 업글 후 import  . .  그리고 동일한 쿼리문으로 조회를 해보니까 . . .

속도 차이가 너무 많이 나내요 . .  ㅠ.ㅠ

 

동일한 자료 동일한 쿼리로 테스트 했을때

8.2 대 는 32.772ms 

8.4대 이상에서는 1967.032ms

최대 6배 까지 차이가 나내요 . .  ㅠ.ㅠ

 

혹시 제가 설정 이나 이런것을 잘못 본걸까요 ?????

postgresql.conf 파일도 꼼꼼히 체크해 봤는데 별 차이가 없습니다 . . 

(기본값을 그대로 쓰는관계로 . . . ㅋㅋ)

 

혹시 버젼에 따라서 제가 놓치는 부분이 있나요 ????

 

고수님들 고견을 부탁드립니다 . . . ^^

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

 두 버전에서 해당 쿼리의 실행계획을 살펴보세요. 

 

김상기(ioseph)님이 2013-08-29 16:44에 작성한 댓글입니다.

상기님 관심 갖어 주셔서 감사합니다 .  ^^

두 버전의 실행계획은 동일합니다 . . . ^^

그래서 더 이해가 안가네요 . . ㅠ.ㅠ. 

롱다리님이 2013-08-29 17:42에 작성한 댓글입니다. Edit

 실행 계획에서 데이터블록을 읽는 양이 많다면, 

그 해당 테이블과 인덱스에 대해서, 

쿼리 실행전, 쿼리 실행후 pg_statio_* 뷰를 통해서 

어떻게 자료를 패치 했는지 비교해 보세요. 

 

보통 저렇게 차이 나는 경우는 두가지 인데,

하나는 실행 계획이 바뀌어서 자료처리를 위한 데이터블럭이 많아졌는 경우와, 

하나는 첫 쿼리에서 공유 버퍼로 자료를 올리는 작업으로 시간이 오래걸린 경우 거든요.

그외 테이블 자료에 대한 통계정보가 잘못 수집되었다든가, 

DB 외 다른 환경이 변경 되었다든가 인데, 이거는 차근하게 살펴보시면 되고.

 

여튼, 쿼리 실행 시간이 버전 업되었다고 느려지는 경우는 일반적인 쿼리에서는 없었거든요.

뭔가 다른 요인이 있지 않았을까하는 막연히 생각해볼 뿐입니다.

 

김상기(ioseph)님이 2013-08-30 09:42에 작성한 댓글입니다.

log_min_duration = 0 로 하고 로그를 확인하였더니 . . .

(같은서버 - 동일한 쿼리 입니다 .)

8.2.7 버젼에서는 

LOG:  duration: 18.864 ms  statement: BEGIN;declare SQL_CUR03FD0D40 cursor for select  a.conf1, a.conf2 . . . . 이렇게 나오고 

LOG:  duration: 77.094 ms  statement: fetch 689 in SQL_CUR03FD0D40

 

8.4 이상버젼 ( 9.3 까지 테스트 )

LOG:  duration: 825.413 ms  statement: BEGIN;declare SQL_CUR03D30940 cursor for select    a.conf1,a.conf2 . . . . . . . 

LOG: duration: 34.164 ms statement: fetch 689 in SQL_CUR03D30940

 

이렇습니다 . . 비교해 보니 처음 BEGIN 으로 시작되는 열의 시간이 많이 차이가 나고 있습니다 . . .

혹시 이부분에 대해서 짚이시는게 있으시면 조언 부탁드립니다 . .  ^^

 

 

롱다리님이 2013-09-06 14:57에 작성한 댓글입니다.
이 댓글은 2013-09-06 14:58에 마지막으로 수정되었습니다. Edit

 그 정보로 짐작할 수 있는게 아무것도 없습니다. 아쉽게도. 

더 장황한 정보가 필요한데요. 

제가 말씀드릴 수 있는 것이라고는 

pg_statio_* 쿼리 실행 전후 그 변화치를 비교해서,

정말 데이터 접근에 대한 i/o가 동일한지를 비교하는 것이고요, 

그 외 문제라면, OS 쪽에서는 환경이 바뀐 것이 없는지 살펴보는 것이겠죠. 

 

상위버전으로 갔다고 DB 성능이 눈에 띄게 떨어지는 경우가 있다면, 

그 DB는 쓰지 말아야죠. 

 

김상기(ioseph)님이 2013-09-10 17:03에 작성한 댓글입니다.

 상기님 감사합니다 . . ^^

 

좀더 공부하면서 찾아 보도록 하겠습니다 . . . ^^

 

항상 관심가져 주셔서 감사합니다 . . ^^

롱다리님이 2013-09-10 19:28에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
9337서비스시작이 안되요..? [1]
초보
2013-09-11
15996
9335데이터 저장공간 변경을 하려고 합니다. [2]
iyob
2013-09-06
9929
9334pgadmin 3에서 현재사용 접속된 postgresql 버전확인은?? [2]
강성구
2013-09-05
10867
93318.2 버젼과 그이상버젼(8.4 대, 9.대 ) 에서의 속도차이??? (미해결-로그올립니다 - 상기님 한번 봐주세요 ^^) [6]
롱다리
2013-08-28
9495
9330쿼리 문의
희동이
2013-08-21
9374
9329쿼리만들기 좀 부탁드립니다. [1]
심상호
2013-08-21
9657
9328바로 위 데이터를 가져오는 쿼리 문의드립니다. [3]
최지연
2013-08-16
9569
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다