본문 바로가기

SQLP17

[J STORY] SQLP - 데이터베이스 CALL과 네트워크 부하 1. 데이터베이스 CALL 종류 가. SQL 커서에 대한 작업 요청에 따른 구분 Parse Call : SQL 파싱을 요청하는 Call Execute Call : SQL 실행을 요청하는 Call Fetch Call : SELECT 문의 결과 데이터 전송을 요청하는 Call select cust_nm, birthday from customer where cust_id = :cust_id call count cpu elapsed disk query current rows ----- ------ ----- ------- ---- ----- ------ ----- Parse 1 0.00 0.00 0 0 0 0 Execute 5000 0.18 0.14 0 0 0 0 Fetch 5000 0.21 0.25 0 200.. 2021. 4. 25.
[J STORY] SQLP - SQL 파싱 부하 1. SQL 처리과정 사용자는 구조화된 질의언어(SQL, Structured Query Language)를 통해 사용자가 원하는 결과집합을 정의 DBMS는 사용자의 SQL을 SQL옵티마이저를 통해 실행계획으로 작성해줌 가. SQL 파싱(Parsing) SQL을 실행하면 제일먼저 SQL 파서(parser)가 SQL 문장에 문법적 오류가 없는지 검사(Syntax 검사) 문법적 오류가 없다면 의미상 오류가 없는지 검사(Semantic 검사, 오브젝트 존재유무등) 검사를 다 마치면, 사용자가 발생한 SQL과 그 실행계획이 라이브러리캐시(프로시저캐시)에 캐싱되어 있는지 확인 캐싱되어 있다면 소프트파싱, 캐싱되어있지 않다면 하드파싱 파싱종류 소프트파싱 (Soft Parsing) SQL과 실행계획을 캐시에서 찾아 곧.. 2021. 4. 25.
SQLP - 인덱스 기본 1. 인덱스 특징과 종류 인덱스는 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 찾아보기(색인)과 유사한 개념이다. 인덱스는 테이블을 기반으로 선택적으로 생성할 수 있는 구조이다. 인덱스의 기본적인 목적은 검색 성능의 최적화이다. 검색 조건을 만족하는 데이터를 인덱스를 통해 효과적으로 찾을수 있도록 돕는다. DML 작업은 테이블과 인덱스를 함께 변경하므로 느려지는 단점이 존재한다. 가. 트리기반 인덱스 DBMS에서 가장 일반적인 인덱스이다. B 트리 인덱스는 브랜치블록과 리프 블록으로 구성한다. 브랜치 블록중 가장 상위에 있는 블록을 루트 블록이라한다. 브랜치 블록은 분기를 목적으로 하는 블록이다. 리프 블록은 트리 가장 아래 단계에 존재한다. 리프블록은 인덱스를 구성하는 칼럼의 데이터와 해당 데이터를.. 2021. 4. 24.
SQLP - 데이터베이스 아키텍처 1. 아키텍처 가. ORACLE 아키텍처 데이터베이스 : 물리적인 디스크에 저장된 데이터집합(데이터파일, 리두로그파일, 컨트롤파일) 인스턴스 : 공유메모리(SGA)와 이를 엑세스하는 프로세스 집합 ★ 하나의 인스턴스는 하나의 데이터베이스를 엑세스(Single), 여러개의 인스턴스는 하나의 데이터베이스를 엑세스(RAC) 나. SQL SERVER 아키텍처 정의 하나의 인스턴스당 최고 32,767개의 데이터베이스를 정의해서 사용 기본적으로 시스템데이터베이스가 만들어지면, 사용자데이터베이스를 추가하여 생성하는 구조 시스템데이터베이스 : mster, model, msdb, tempdb 등 사용자데이터베이스 : 데이터파일(mdf), 트랜잭션로그파일(ldf), 보조데이터파일(ndf) 2. 프로세스 서버프로세스 : 전.. 2021. 4. 24.
SQLP - 옵티마이저와 실행계획 1. 옵티마이저 옵티마이저는 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 역할을 수행한다. 옵티마이저가 선택한 실행 방법의 적절성 여부는 질의 수행 속도에 가장 큰 영향을 미치게된다. 옵티마이저가 최적의 살행 방법을 결정하는 방식에는 규칙기반(RBO, Rule Based Optimizer)와 비용기반(CBO, Cost Based Optimizer)로 구분한다. 현재는 비용기반(CBO) 위주로 신규 기능에 지원되고, 규칙기반(RBO) 에서는 신규 기능에 대해서 지원하지않는다. 가. 규칙기반 옵티마이저 규칙기반 옵티마이저가 실행계획을 생성할 때 참조하는 정보에는 SQL문을 실행하기 위해서 이용 가능한 인덱스 유무와(유일, 비유일, 단일, 복합 인덱스) 종류, SQL문 에서 사용하는 연산자(=.. 2021. 4. 18.
[J STORY] SQLP - DML(DATA MANIPULATION LANGUAGE) 1. INSERT 테이블에 데이터를 입력하는 방법은 두 가지 유형이 있으며 한 번에 한 건만 입력된다. 해당 칼럼명과 입력되어야 하는 값을 서로 1:1로 매핑해서 입력하면 된다. 해당 칼럼의 데이터 유형이 CHAR나 VARCHAR2 등 문자 유형일 경우 『 ' 』(SINGLE QUOTATION)로 입력할 값을 입력한다. 숫자일 경우 『 ' 』(SINGLE QUOTATION)을 붙이지 않아야 한다. 첫 번째 유형은 테이블의 칼럼을 정의할 수 있는데, 이때 칼럼의 순서는 테이블의 칼럼 순서와 매치할 필요는 없으며, 정의하지 않은 칼럼은 Default로 NULL 값이 입력된다. 단, Primary Key나 Not NULL 로 지정된 칼럼은 NULL이 허용되지 않는다. 두 번째 유형은 모든 칼럼에 데이터를 입력.. 2021. 4. 12.