전체 글
옵티마이저란?
DBMS 옵티마이저란? DBMS에는 개발자가 작성한 SQL을 어떻게 실행할 것인지 실행 계획을 수립하고 SQL을 실행하게 됩니다. 옵티마이저는 이러한 실행 계획을 세워주는 역할을 수행합니다. 옵티마이저를 한 문장으로 정의하자면, SQL을 가장 빠르고 효율적으로 수행할 최적의 경로를 생성해주는 DBMS 내부 엔진입니다. 옵티마이저의 SQL 최적화 과정은 다음과 같은 순서로 이루어집니다. - 사용자가 작성한 쿼리 수행을 위해 후보군이 될만한 실행계획을 찾는다 - 데이터 딕셔너리에 미리 수집해 놓은 오브젝트 통계 및 시스템 통계정보를 이용하여 실행계획의 예상비용을 산정한다. - 각 실행계획을 비교하여 최저 비용을 갖는 하나를 선택한다. 옵티마이저의 종류 옵티마이저의 종류에는 크게 2가지가 있습니다. 규칙기반 ..
페이지 교체와 프레임 할당이란?
프로세스를 메모리에 적재할 때 처음부터 모든 페이지를 적재하지는 않습니다. 필요한 페이지 만을 메모리에 적재하는 기법을 요구 페이징이라고 합니다. 아무런 페이지도 메모리에 적재되지 않은 채 무작정 실행하는 경우도 있습니다. 메모리에 페이지 정보가 없기 때문에 페이지 폴트가 발생하게 되고, 페이지를 적재합니다. 한 동안 페이지 폴트가 계속 발생하게 되고 실행에 필요한 페이지가 어느 정도 적재 된 이후부터는 페이지 폴트 발생 빈도가 떨어지게 됩니다. 이를 순수 요구 페이징 기법이라고 합니다. 요구 페이징 시스템이 안정적으로 동작하려면 페이지 교체와 프레임 할당이라는 문제를 해결해야 합니다. 요구 페이징 기법은 지금 당장의 실행에 필요한 페이지를 메모리에 적재하는 기법이라 했습니다. 즉 실행에 필요하지 않은 ..
가상 메모리란?
가상 메모리 도입의 필요성 저번 글에서 연속 메모리 할당 방식의 문제점에 대해 알아보았습니다. 연속 메모리 할당 방식에서 가장 큰 문제점은 다음과 같습니다. 1. 외부 단편화(메모리 공간이 충분한데도, 연속적으로 프로세스를 배치하지 못하여 프로세스를 실행하지 못하는 문제) 2. 물리 메모리 보다 큰 프로세스 실행 불가 이러한 문제들을 가상 메모리의 페이징 기법을 활용하여 해결이 가능합니다. https://pjh0805.tistory.com/68 연속 메모리 할당의 문제점은? 연속 메모리 할당이란? 연속 메모리 할당이란 아래 그림과 같이 프로세스에 연속적인 메모리 공간을 할당하는 방식을 뜻합니다. 연속 메모리 할당 방식 프로세스는 메모리의 빈 공간에 할당되 pjh0805.tistory.com 가상 메모리란..
자바 예외 관련 개념 정리
자바 오류 관련 클래스 계층 구조 오류란 프로그램을 실행하는데 발생하는 문제를 뜻합니다. 자바에서 오류를 크게 2가지로 나눕니다. 하나는 Error와 다른 하나는 Exception입니다. 그리고 이 둘 모두의 부모격인 클래스가 Throwable이라는 클래스입니다. 오류들은 계층구조를 이루고 있는데 밑에 그림과 같습니다. Error은 개발자가 손 쓸 수 없는 오류를 뜻합니다. 시스템 레벨에서 발생하기 때문에 개발자가 어떻게 조치할 도리가 없는것이죠. Erorr의 종류로는 쓰레드와 관련된 ThreadDeath나 JVM과 관련된 VirtualMachineError등이 있습니다. Exception은 프로그램의 잘못된 사용 또는 잘못된 코드 작성에 따라 일어나는 에러를 뜻합니다. 따라서 Error와 다르게 개발자..