해당 쿼리문이 이상하게 늦다 싶으실 때 PK를 확인하는 쿼리문
SELECT a.attname AS column_name
FROM pg_index i
JOIN pg_attribute a
ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey)
WHERE i.indrelid = 'table_name'::regclass
AND i.indisprimary;dbeaver 같은 편집기에서도 쉽게 확인할 수 있지만, 사용 불가라면 저 쿼리문을 사용하시면 됩니다
+ 번외
EXPLAIN ANALYZE
UPDATE table_name
SET img_down_cd = 'S',
img_nas_path = '/path/to/file.jpg',
img_down_crtmm = CURRENT_TIMESTAMP
WHERE doc_id = '123456';실행하려는 쿼리문이 이상하게 늦는다? 할 때 쿼리문 앞에 EXPLAIN ANALYZE를 넣고 확인하시면 됩니다.
Update on table_name (cost=0.29..8.30 rows=1 width=0)
-> Index Scan using table_name_pkey on table_name (cost=0.29..8.30 rows=1 width=0)
Index Cond: (doc_id = '123456'::text)Index scan이 뜬다면 인덱스 쪽 문제는 없고 다른 쪽에 문제가 있을 확률이 높습니다.
-> Seq Scan on table_name
Filter: (doc_id = '123456'::text)
Rows Removed by Filter: 7139759Seq Scan이 뜬다면 테이블 전체를 순회했다는 뜻으로 조건에 맞지 않은 row를 713만 건 조회했다는 의미입니다. 이때는 해당 조건에 주는 컬럼을 인덱스 생성해 주시면 됩니다.

'Database' 카테고리의 다른 글
| SQL Error [1950] [42000]: ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다. (0) | 2026.01.26 |
|---|---|
| [Postgresql] 인덱스 테이블스페이스 변경 (1) | 2025.07.02 |
| [PostgreSQL] COPY (0) | 2025.06.17 |