-
DDL(데이터 정의 언어) : 오라클 데이터 사전을 수정, 즉 테이블 생성, 사용자 추가, 테이블로부터 열 삭제, 트리거 생성 등을 수행하기 위하여 실행되는 문
DML(데이터 조작 언어) : 데이터베이스의 데이터를 액세스하고 수정하기 위하여 실행되는 문으로서 SELECT, INSERT, MERGE, UPDATE, 그리고 DELETE 명령을 포함
파싱 > 최적화 > 행-원본 생성 > 문 실행
- 파싱
. DDL : 오라클의 공유 풀에 저장되지 않기 때문에 여기에 기술된 공유 풀 검사의 적용 대상이 x
.. 구문 분석 > 의미분석
. DML
.. 구문 분석 > 의미분석 > 공유 풀 검사
. soft parse
1. 의미 일치 검사 : 처리를 위해 데이터베이스에 제출된 문이 이전에 파싱된 문과 일치하는 의미 일치가 존재하는지를 검증
2. 환경 일치 검사 : 문의 실행 환경이 동일한지를 확인하는 환경 일치를 검증
. hard parse
- 최적화기
. 규칙 기반의 최적화기(RBO)
. 비용 기반의 최적화기(CBO)
- 래치 : 직렬화 장치
. 상당한 희생을 감수하고서 많은 세션이 공유 데이터 구조를 안전하게 액세스하고 수정할 수 있도록 해주는 기능.
하드 파스 : 2배 이상의 래치를 사용.
하드 파스 : 소프트 파스
소프트 파싱 : 느슨한 소프트 파싱(SESSION_CACHED_CURSORS)
느슨한 소프트 파싱 : 무 파싱
성능 향상 : 가능한한 파싱을 피하자!
- 바인드 변수를 사용하여 파싱을 skip 하도록 유도. (soft parse 유도), 바인드 변수 미사용시 sql injection 가능.
- PL/SQL을 사용하는 단순한 조치로부터 동적 SQL을 주의해서 사용하기
- 다수의 입력을 단일 문 실행에 바인딩하기
-------------
스키마 디자인 기본 원칙
- 무결성 검사, 데이터 유형 선택, 쿼리 최적화
날짜는 날짜에, 수는 수어, 문자열은 문자열에..