Database

CHAR 와 VARCHAR CHAR 고정길이 문자열 타입으로 만약 타입의 크기만큼의 데이터가 들어오지 않은경우 이후의 공간을 스페이스로 채워넣습니다.고정길이 문자열이기 때문에 헤더에는 레코드의 길이에 대한 정보가 들어있지 않습니다. VARCHAR 가변길이 문자열 타입으로 타입의 크기만큼의 데이터가 들어오지 않더라도 이후의 공간을 스페이스로 채워넣지 않습니다.가변길이 문자열이기 때문에 헤더에는 레코드의 길이에 대한 정보가 포함되어야 합니다. 예를들어 CHAR(5) 와 VARCHAR(5) 에 데이터 ABC 가 들어오는 경우 아래처럼 저장이 됩니다. CHAR 와 VARCHAR 의 차이점 그렇다면 실제 쿼리에서 조회를 하게 되면 어떻게 될까요?GOLDILOCKS 데이터베이스에서 테스트를 진행해보았습니다. ORA..
NL Join 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행합니다.선행 테이블의 조건을 만족하는 행을 추출하여 후행 테이블을 읽으면서 조인을 수행합니다. 이 작업은 선행 테이블의 조건을 만족하는 모든 행의 수만큼 반복 수행합니다.따라서 결과행의 수가 적은 테이블을 선행 테이블로 선택하는 것이 좋습니다. 작업 방법1. 선행 테이블에서 주어진 조건을 만족하는 행을 찾음2. 선행 테이블의 조인 키 값을 가지고 후행 테이블에서 조인 수행3. 선행 테이블의 조건을 만족하는 모든 행에 대해 1번 작업 반복 수행 그림으로 좀더 세분화합니다. 1. 선행 테이블에서 조건을 만족하는 첫 번째 행을 찾음2. 선행 테이블의 조인 키를 가지고 후행 테이블에 조인 키가 존재하는지 찾음3. 후행 테이블의 인덱..
인덱스 특징과 종류 인덱스는 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 찾아보기와 유사한 개념입니다.인덱스는 테이블을 기반으로 선택적으로 생성할 수 있는 구조입니다. 그렇지만 DML 작업은 테이블과 인덱스를 함께 변경해야 하기 때문에 오히려 느려질 수 있다는 단점이 존재합니다. 트리 기반 인덱스 데이터베이스에서 가장 일반적인 인덱스는 B-트리 인덱스 입니다. B-트리 인덱스는 브랜치 블록과 리프 블록으로 구성됩니다.브랜치 블록 중에서 가장 상위에 있는 블록을 루트 블록이라고 합니다.브랜치 블록은 분기를 목적으로 하는 블록이며, 다음 단계의 블록을 가르키는 포인터를 가지고 있습니다.리프 블록은 트리의 가장 아래 단계에 존재합니다.리프 블록은 인덱스를 구성하는 컬럼의 데이터와 해당 데이터를 가지고 있는..
옵티마이저 사용자가 질의한 SQL 문에 대해 최적의 실행 방법을 결정하는 역할을 수행합니다.이러한 최적의 실행 방법을 실행계획(Execution Plan)이라고 합니다. 옵티마이저가 최적의 실행을 결정하는 방식에 따라 규칙기반(RBO, Rule Based Optimizer)와 비용기반(CBO, Cost Based Optimizer) 방식이 있습니다. 규칙기반 옵티마이저 규칙(우선 순위)를 가지고 실행계획을 생성합니다.규실행계획을 생성할 때 참조하는 정보에는 인덱스 유무, 연산자, 객체 등의 종류가 있습니다. ORACLE 의 규칙기반 옵티마이저 순위이며, 숫자가 낮을수록 우선순위가 높습니다.1. Single row by rowid2. Single row by clusterjoin3. Single row b..
조인 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것을 말합니다.조인이 필요한 이유는 정규화에서 출발합니다.정규화란 불필요한 데이터의 정합성을 확보하고 이상현상 발생을 피하기 위해, 테이블을 분할하여 생성하는 것을 말합니다. EQUI JOIN 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법입니다.JOIN 의 조건은 WHERE 절에 기술하게 되는데 = 연산자를 사용하여 표현합니다.SELECT 테이블1.컬럼명, 테이블2.컬럼명, .. FROM 테이블1, 테이블2 WHERE 테이블1.컬럼명1 = 테이블2.컬럼명1; 이 방식을 ANSI/ISO SQL 표준 방식으로 표현하면 다음과 같습니다.SELECT 테이블1.컬럼명, 테이블2.컬럼명, .. FROM 테이블1 IN..
집계함수여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 다중햄 함수 중 집계 함수 입니다. 집계함수의 특성1. 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다.2. GROUP BY 절은 행들을 소그룹화 한다.3. SELECT, HAVING, ORDER BY 절에 사용할 수 있다. 집계함수의 종류 집계 함수 사용 목적 COUNT(*) NULL 값을 포함한 행의 수를 출력한다. COUNT(표현식) 표현식의 값이 NULL 값인 것을 제외한 행의 수를 출력한다. SUM([DISTINCT | ALL] 표현식) 표현식의 NULL 값을 제외한 합계를 출력한다. AVG([DISTINCT | ALL] 표현식) 표현식의 NULL 값을 제외한 평균을 출력한다. MAX([DISTINCT | ..
함수란? 벤더에서 제공하는 함수인 내장함수와 사용자가 정의할 수 있는 함수로 나뉩니다.여기에서는 기본적으로 제공되는 SQL 내장 함수에 대해 설명합니다. 내장함수 단일행 값이 입력되는 단일행 함수와 여러 행의 값이 입력되는 다중행 함수로 나뉩니다.다중행 함수는 다시 집계 함수, 그룹 함수, 윈도우 함수로 나뉩니다. 단일행 함수 단일행 함수의 종류는 문자형, 숫자형, 날짜형, 변환형, NULL 관련 함수가 있습니다. 문자형 함수 문자형 함수는 문자 데이터를 매개 변수로 받아들여서 문자나 숫자 값의 결과를 돌려주는 함수입니다. 문자형 함수 함수 설명 LOWER(문자열) 문자열의 알파벳 문자를 소문자로 바꾸어 준다. UPPER(문자열) 문자열의 알파벳 문자를 대문자로 바꾸어 준다. ASCII(문자) 문자나 숫..
WHERE 조건절의 개요자료를 검색할 때 SELECT 절과 FROM 절만을 사용하여 기본적인 SQL 문장을 구성한다면, 테이블에 있는 모든 자료가 출력되기 때문에실제로 원하는 자료를 확인하기 어렵습니다.따라서 WHERE 절을 사용하여 원하는 자료들로 결과를 제한할 수 있습니다.SELECT [DISTINCT/ALL] 컬럼명 [ALIAS명] FROM 테이블명 WHERE 조건식;WHERE 절은 FROM 절 다음에 위치하며, 조건식은 아래 내용으로 구성됩니다.1. 컬럼명 ( 보통 조건식의 좌측에 위치 )2. 비교 연산자3. 문자, 숫자, 표현식 ( 보통 조건식의 우측에 위치 )4. 비교 컬럼명 ( JOIN 사용 시) 연산자의 종류WHERE 절에 조건식을 사용할 때, 사용되는 연산자 입니다. 구분 연산자 의미 비..
원인 해당 멤버가 비정상 적으로 종료하는 경우 발생합니다. 해결방안[방안 1] 비정상 종료한 멤버를 클러스터에서 제거합니다.gSQL> ALTER DATABASE DROP INACTIVE CLUSTER MEMBERS; [방안 2] 비정상 종료한 멤버를 클러스터에 조인합니다.gSQL> startup gSQL> ALTER SYSTEM JOIN DATABASE; gSQL> ALTER DATABASE REBALANCE;
원인 클러스터 멤버가 비정상 종료하여, 원격지에 접속한 세션이 비정상 종료로 트랜잭션이 롤백되는 경우 발생합니다. 해결방안 [방안 1] 비정상 종료한 멤버를 클러스터에서 제거한 후, 쿼리를 수행합니다.gSQL> ALTER DATABASE DROP INACTIVE CLUSTER MEMBERS; [방안 2] 비정상 종료한 멤버를 클러스터에 다시 조인한 후, 쿼리를 수행합니다.gSQL> startup gSQL> ALTER SYSTEM JOIN DATABASE; gSQL> ALTER DATABASE REBALANCE;
꽁담
'Database' 카테고리의 글 목록 (13 Page)