일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Spring
- 인덱스 튜닝
- 깃허브
- springboot
- Oracle
- socket
- 자바
- 인덱스
- Swing
- SQLP
- Undo
- 클라이언트
- 상속
- 생성자
- 인스턴스
- 컬렉션프레임워크
- 카카오코딩테스트
- 멀티쓰레드
- DBA
- DB
- java
- 서버
- 친절한 SQL 튜닝
- 오라클
- 백준
- 친절한 sql튜닝
- 클래스
- db버퍼캐시
- 메소드
- SQL
- Today
- Total
목록DataBase/PostgreSQL (3)
프리 정보 컨텐츠

PostgreSQL 실행 계획PostgreSQL 17버전에서 실행 계획을 효율적으로 보는 방법과 테스트 데이터로 INDEX 성능 테스트 하는 방법에 대해서 알아보자. EXPLAIN [ ( option [, ...] ) ] statementEXPLAIN [ ANALYZE ] [ VERBOSE ] statement 보통 EXPLAIN 으로 실행계획을 보면 되지만 Datagrip 사용하는 필자는 귀찮아서 단축키 커스텀마이징 설정함 ㅎㅎ 1. 쿼리 실행 계획 순서 보는 방법동일 위치에선 위에서 아래로 실행되며그룹 내에 계층구조에서는 가장 아래부터 시작합니다.실제로 엄청 긴 실행 계획을 보면 어지러우니가장 쉽게 보는 방법은 역시 툴을 사용하는 방법입니다..밑에 링크 들어가서 json 형식이나 실행계획 긁어서 복붙..
아래는 Lock 걸려 있는 상태 조회하는 명령어 입니다.SELECT pid, queryFROM pg_stat_activitywhere state = 'active' and wait_event_type = 'Lock'; 특정 락 종료을 종료시킬 때 조회한 pid를 파라미터 값으로 입력하여 하나하나 종료하고 있었으나SELECT pg_terminate_backend(6450);아래 명령어를 입력하면 현재 Lock 쿼리들 모두 다 취소시킬 수 있습니다.SELECT pg_cancel_backend(pg_stat_activity.pid)FROM pg_stat_activityWHERE state = 'active' and wait_event_type = 'Lock' AND pid pg_backend_pid()..
인덱스 설정시 테이블 Lock 해제PostgreSQL에서는 인덱스를 생성하는 동안에는 해당 테이블에 읽기전용 Lock (잠금)이 적용됩니다.그래서 실제 서비스 운영 중에 인덱스를 적용하게 되면, 조회 기능외에는 작동하지 않아 서비스 장애가 발생할 수 있습니다.그래서 읽기 Lock을 회피하기 위해 CONCURRENTLY 옵션을 추가해서 실행하면 읽기 Lock 없이 인덱스를 추가/삭제 할 수 있습니다.(단, DDL은 여전히 막혀있습니다.)CREATE INDEX CONCURRENTLY idx_pay_1 ON pay (pay_method); 다만, 이렇게 할 경우 기존 인덱스 추가 방식 보다는 훨씬 더 오랜 시간동안 인덱스 추가 작업이 진행되는 점을 유의해야 합니다.