본문 바로가기

SQL8

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-4. V$SQL 트레이스의 치명적인 단점 : 파일이 서버에 저장된다. 그래서 개발자 입장에서는 권한의 문제가 있을 수 있다. 요즘에는 보안의 문제가 상당히 중요해졌기 때문 V$SQL 이란? SQL에 대한 모든 정보를 결과로 보여주는 것 V$SQL 은 라이브러리 캐시에 캐싱돼 있는 각 Child 커서에 대한 수행통계를 보여준다. 하여 해당 결과를 바탕으로 튜닝의 대상을 용이하게 선정할 수 있게 도와준다. 쿼리의 수행속도 자체에 대해서 고민할 때는 SQL의 블록 단위별 개수를 파악해서 튜닝대상을 선정한다. CPU의 성능에 대해서 고민할때는 각 블록 단위별 수행횟수를 파악해서 튜닝대상을 선정한다. select sql_id, child_number, sql_text, sql_fulltext, parsing_schema_name.. 2021. 10. 6.