SQL(3)
-
PostgreSQL Lock SQL 조회 및 제거, 실행중인 SQL조회
목차 내용 설명 PostgreSQL을 사용하다보면 Lock 확인 및 모니터링위한 active 쿼리 확인 등이 필요하다. 여러 상황에서 모니터링하기에 좋은 SQL을 정리했다. 실행중인 쿼리 조회, 중지, 락 조회 등 쿼리. 1. Lock 정보 조회 SELECT LOCKTYPE, RELATION :: REGCLASS, MODE, TRANSACTIONID tid, PID, GRANTED FROM pg_catalog.pg_locks WHERE NOT PID = pg_backend_pid(); 2. 실행중인 쿼리 조회 SELECT substr(QUERY, 0, 150), STATE, PID, QUERY_START FROM pg_catalog.pg_stat_activity ORDER BY QUERY_START, S..
2023.12.04 -
Postgresql EXPLAIN ANALYZE 활용과 시각화
PostgreSQLEXPLAIN ANALYZE를 활용하여 실행 계획을 확인하고 실행 계획을 시각화 하는 방법을 정리했습니다. Query 실행 계획 확인 방법1. 바로 확인EXPLAIN ANALYZESELECT "id"FROM "student"WHERE "student"."status" = 1;2. JSON으로 추출EXPLAIN (ANALYZE, COSTS, VERBOSE, BUFFERS, FORMAT JSON)SELECT "id"FROM "student"WHERE "student"."status" = 1; 실행계획 Visualizer1. JSON으로 추출[ { "Plan": { "Node Type": "Gather Merge", "Parallel Aware": false, ..
2023.07.12 -
주민등록번호 앞자리 6자리로 만 나이 구하기
이슈 SQL로 주민등록번호 앞 6자리를 추출해 나이 비교를 하기 위해 사용. 20년 이후 출생자들은 20으로 앞자리가 시작하기 때문에 주민등록번호의 단순 비교로 나이 비교가 어려움 나이 비교 시 예를들어 현재년도 보다 낮거나 같을때 14미만으로 판단하는 방법은 부적합.(매년 변경해주어야함.) 주민등록번호를 이용하여 비교하고, 20년 이후 출생자와 이전 출생자를 나누어 비교 주민등록번호 뒷자리가 없는 경우 만 14세 미만 구하기 (ISDATE(CONCAT((CASE WHEN (SUBSTRING(REGNO,1,2)) 21 THEN '19' ELSE '20' END), LEFT(REGNO,6)))=1--REGNO 유효성 검사 AND FLOOR(CAST(DATEDIFF(DAY,CONCAT((CASE WHEN (..
2021.08.10