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 10446 게시물 읽기
No. 10446
쿼리 실행 계획 buffers
작성자
신현근
작성일
2023-10-27 14:45ⓒ
2023-10-27 14:47ⓜ
조회수
1,194

인덱스없는거(블록i/o:100만)(결과 반환까지 걸린 시간 : 10초) < 다중컬럼인덱스2번(점, 선분)(블록i/o:400백만)(결과 반환까지 걸린 시간 : 3초) < 다중컬럼인덱스1번(블록i/o:선분, 점)(2천 7백만)(결과 반환까지 걸린 시간 : 9초)

인덱스 없을때: Buffers: shared hit=129 read=774883, temp read=40270 written=40395
2번 인덱스 :   Buffers: shared hit=3988726 read=17255, temp read=40640 written=40765
1번 인덱스 :   Buffers: shared hit=26783101 read=115312, temp read=41383 written=41509

인덱스 2번이 인덱스 1번보다 당연히 빠르고 i/o수가 적은건 알겠는데 인덱스 없는건 full table scan을 하는데 블록 수가 제일 작습니다. 근데 이게 제일 오래걸리구요.

인덱스 사용 안한건 대부분을 disk i/o를 통해가져오는데 비해 인덱스 사용한것들은 대부분을 버퍼 캐시에서 가져옵니다. 원래 풀 테이블 스캔은 버퍼 캐시에 안쌓이나요? 엄청 조금씩 오르긴 하던데 너무 적더라구요.

데이터베이스는 postgresql입니다.

근데 인덱스 없을때 블록수가 제일 적은것도 맞는거고 제일 오래걸리는것도 맞는건가요?

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

공유 버퍼에 작업 하려고 하는 해당 데이터 블록이나, 인덱스 블록이 없는 경우입니다. 


일반적으로 한번도 사용하지 않았던 테이블이나, 인덱스를 대상으로 처음 쿼리를 할 때 일어납니다. 


인덱스를 사용할 때와 사용하지 않을 때를 비교한다면, 각 상황의 첫번째 쿼리는 무시하고 서너번 더 해보는 것이 일반적입니다.

김상기(ioseph)님이 2023-10-27 18:45에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10452DB 계정 잠금 설정 질문입니다 [3]
소라77
2023-12-08
1002
10449인덱스걸면 제일빠른 데이타 타입 순서가 어떻게되나요? [3]
이기자
2023-11-28
940
10447create extension oracle_fdw; undefined symbol 관련 에러 [8]
chaney
2023-11-03
1304
10446쿼리 실행 계획 buffers [1]
신현근
2023-10-27
1194
10445한자(중국어) 저장시 일부 문자가 깨집니다 ㅜ.ㅜ [8]
이기자
2023-10-24
1301
10443세로로 조회된 성적 데이타를 날짜별로 가로로 나타내고 싶습니다. 날짜별로 과목 수 다를수있음.. [1]
이기자
2023-10-19
1248
1044115 버전에서 public 스키마 변경 관련 문의 드립니다. [2]
초보
2023-09-18
1706
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다