728x90
반응형
테이블 파티션
- 대용량의 테이블을 여러개의 데이터 파일에 분리하여 저장하는 것
- 물리적으로 분리된 데이터 파일에 저장되어 입력/수정/삭제/조회 성능이 향상되고, 독립적 관리가 가능
- 조회의 범위를 줄이는 효과가 잇어 성능이 향상됨
- RANGE PARTITION
- 값의 범위를 기준으로 파티션을 나눠 저장하는 방법
ex. 매출액이 50000이상인 레코드와 미만인 레코드를 별도로 저장
- 값의 범위를 기준으로 파티션을 나눠 저장하는 방법
- LIST PARTITION
- 특정 값을 기준으로 분할
ex. 특정 값이 100일 때와 250일때 각각 다른 데이터파일에 저장
- 특정 값을 기준으로 분할
- HASH PARTITION
- 데이터베이스 관리 시스템이 자체적으로 해시함수를 사용해 분할하고 관리하는 방식
옵티마이저
- SQL 실행계획을 수립하고, SQL을 실행하는 데이터베이스 관리 시스템의 소프트웨어
- 같은 SQL문이더라도 어떻게 실행하냐에 따라 성능이 달라진다. (소요시간, 자원사용량 등)
=> SQL문을 분석한 후 일정한 기준을 통해 실행계획을 세워줘야함. 이때 사용되는 것이 옵티마이저
- SQL문 작성 → Parsing(문법검사, 구문 분석) → 옵티마이저(비용기반, 규칙기반) → 실행계획(PLAN_TABLE 저장) → SQL 실행
- 옵티마이저(비용기반, 규칙기반)
- 옵티마이저는 ‘비용기반 옵티마이저'와 ‘규칙기반 옵티마이저'가 있으며,
최신 Oracle은 비용기반을 deafult로 사용한다. - 비용기반 옵티마이저는
- 시스템 통계와 오브젝트 통계를 통해 해당 SQL문 실행에 대한 총 비용을 계산하고
- 총 비용이 가장 적은 쪽으로 실행 계획을 수립한다. - 규칙기반 옵티마이저는
- 15가지 우선순위를 기준으로 실행계획을 수립한다.
- 옵티마이저는 ‘비용기반 옵티마이저'와 ‘규칙기반 옵티마이저'가 있으며,
INDEX
- 데이터의 색인(목차)와 동일. 원하는 데이터를 빠르게 조회할 수 있다.
- 인덱스는 인덱스 키를 기준으로 정렬되어있다. => 따라서 탐색이 빨라진다.
- Primary Key (기본키) 는 자동적으로 INDEX가 된다.
- 하나의 테이블에 여러 개의 인덱스를 생성할 수 있고, 하나의 인덱스는 여러 컬럼으로 구성될 수 있다.
- INDEX UNIQUE SCAN : 인덱스 키값이 중복되지 않을 때 해당 키를 통해 탐색
- INDEX RANGE SCAN : 특정 범위를 조회하는 WHERE문을 사용하여 해당 영역을 스캔
- INDEX FULL SCAN : 인덱스의 처음부터 끝까지 모두 스캔
옵티마이저 문제
- 규칙기반 옵티마이저에서 가장 높은 우선순위는 전체 테이블 스캔 방식이다.
>> 일반적으로 ROWID를 기반으로 스캔하는 것이 가장 높은 우선순위를 가진다. - 인덱스는 오름차순으로 생성/정렬된다.
>> 내림차순으로 생성 및 정렬됨 - 인덱스 범위 스캔은 항상 복수의 결과를 출력한다.
>> 스캔 범위에따라 단수의 결과 혹은 0건의 결과 출력도 가능하다. - 같은 SQL문이더라도 실행계획이 다르면 결과가 다르다.
>> 동일하다. - 자주 변화하는 속성을 인덱스로 설정하는 것은 좋지 않다.
>> 그렇다. 삭제 및 조회 등의 작업에 있어서 변화를 초래하지 않는 것이 좋다. - 보조인덱스를 통한 스캔은 항상 전체 테이블 스캔보다 효율적이다.
>> UNIQUE 속성을 가진 인덱스가 아니라면 중복 데이터 입력 가능하다. - 비용 기반 옵티마이저는 항상 인덱스 스캔이 유리하다고 판단한다.
>> 랜덤 액세스의 경우에는 많은 양의 데이터를 읽을 때 부하가 커서 오히려 전체 테이블 스캔이 유리할 수 있다. - 비용 기반 옵티마이저는 항상 인덱스 스캔이 유리하다고 판단한다.
>> 비용 기반으로, 전체 스캔이 유리할 수도 있다. - 파티션 테이블은 파티션에 대해 인덱스를 생성할 수 있다.
>> 파티션 키에 대해 인덱스를 생성가능하며, 그 경우 해당 인덱스를 Global 인덱스라고 부른다. - 인덱스 수는 데이터의 입력, 삭제, 수정, 속도에 영향을 미치지 않는다.
>> 인덱스의 수가 증가할 경우 입력, 삭제, 수정 속도가 느려질 수 있다. - 인덱스 생성이 가능한 캐릭터 타입은 VARCHAR 와 NUMBER 뿐이다.
>> VARCHAR, NUMBER, DATE, CHAR 모두 가능하다. - 인덱스 종류는 순차 인덱스, 비트맵, 결합인덱스, 클러스터, 해시 인덱스가 있다.
>> 참이다.
정답
SQLD 목차 바로가기
728x90
반응형
'자격증 > SQLD' 카테고리의 다른 글
[SQLD 자격증] 1과목 | 데이터모델의 이해, 엔터티, 속성 (0) | 2023.03.06 |
---|---|
[SQLD 자격증] 2과목 | 옵티마이저 JOIN 설명 & 문제풀이 (0) | 2023.03.06 |
[SQLD 자격증] 2과목 | WINDOW 함수 전체 설명 & 문제풀이 (0) | 2023.03.06 |
[SQLD 자격증] 2과목 | 계층형 조회 설명 & 문제풀이 (0) | 2023.03.06 |
[SQLD 자격증] 2과목 | JOIN, UNION, MINUS, 서브쿼리 설명 & 문제풀이 (0) | 2023.03.06 |
댓글