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 10224 게시물 읽기
No. 10224
성능지연관련 인덱스 생성여부 문의(epas 10버전)
작성자
우재권(wjk0726)
작성일
2021-01-07 01:20
조회수
1,887

매일 대량의 insert ~  select 쿼리가 수행되어 이력테이블에 insert되는 로직이며


위 대량 sql로 인해 서비스 지연이 발생하고 있는 상황입니다


select되는 테이블은 파티션테이블로 별도 인덱스는 없고 seq컬럼이 pk로 잡혀있습니다


파티션키는 reg_dt이고


insert ~ select쿼리에서 select쪽 where 조회 조건에는 seq컬럼에 대한 조건 밖에 없는 상황입니다(바인드변수로 가져옴)


참고로 테이블 전체 건수는 100만건 이상이며 seq컬럼 데이터 중복값은 거의(99%) 없습니다 



여기서 성능을 개선하려면 

seq컬럼에 대해 인덱스를 추가하면 될까요?


혹은 파티션키(reg_dt) 값에 대해 where조건절에 seq컬럼 외 추가를 해주어아하나요? 

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

epas 10에서는 파티션 테이블 만들 때 파티션 키가 기본키 안에 반드시 있지 않아도 되는지요? PostgreSQL에서는 반드시 있어야하기 때문에,

파티션 테이블의 pk 기반 조회를 하려면 반드시 where절에 파티션 키가 함께 있어야하거든요.

epas 관련 자세한 문의는 enterprisedb 한국 지사쪽으로 기술문의를 하시는 것이 더 정확한 해결책을 찾을 수 있을 것 같습니다.

김상기(ioseph)님이 2021-01-07 11:03에 작성한 댓글입니다.

select 를 해봐서 느리다면, seq (+ 파티션키) 해서 인덱스 거세요. 

select 가 빨라지는지 확인하시고요. 

select 가 빨라졌는데 insert 가 느리다면 다른 원인을 찾아야하겠죠. 


edb 10 은 인덱스 상속이 안됩니다. 

개별로 다 만드셔야 되요. 

파티션 키 조건이 where 에 있어야 pruning 잘 됩니다. 



 

lucky님이 2021-01-07 17:02에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
10227백업 관련 문의 드립니다. [2]
허원석
2021-01-23
2204
10226CPU 사용량 100% 원인 파악이 안됩니다. 가르침을 청합니다. ㅜㅜ [3]
허재식
2021-01-11
2526
10225쿼리 및 커서 캐싱 [2]
charlie p
2021-01-07
1899
10224성능지연관련 인덱스 생성여부 문의(epas 10버전) [2]
우재권
2021-01-07
1887
10223pgadmin4 원격접속 [2]
전호진
2021-01-05
1821
10221PostgreSQL tuple 에 대해 공부하다 질문드립니다. [1]
허원석
2021-01-01
2019
10220array_to_string 사용 쿼리 질문 드립니다. [1]
이요남
2020-12-22
1898
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다