SQLP 단답형 3

[SQLP 시험대비 요약/단답형] 선택도와 카디널리티

옵티마이저는 쿼리 실행 비용을 계산하기 위해 다양한 통계정보를 사용합니다. 그리고 그 중에서 비용 계산의 출발점이 되는 선택도와 카디널리티에 대해서 알아보겠습니다. 공식을 활용해 답을 구하는 방식으로 단답형 문제 출제될 가능성이 있으니 공식을 꼭 외우시길 당부드립니다. 선택도(Selectivity) 선택도란 전체 레코드 중에서 조건절에 의해 선택되는 레코드 비율이며 선택도를 계산하기 위해서는 NDV가 사용됩니다. NDV :컬럼 값 종류 개수 (Number of Distinct Values) 선택도 = 1 / NDV 카디널리티(Cardinality) 전체 레코드 중에서 조건절에 의해 선택되는 레코드 개수를 뜻 합니다. 카디널리티 = 총 로우 수 x 선택도 = 총 로우 수 / NDV 예를 들어 상품분류 칼럼..

IT 이야기/DB 2022.09.15

[SQLP 시험대비 요약/단답형] 공유커서, 세션커서, 애플리케이션 커서

커서(Cursor)란 커서는 상황에 따라 여러 가지 의미로 사용되므로 커서의 의미를 명확히 해야 합니다. 커서는 아래 3가지를 모두 일컫는 말입니다. 공유 커서 (shared cursor) : 라이브러리 캐시에 공유돼 있는 커서 세션 커서 (session cursor) : Private SQL Area(PGA)에 저장된 커서 애플리케이션 커서 (application cursor) : 세션 커서를 가리키는 핸들 공유 커서 (shared cursor) SQL을 수행하면 서버 프로세스는 해당 SQL이 라이브러리 캐시에 공유돼 있는지를 먼저 확인합니다. 없으면 최적화를 통해 실행계획을 만들고, 라이브러리 캐시에 공유합니다. 라이브러리 캐시에 공유돼 있는 Shared SQL Area를 '커서'라고 부릅니다. 세션..

IT 이야기/DB 2022.09.11

[SQLP 시험대비 요약/단답형] 소프트 파싱과 하드 파싱

DBMS는 사용자로부터 실행된 SQL을 받으면 가장 먼저 SQL 파싱을 수행합니다. 먼저 SQL Parser가 SQL 개별 요소를 분석해서 파싱트리를 생성합니다. SQL에 문법적 오류가 없는지 체크하고 (= Syntax 체크) 오브젝트 존재 여부, 권한 확인 등의 의미상 오류를 체크합니다. (= Semantc 체크) 검사가 끝나면 해당 SQL과 일치하는 SQL이 메모리에 캐싱되어 있는지를 확인하고 캐싱되어 있다면 별도의 최적화 작업을 수행하지 않고 SQL에 대한 실행계획을 찾아 바로 실행합니다. (= 소프트 파싱) 캐싱되어 있지 않다면 최적화 작업을 수행하게 됩니다. (= 하드 파싱) 이 최적화 작업은 옵티마이저가 미리 수집한 시스템 및 오브젝트 통계정보를 바탕으로 다양한 실행경로를 생성해서 비교한 후 ..

IT 이야기/DB 2022.09.10
반응형