제 5 장 인덱스 생성 및 관리.

Slides:



Advertisements
Similar presentations
1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
Advertisements

Chapter 04 SQL 고급.
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
SQL 언어 SQL.
데이터베이스 9주차 : 데이터베이스 설계 2교시 : 데이터베이스 설계(3)
Allow reverse scans allow reverse scnas. allow reverse scans allow reverse scnas.
능력단위명 : 데이터베이스 구현( _14v2) 대분류 중분류 소분류 세분류 정보통신(20) 정보기술(01)
소리가 작으면 이어폰 사용 권장!.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
데이터 모델링 방법론 2003년 03월.
DRIMS-Cloud 소개.
PL/SQL.
데이터베이스 시스템.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
DataBase 기본 교육 신입사원용 최지철.
Database & Internet Computing Laboratory 한 양 대 학 교
Chapter 5 SQL: 확장된 질의, 주장, 트리거, 뷰.
SELECT 문 사원 테이블의 모든 정보를 출력하는 예제 1. 비교 연산자 SELECT 문의 형태
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
APM 실습 (MySQL).
SQL-99: 스키마 정의, 기본제약조건, 질의어 충북대학교 구조시스템공학과 시스템공학연구실
JDBC 프로그래밍 이수지 이동주 1.
7장 조인.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
Chapter 01 데이터베이스 시스템.
관계 데이터 모델과 제약조건 개념, 특성, 키, 무결성 제약조건.
11장. 데이터베이스 서버 구축과 운영.
오라클 데이터베이스 성능 튜닝.
kHS 데이터베이스 테이블 및 인덱스 kHS.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
14장 뷰.
Chapter 05 데이터베이스 프로그래밍.
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
9장 테이블 생성 및 변경, 삭제하기(DDL).
SQL.
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
SQL (structured query language)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
Chapter 3: Introduction to SQL
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
고급 T-SQL.
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
13장 무결성 제약조건.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
SQL Query in the SSMS : DB, Table
제 20 장 오라클에서 회복 및 백업 기능.
JSP 게시판 구현.
View(뷰) 1 가상 테이블(Virtual Relation)
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소에 근무하던 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS.
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
오라클 쿼리 문제 EMP (사원 테이블) DEPT (부서 테이블) 컬럼명 설명 EMPNO 사원번호 ENAME 사원명 JOB
기본적인 SELECT문 작성.
8장 테이블의 생성 및 변경 정인기.
MS-SQL7.0 Implementation 강의 노트
06. SQL 명지대학교 ICT 융합대학 김정호.
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Stored program 장종원
Mariadb 트랜잭션과 동시성 제어 장종원
Data Base Mysql.
제 5 장 MariaDB인덱스 생성 및 관리.
Presentation transcript:

제 5 장 인덱스 생성 및 관리

오라클 테이블 유형 힙 구조 테이블  no index 인덱스 구조 테이블  기본 인덱스 데이터가 추가될 때 가장 적절한 빈 공간에 저장 CREATE TABLE에 의해 생성되는 기본적인 테이블 유형 정렬되지 않은 행들의 모임 인덱스 구조 테이블  기본 인덱스 기본 키(색인)에 따라 정렬된 순서로 저장 인덱스 클러스터 테이블  클러스터링 인덱스 + α 여러 테이블의 데이터가 동일한 블록에 저장될 수 있음 동일한 클러스터 키 값을 갖는 데이터는 함께 저장됨 클러스터 키는 B*트리 인덱스를 사용하여 만들어짐 해시 클러스터 테이블 중첩 테이블 임시 테이블 객체 테이블

오라클 테이블 유형 힙 구조 데이블 생성 예제: 인덱스 구조 테이블 생성 예제: CREATE TABLE dept ( x int primary key, y varchar2(25), z date ) ; 인덱스 구조 테이블 생성 예제: z date ) organization index;

오라클 테이블 유형 클러스터 테이블 생성 예제: Create cluster emp_dept_cluster (deptno number(2)) size 1200; Create index emp_dept_cluster_idx on cluster emp_dept_cluster; Create table cluster3_dept (deptno number(2) primary key, dname varchar2(14), … ) cluster emp_dept_cluster(deptno); Create table cluster_emp (empno number primary key, ename varchar2(10), … deptno number(2) references dept(deptno) )

오라클 테이블 유형 두 테이블에 대한 클러스터 생성 예: 10 20 30 40

Speed-start Web services 2004 - SOAs and Web services ▪ 오라클의 인덱스 (INDEX) 테이블의 데이터를 빨리 찾기 위한 꼬리표/찾아보기 인덱스 데이터가 별도로 저장됨 저장된 인덱스를 통해 데이터 조회  보조 인덱스 오라클 인덱스의 종류 B*트리 인덱스 : 기본 인덱스/클러스터링 인덱스/보조 인덱스 등을 저장하는 자료 구조 인덱스 구조 테이블 : 기본 인덱스 B*트리 클러스터 인덱스 : 클러스터 인덱스 반전 키 인덱스 내림차순 인덱스 비트맵 인덱스 함수 기반 인덱스 애클리케이션 도메인 인덱스 인터미디어 텍스트 인덱스 ibm.com/developerWorks/webservices - © Copyright 2004 IBM Corporation.

Speed-start Web services 2004 - SOAs and Web services ▪ 오라클의 보조 인덱스 생성/제거 인덱스 생성 CREATE [UNIQUE] INDEX [schema.] index_name ON [schema.] table_name (col1, [col2, col3 …]); create index emp_idx on emp(ename, dno); 인덱스 제거 DROP INDEX [schema.] index_name; drop index emp_idx; ibm.com/developerWorks/webservices - © Copyright 2004 IBM Corporation.

인덱스 관리 인덱스 생성시 고려 사항 인덱스는 열 단위에 생성된다 Where 절에서 자주 사용되는 열을 인덱스로 만든다 데이터의 중복도가 높은 열은 인덱스를 만들어도 별 효과가 없다 외래 키가 사용되는 열에는 인덱스를 생성하는 것이 좋다 Join에 자주 사용되는 열에는 인덱스를 생성하는 것이 좋다 INSERT, DELETE, UPDATE가 얼마나 자주 일어나는지 고려해야 한다 클러스터링 인덱스는 하나만 생성할 수 있다 사용하지 않는 인덱스는 제거하라 계산 열에도 인덱스를 활용할 수 있다

04. 인덱스 데이터베이스의 물리적 저장 인덱스와 B-tree 오라클 인덱스 인덱스의 생성 인덱스의 재구성과 삭제

SQL Developer / SQL PLUS 1. 데이터베이스의 물리적 저장 중앙처리장치 OS TOOL CPU 사용자 UI SQL Developer / SQL PLUS 오라클 클라이언트 커 널 DBMS 주기억장치 RAM 오라클 INSTANCE 파일시스템 보조기억장치 DB FIELS 데이터베이스 HDD, SSD 데이터 파일 컨트롤 파일 리두 로그파일 그림 4-7 DBMS와 데이터 파일

1. 데이터베이스의 물리적 저장 그림 4-9 오라클의 내부 구조

1. 데이터베이스의 물리적 저장 표 4-8 오라클의 주요 파일 파일 설명 데이터 파일 운영체제상에 물리적으로 존재 사용자 데이터와 개체를 저장 테이블과 인덱스로 구성. 온라인 리두 로그 데이터의 모든 변경사항을 기록 데이터베이스 복구에 사용되는 로그 정보 저장 최소 두 개의 온라인 리두 로그 파일 그룹을 가짐 컨트롤 파일 오라클이 필요로 하는 다른 파일들(데이터 파일, 로그 파일 등)의 위치 정보를 저장 데이터베이스 구조 등의 변경사항이 있을 때 자동으로 업데이트됨 오라클 DB의 마운트, 오픈의 필수 파일 복구 시 동기화 정보 저장

2. 인덱스와 B-tree 인덱스(index, 색인)란 도서의 색인이나 사전과 같이 데이터를 쉽고 빠르게 찾을 수 있도록 만든 데이터 구조 그림 4-10 B-tree의 구조

2. 인덱스와 B-tree 인덱스의 특징 인덱스는 테이블에서 한 개 이상의 속성을 이용하여 생성함 빠른 검색과 함께 효율적인 레코드 접근이 가능함 순서대로 정렬된 속성과 데이터의 위치만 보유하므로 테이블보다 작은 공간을 차지함 저장된 값들은 테이블의 부분집합이 됨 일반적으로 B-tree 형태의 구조를 가짐 데이터의 수정, 삭제 등의 변경이 발생하면 인덱스의 재구성이 필요함 그림 4-11 B-tree에서 검색 예

3.1 오라클 B-tree 인덱스 오라클 인덱스는 B-tree를 변형하여 사용하며 명칭은 B-tree로 동일한 이름으로 부름 그림 4-12 인덱스의 예

3.2 오라클 인덱스의 종류 표 4-9 오라클 인덱스의 종류

4. 인덱스의 생성 인덱스 생성 시 고려사항 인덱스의 생성 문법 인덱스는 WHERE 절에 자주 사용되는 속성이어야 함 인덱스는 조인에 자주 사용되는 속성이어야 함 단일 테이블에 인덱스가 많으면 속도가 느려질 수 있음(테이블 당 4~5개 정도 권장) 속성이 가공되는 경우 사용하지 않음 속성의 선택도가 낮을 때 유리함(속성의 모든 값이 다른 경우) 인덱스의 생성 문법 CREATE [REVERSE]┃[UNIQUE] INDEX 인덱스이름] ON 테이블이름 (컬럼 [ASC┃DESC] [{, 컬럼 [ASC | DESC]} …])[;]

4. 인덱스의 생성 질의 4-24 Book 테이블의 bookname 열을 대상으로 비 클러스터 인덱스 ix_Book을 생성하라. CREATE INDEX ix_Book ON Book (bookname); 질의 4-25 Customer 테이블의 name 열을 대상으로 클러스터 인덱스 cix_Customer를 생성하시오. CREATE INDEX ix_Book2 ON Book(publisher, price);

4. 인덱스의 생성 표 4-14 생성된 인덱스 확인 및 실행 계획

5. 인덱스의 재구성과 삭제 인덱스의 재구성은 ALTER INDEX 명령을 사용함 생성 문법 삭제 문법 ALTER [REVERSE] [UNIQUE] INDEX 인덱스이름 [ON {ONLY} 테이블이름 {컬럼이름 [{, 컬럼이름 } …])] REBUILD[;] 질의 4-26 인덱스 ix_Book을 재생성하시오. ALTER INDEX ix_Book REBUILD; DROP INDEX 인덱스이름 질의 4-27 인덱스 ix_Book을 삭제하시오. DROP INDEX ix_Book;