Query(4)
-
Pipeline in Query Processing(쿼리 처리 파이프라인)
Pipelining in Query Processing쿼리 프로세서를 여러 개의 미니 프로세스로 분할하는 접근 방식을 기반으로 하는 방법을 의미병렬 수행에 도움을 주고, 결과적으로 쿼리 효율 증가 1. 과정쿼리 처리 파이프라인 동작 과정Parsing and Optimization이 단계에서는 선택한 쿼리를 구문 분석하여 테이블, 열, 조건 같은 특정 요소 탐색Query Optimizer 가 인덱스 및 조인 알고리즘 사용 같은 데이터 액세스 계획 기반으로 여러 실행 계획 중에서 가장 적절한 계획을 선택계획 확인https://hunstory.tistory.com/53Execution실행 계획에 표시된 각 작업이 수행디스크 엑세스, 조인 및 집계 작업 수행, 필터링 작업 적용과 같은 활동이 포함될 수 있음Re..
2024.06.26 -
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