간단명료

I/O 튜닝이 곧 SQL 튜닝이라고 해도 과언이 아니다. 1.3.1 SQL이 느린 이유 SQL이 느린 이유는 디스크 I/O 때문이다. 프로세스는 실행 중인 프로그램이며, 생명주기를 갖는다. 실행 중인 프로세스는 interrupt에 의해 수시로 실행 준비 상태(Runnable Queue)로 전환했다가 다시 실행 상태로 전환한다. 프로세스가 일하고 있을 때 디스크 I/O가 발생하면 CPU를 OS에 반환하고 잠시 수면(Wating) 상태에서 I/O가 완료되길 기다린다. 결국, 수 많은 프로세스에 의해 발생한 디스크 I/O 때문에 경합이 심해지고 그만큼 대기 시간도 늘어난다. 1.3.2 데이터베이스 저장 구조 테이블스페이스 : 세그먼트를 담는 콘테이너, 여러 개의 데이터파일(디스크 상의 물리적인 OS파일)로 구..

바인드 변수가 왜 중요한지 이해하자! 1.2.1 소프트 파싱 vs 하드 파싱 SQL 파싱, 최적화, 로우 소스 생성 과정을 거쳐 생성한 내부 프로시저를 반복 재사용할 수 있도록 캐싱해 두는 메모리 공간을 라이브러리 캐시(Library Cache)라고 한다. 라이브러리 캐시는 SGA(System Global Area)의 구성요소 이며 서버 프로세스와 백그라운드 프로세스가 공통으로 액세스하는 데이터와 제어 구조를 캐싱하는 메모리 공간이다. 소프트 파싱(Soft Parsing) : SQL을 캐시에서 찾아 곧바로 실행단계로 넘어가는 것 하드 파싱(Hard Parsing) : SQL 찾는 데 실패해 최적화 및 로우 소스 생성 단계까지 모두 거치는 것 SQL 최적화 과정은 왜 하드(Hard)한가 SQL 옵티마이저는..

1.1.1 구조적, 집합적, 선언적 질의 언어 SQL은 'Structured Query Language'의 줄임말, 구조적 질의 언어다. 원하는 결과를 구조적, 집합적으로 선언하지만, 그 결과집합을 만드는 과정은 절차적일 수밖에 없다. 즉, 프로시저가 필요한데, DBMS 내부 엔진인 옵티마이저가 만든다. DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전 과정을 SQL 최적화라고 한다. 1.1.2 SQL 최적화 SQL을 실행하기 전 최적화 과정. ① SQL 파싱 사용자로부터 SQL을 전달받으면 가장 먼저 SQL 파서가 파싱을 진행한다. 파싱 트리 생성 : SQL 문을 이루는 개별 구성요소를 분석 후 파싱 트리 생성. Syntax 체크 : 문법적 오류 확인. (EX. 사용할 수 ..