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 10243 게시물 읽기
No. 10243
awr에서와 같이 buffer gets 는 어떻게 확인하나요?
작성자
cella(cella)
작성일
2021-04-15 17:45
조회수
1,524

성능 테스트 중인데 pg_stat_statements 로 테스트 구문의 shared_blks_read 를 확인하니 0 으로 나와서 문의 드립니다.


total_time 이나 calls 는 부하테스트 프로그램에서 쏘는 만큼 제대로 보이는것 같은데 calls 나 time 이 올라가도 hared_blks_read 나 local_blks_read 값은


변하지 않고 계속 0으로 보여서 문의 드립니다.

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

shared_blks_read 값은 데이터 페이지를 shared buffer로 옮기는 작업입니다. 

데이터베이스 서버를 재실행하면 공유 버퍼가 초기화 될 것이고, 

그 뒤 첫 쿼리를 하면 이 값이 바뀌겠죠. 


그 외 공유 버퍼에 다른 데이터 페이지들이 가득한데, 어떤 쿼리가 새로운 데이터 페이지를 공유 버퍼로 옮겨야할 상황이 발생하면 숫자가 올라가겠죠.

김상기(ioseph)님이 2021-04-19 09:25에 작성한 댓글입니다.

그럼 쿼리를 수행하면서 해당 쿼리로 인해 읽은 블록 수를 확인할 수 있는 방법은 없을까요?

cella(cella)님이 2021-04-20 12:42에 작성한 댓글입니다.

pg_stat_statements 확장 모듈을 사용하는 경우는 다음과 같고요. 


select 쿼리라면, 단순하게, shared_blks_read + shared_blks_hits 로 생각하면 됩니다. 

물론 sort 같은게 있는데, 이게 임시 파일을 사용한다면,  temp_ 관련 값들도 봐야할 것 같고요. 

자료 조작 쿼리들이라면, shared_blks_written도 봐야하고, 그렇습니다. 


단 이 값들은 누적치입니다. 그래서, calls 로 나눠야 그 쿼리 한번에 사용한 사용량이 나옵니다. 


----

이것 말고 전통적인 방식은 


explain (analyze, buffers) 쿼리;


형태로 오라클 용어로 쿼리 trace 를 할 수 있습니다. 일반적으로 튜닝 작업 때는 이걸 씁니다. 

물론 그 모양을 오라클처럼 기대하시면 안되고요. 

json 형태로도 출력이 가능하니까, 그 출력을 postgresql explain viewer 같은 무료 웹서비스를 통해서 좀더 편하게 볼 수 있는 방법도 있고요. 

 

김상기(ioseph)님이 2021-04-20 13:31에 작성한 댓글입니다.

답변 감사합니다

cella(cella)님이 2021-05-03 13:17에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10246아카이브 wal파일 질문드립니다. [1]
초보자
2021-04-26
1743
10245특정 데이터별 상위 데이터 구하기 [1]
초보
2021-04-20
1574
10244SQLSTATE[08006] [7] timeout expired? [2]
박병호
2021-04-19
1993
10243awr에서와 같이 buffer gets 는 어떻게 확인하나요? [4]
cella
2021-04-15
1524
10242template0의 age 오버 [9]
종관
2021-04-12
2094
10241세션 wait_event에 subtranscontrollock 이벤트는 어떤 상황일때 발생하는가요? [3]
전석
2021-04-09
1961
10240MSSQL -> Postgre 쿼리 변환 질문입니다 [1]
명수
2021-04-09
1588
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다