sqlp 9

[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

[DB 기술면접] 해시 조인(Hash Join)이란 무엇인가

정의 해시 조인은 작은 집합으로 해시 테이블을 생성하고 큰 집합을 읽으면서 해시 테이블을 탐색하는 조인 기법입니다. 해시 테이블을 생성하는 데 사용되는 집합을 Bulid Input이라 하고 해시 테이블을 탐색하는 데 사용되는 집합을 Probe Input 이라고 합니다. 즉, 해시 조인은 두 단계로 진행됩니다. 작동 매커니즘 1. Build 단계 : 작은 쪽 테이블(Build Input)을 스캔해서 해시 테이블(해시 맵)을 생성한다. 2. Probe 단계 : 큰 쪽 테이블(Probe Input)을스캔해서 해시 테이블을 탐색하면서 조인한다. 예를 들어 배송업체 관리 테이블 (약 400건), 배송내역 테이블 (약 80,000건)을 해시 조인한다고 가정해보겠습니다. 1. Build 단계 : 우선 작은 쪽 테이블..

IT 이야기/DB 2022.09.09

[DB 기술면접] 클러스터 인덱스, 넌클러스터 인덱스 차이점은?

SQL Server 에서는 인덱스를 클러스터 인덱스와 넌클러스터 인덱스로 나눌 수 있습니다. 이 둘의 가장 큰 차이점은 리프 페이지 구조인데요. 각각의 특징을 살펴보도록 하겠습니다. 클러스터 인덱스 1. 인덱스의 리프 페이지가 곧 데이터 페이지이다. 2. 이 데이터 페이지에 있는 데이터는 클러스터 인덱스의 키 컬럼으로 모두 정렬되어 있다. 아래와 같이 클러스터 인덱스를 만들어보자 CREATE CLUSTERED INDEX IDX__CUST_TABLE__TEST ON dbo.CUST_TABLE(cust_no, svc_nation_cd) 마지막 리프 페이지에는 인덱스 키 컬럼 외 나머지 컬럼 정보가 저장됩니다. 넌클러스터 인덱스 넌클러스터 인덱스의 리프 페이지 구조는 해당 테이블에 클러스터 인덱스가 있냐 없냐..

IT 이야기/DB 2022.09.08

SQLP 응시자격 (4년제 대학 졸업했으면 바로 응시가능 합니다.)

SQLP 응시자격 SQLP를 취득하기 위해서 SQLD를 꼭 먼저 취득해야 한다고 알고 계신 분들이 더러 있는데, 그것은 잘못된 정보입니다. 한국데이터진흥원은 SQLP 응시자격을 아래와 같이 고시합니다. SQL 전문가 자격시험의 응시자격은 아래와 같으며 응시자격은 시험일 기준 시험일 이전에 응시자격 요건이 충족되어야 한다. 학력/경력기준 또는 자격기준 중 한가지의 요건이 충족될 경우 응시자격이 부여된다. 응시자격 학력 및 경력 기준 - 학사학위 이상 취득한 자 - 전문학사학위 취득 후 실무경력 2년 이상인 자 - 고등학교 졸업한 후 실무경력 4년 이상인 자 자격보유 기준 - 국내·외 데이터베이스 관련 자격을 취득한 자 - SQL 개발자 자격을 취득한 자 - 데이터아키텍처 전문가 및 준전문가 자격을 취득한 ..

IT 이야기/DB 2022.09.03

SQLP 자격증의 가치와 공부하는 이유

SQLD 자격증이 있는데 SQLP도 따야할까? 데이터 직무의 중요성과 인기가 커지면서 많은 분들이 SQLD를 응시하고 있습니다. 실제로 SQLD 자격증 응시자 수는2016년 4,256명에서 2021년 23,391명으로 약 5배 이상이나 증가했으며 올해 2022년까지도 꾸준히 증가할 것으로 예상됩니다. 그 원인 중 하나는 비IT 직군의 직원들도 본인들의 기업 환경에서 데이터를 직접 뽑아 활용할 수 있어야만 유능한 직원으로 인정받고, 그런 직원들이 속한 기업만이 선도적인 기업으로 설장할 수 있는 시대가 왔기 때문이 아닐까 싶습니다. 그러나 문제는 자격증의 가치입니다. 다양한 직군의 사람들이 SQLD 자격증을 취득하면서 SQL이 기본 소양이 되는 이러한 변화는 사회 전반적으로 매우 바람직하지만 IT/데이터를 ..

IT 이야기/DB 2022.09.02

[MSSQL] EXISTS문 사용법 및 예제

안녕하세요. 마술공입니다. MS-SQL에서 EXISTS문을 사용하는 스크립트를 소개해드리겠습니다. 스크립트를 직접 보면 직관적으로 의미를 파악할 수 있으니 작업에 참고하시기 바랍니다. EXISTS 문은 서브 쿼리를 입력받아 하나의 행이라도 반환하면 TRUE를 그렇지 않으면 FALSE를 반환합니다. 그렇다면 어떤 경우에 EXISTS 문을 활용할 수 있을까요? 우선 테스트에 사용할 테이블을 만들겠습니다. 예제 스크립트 (테이블 생성) CREATE TABLE dbo.ORDER_TABLE ( orderid varchar(10) , orderdate datetime , empid varchar(10) , custid varchar(10) ) INSERT INTO ORDER_TABLE(orderid, orderda..

IT 이야기/DB 2022.08.31

45회 SQLP 합격 후기 (SQL 전문가) 및 공부법

안녕하세요. 마술공입니다. 시간이 좀 지났지만 45회 SQLP 합격 후기와 공부법을 공유하고자 글을 작성합니다. 시험은 22년 5월 28일에 치뤘으며, 최종 결과 발표는 22년 6월 24일에 있었습니다. 왜, 시험을 치뤘는가 일반적으로 IT 업계에서 자격증은 중요하지 않다(?)는 인식이 깔려있다고 생각합니다. 대부분의 자격증이 당장의 실무 능력을 보장할 수 없기 때문입니다. 그래서 자격증을 따는 것 보다 직접 무엇인가를 만들어내는 것을 권장합니다. (ex. 포트폴리오, 코딩테스트 등) 하지만 SQLP는 달랐습니다. 회사에서 SQL 튜닝 업무를 맡게되어 데이터베이스에 대해서 공부할 수 밖에 없었는데 실무에 필요한 많은 내용이 자격증 시험 범위와 일치했습니다. 즉, 자격증 공부만으로 실무에 써먹을 내용이 많..

IT 이야기/DB 2022.08.25
반응형