본문 바로가기

SQL튜닝6

2장. [옵티마이저] 2-2. SQL 처리 과정 이 사진 한장으로 설명 끝이다. 인데 조금 세세하게 들어가보자. 1. SQL 파싱 SQL 파서(parser) 가 SQL을 가장 먼저 받아서 처리 한다. 하여 가장 기본이 되는 오류들을 먼저 체크한다. Syntax 체크 : 문법적 오류 체크 Symantic 체크 : 의미상 오류가 없는지 체크 Shared Pool 체크 : 쉐어드 풀에 캐싱되어 있는지 확인 2. SQL 최적화 Query Transformer SQL을 최적화하기 쉬운 형태로 변환한다. 예를 들어서 '값 BETWEEN A AND' B 쓰면 '값 >= A AND 값 2021. 10. 9.
2장. [옵티마이저] 2-1. 옵티마이저란? 1. 옵티마이저 뭐 사전적 정의 이런거는 많이들 봤을 테고, 그냥 단순하게 사용자를 대신해서 프로그래밍 해주는 서포터라고 보면 된다. 아이언맨의 자비스, 배트맨의 루시우스 폭스 같은 느낌이랄까?? 여튼 고스트바둑왕의 느낌으로 다가 우리는 SQL을 잘 작성만 해주면 된다. 굳이 멋지게 정리하자면, 사용자가 원하는 작업을 가장 효과적으로 실행 할 수 있는 최적의 경로를 선택해서 자동으로 프로시저를 생성해주는 DBMS의 핵심엔진이다. 2. 4세대 언어 SQL은 구조화된 질의어이다. 그러니까 우리는 육하원칙에 따라 질문하는 것 처럼 논리적인 기획과 설계를 바탕으로 결과 집합을 요구하는 쿼리를 작성한다. 어떤식으로 처리되는지? 그런 프로세스를 직접 기술하지는 않는다. 3. 실행계획과 비용 사용자의 구조화된 질문 .. 2021. 10. 8.
1장. [SQL 분석 도구] 1-5. DBMS_XPLAN 패키지 DBMS_XPLAN 란? 오라클 9? 버전부터 제공되는 패키지라고 한다. Plan_Table에 저장된 실행계획들을 좀 더 편하게 볼 수 있는 자체 라이브러리? 같은 거라고 생각하면 될 것 같다. 사용법 여러가지 방법이 있으나 다 요새는 대부분 10 이상 버전을 쓰기 때문에 기본적으로 Plan_Table과 Synonym이 생성되어 있다. 아래와 같은 방법을 사용하면 편하게 실행해 볼 수 있다. 힌트 /*+ gather_plan_statistics */ 구문 추가 select /*+ gather_plan_statistics */ * from 테이블 통계를 보고자 하는 쿼리에 /*+ gather_plan_statistics */ 를 추가한다. 세션 ALTER ALTER SESSION SET "_rowsourc.. 2021. 10. 7.
1장. [SQL 분석 도구] 1-3. 트레이스 수집 트레이스를 수집 및 분석하는 것은 튜닝의 시작과 끝이라고 할 수 있다. 그 정도로 중요하다. 1. 트레이스 수집 /* 수집시작 */ alter session set sql_trace = true; /* 수집 종료 */ alter session set sql_trace = false; 해당 명령어를 실행하면 트레이스를 수집해서 DB 서버에 저장 된다. 2. 트레이스 파일 찾기 /* 트레이스 파일 위치 */ SELECT r.value || '/' || LOWER(t.instance_name) || '_ora_' || ltrim(to_char(p.spid)) || '.trc' trace_file FROM v$process p, v$session s, v$parameter r, v$instance t WHERE.. 2021. 10. 5.