강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트

Slides:



Advertisements
Similar presentations
북한기도제목 4 월 3 주 (4/15-4/21). 1. 북한정치 - 통일부와 국방부는 11 일 잇따라 열린 정례 브리핑에서 지난 7 일 북한 해외 식당 종업원 들이 집단 탈북한 데 이어 북한 정찰총국 출 신 북한군 대좌와 북한 외교관이 지난해 잇 따라 한국으로 망명한.
Advertisements

조손가정 급증 … 가난도 대물림 올해 7 만 가구 … 15 년 새 2 배로 월 평균소득 59 만 7000 원 불과 중학생 둘 중 한 명 “ 진학 포기 ” 창호 (14· 가명 ) 는 한 살 때 부모가 이혼하면서 할아버지 (69)· 할머니 (63) 와 살고 있다. 아버지는.
SQL Server 2000 트랜잭션과 잠금 데브피아 세미나
SQL 언어 SQL.
1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도    1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도 (상설) 기관별 맞춤형 교육 - 당 교육기관에서.
12 프로젝트 실습.
데이터 모델링 방법론 2003년 03월.
PL/SQL.
IT Application Development Dept. Financial Team May 24, 2005
데이터베이스 시스템.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
대용량 데이터베이스 솔루션 발표자: 박보영 2007년 5월19일.
오라클 데이터베이스 성능 튜닝.
Database & Internet Computing Laboratory 한 양 대 학 교
제 5 장 인덱스 생성 및 관리.
SELECT 문 사원 테이블의 모든 정보를 출력하는 예제 1. 비교 연산자 SELECT 문의 형태
Microsoft .Net Regional director
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
7장 조인.
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
MySQL performance Xhark 김재홍.
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
1 PROJECT TITLE 기획 PAGE NO. 웹 페이지 구성 화 면 번호 화 면 설 명 연 결 화 면 L1 L4 L7
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
11장. 데이터베이스 서버 구축과 운영.
요약 정보 만들기.
오라클 데이터베이스 성능 튜닝.
kHS 데이터베이스 테이블 및 인덱스 kHS.
14장 뷰.
9. 데이터베이스 9.5 SQL을 사용하는 프로그램 9.6 데이터폼 작성기를 사용하는 프로그램
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
ER-Win 사용 방법.
SQL Server™ 2000: DBA의 역할과 책임 하 성희.
단일 테이블 조회를 위한 SELECT 문을 이해한다. 열 제약조건과 행 제약조건을 이해한다. 결과 집합 변경 방법을 이해한다.
14 뷰(View) 뷰의 개념 뷰 관리.
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
SQL.
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
목차 회사소개 회사현황 시스템 구성도 SQL Server 사용 로드맵 프로젝트 개요 DB 마이그레이션
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
SQL Server 7.0 세미나 (Performance Tuning)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
고급 T-SQL.
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
13장 무결성 제약조건.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
목차 INDEX 1. 회원가입 및 로그인 2. 업체정보 3. 제조검사 신청 4. 인보이스 5. 검사진행현황(현장검사 신청)
JSP 게시판 구현.
View(뷰) 1 가상 테이블(Virtual Relation)
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
오라클 쿼리 문제 EMP (사원 테이블) DEPT (부서 테이블) 컬럼명 설명 EMPNO 사원번호 ENAME 사원명 JOB
기본적인 SELECT문 작성.
8장 테이블의 생성 및 변경 정인기.
MS-SQL7.0 Implementation 강의 노트
06. SQL 명지대학교 ICT 융합대학 김정호.
Reorganizing and Rebuilding Indexes
Ⅳ. 생식과 발생 4. 자손에게 줄 세포 만들기.
“병원 폐기물 소각장” 및 “가축 폐수 처리장” 건축 허가 반대 (2011년 “음식물처리장” 미해결 민원 연관)
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
Data Base Mysql.
책을 읽읍시다  탈향 진지하게 설명해드림 1303 김소희 1309박지호 1315이지수.
제 5 장 MariaDB인덱스 생성 및 관리.
2016년 제1차 운영위원회 평택시건강가정 ∙다문화가족지원센터
1. 칭찬 및 고발제도 운영(안) 1. 목적 : 칭찬문화의 전사적 확산,전파를 통한 칭찬문화 조성 및 건전한 회사문화 형성
Presentation transcript:

강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트 B*TREE 인덱스 생성 및 관리 강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트

목차 인덱스 생성 / 삭제 인덱스 재구성 복합 인덱스 검색 복합 인덱스 컬럼 순서 결정 인덱스 생성 지침

인덱스 생성 CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX 인덱스_이름 ON <테이블/뷰> ( 컬럼_이름 [ ASC | DESC ] [ ,...n ] )        [ WITH ( 옵션 [ ,...n ] ) ]      [ ON 파일 그룹 이름 ] CREATE CLUSTERED INDEX IDX_EMP_01 ON EMP (DEPTNO ASC, TITLE DESC ) WITH SORT_IN_TEMPDB ON HR_FILEGROUP Heap 에서 Data 검색

인덱스 생성 옵션 PAD_INDEX : fillfactor로 지정된 사용 가능한 공간의 비율이 인덱스의 중간 수준 페이지에도 적용 FILLFACTOR : 인덱스 페이지의 리프 페이지를 어느 정도 채울지 나타내는 비율을 지정 SORT_IN_TEMPDB : tempdb에 임시 정렬 결과를 저장 IGNORE_DUP_KEY : 고유 인덱스를 위반하는 행만 실패 처리 STATISTICS_NORECOMPUTE : 통계는 자동으로 갱신하지 않음 DROP_EXISTING : 인덱스 정의 수정 Heap 에서 Data 검색

인덱스 삭제 DROP INDEX 테이블_이름.인덱스_이름 - 자주 사용하지 않는 인덱스는 삭제 검토 - 자주 사용하지 않는 인덱스는 삭제 검토 - 인덱스 삭제 작업도 대량의 작업이므로 BULK_LOGGED 모델 사용을 검토 - 트랜잭션 로그 파일의 빈 공간 정보 점검 DROP INDEX EMP.IDX_EMP_01 Heap 에서 Data 검색

인덱스 재구성 WITH DROP_EXISTING WITH DROP_EXISTING DBCC DBREINDEX - 페이지 압축 - 컬럼 변경 - FILLFACTOR, PAD_INDEX 변경 - 비클러스터형 인덱스를 클러스터형 인덱스로 변경 DBCC DBREINDEX - FILLFACTOR 변경 - 테이블의 모든 인덱스 일괄 적용 가능 DBCC INDEXDEFRAG - 물리적인 리프 페이지의 순서를 논리적인 순서로 재정렬 - 기존에 지정된 FILLFACTOR 적용 DBCC DBREINDEX Heap 에서 Data 검색 DBCC INDEXDEFRAG

인덱스 재구성 비교 인덱스 재구성과 잠금 인덱스 재구성과 트랜잭션 병렬 작업 : DBCC INDEXDEFRAG는 불가 비클러스터형 인덱스 재구성 시 S-Lock 클러스터형 인덱스 재구성 시 X-Lock 작업중인 페이지 X-Lock (ON-LINE) DBCC INDEXDEFRAG DBCC DBREINDEX create index ~ WITH DROP_EXISTING 인덱스 재구성과 트랜잭션 Mass – One transaction 작업중인 페이지 수정 DBCC INDEXDEFRAG DBCC DBREINDEX create index ~ WITH DROP_EXISTING Heap 에서 Data 검색 병렬 작업 : DBCC INDEXDEFRAG는 불가

인덱스 조각화와 재구성 1 2 3 4 5 6 7 8 9 10 데이터 대량 로딩 (조각화 발생) 1 2 3 4 5 6 7 8 9 10 데이터 대량 로딩 (조각화 발생) 1 2 4 6 8 9 10 11 13 14 3 5 7 12 DBCC INDEXDEFRAG 1 2 3 4 5 6 7 8 9 10 11 12 제약 조건 유형 DBCC DBREINDEX / CREATE INDEX ~ WITH DROP EXISTING 1 2 3 4 5 6 7 8 9 10 11 12

인덱스 재구성 구문 WITH DROP_EXISTING DBCC DBREINDEX DBCC INDEXDEFRAG CREATE CLUSTERED INDEX IDX_EMP_01 ON EMP (DEPTNO ASC, TITLE DESC, SAL DESC ) WITH DROP_EXISTING ON HR_FILEGROUP DBCC DBREINDEX (‘EMP’,’IDX_EMP_01’, 80) Heap 에서 Data 검색 DBCC INDEXDEFRAG (‘NORTHWIND’,‘EMP’,’IDX_EMP_01’)

Demo : 인덱스 재구성 with drop_existing DBCC DBREINDEX DBCC INDEXDEFRAG

복합 인덱스 복합 인덱스 효과 - 책갈피 조회(BOOKMARK NAVIGATION)를 생략하여 IO 감소 - 다중의 단일 컬럼 인덱스를 단일의 복합 인덱스로 유도하여 DML 수행 시 부하 감소 - 테이블의 인덱스 숫자를 줄여서 저장 공간 효율화

select TITLE from emp where name between ‘공대열’ and ‘ 남수중’ 복합 인덱스 범위 스캔 select TITLE from emp where name between ‘공대열’ and ‘ 남수중’ Index Page Non-Leaf Level 가기순 3:301 김태훈 3:302 이소민 3:305 임세령 3:310 Leaf Level (key Value) Page 301 Page 302 Page 305 Page 310 가기순 사원 공국진 공대열 대리 … 가기순 사원 김태훈 과장 남수중 남현주 사원 … 김태훈 과장 이소민 사원 이소영 이소정 … 임세령 대리 임용찬 사원 임희찬 … 공국진 사원 남수중 과장 공대열 대리 남현주 사원 Clustered 되지 않은 Index가 있는 Heap에서 Data 검색 … … Page 101 Page 102 Page 120 Page 137 Page 205 10000 이종인 … 10001 황희정 10002 류경석 10003 최철원 10004 남현주 … 10005 이동희 10006 김태훈 10007 정원혁 10008 최인규 … 10009 전복희 10010 임무호 10011 송원석 10024 이수희 … 10025 이소민 10026 이소정 10027 황인숙 10068 홍태영 … … …

select TITLE,NAME from emp where TITLE=‘대리’ 복합 인덱스 전체 스캔 1 select TITLE,NAME from emp where TITLE=‘대리’ Index Page Non-Leaf Level 가기순 3:301 김태훈 3:302 이소민 3:305 임세령 3:310 Leaf Level (key Value) Page 301 Page 302 Page 305 Page 310 가기순 가기순 사원 공국진 공대열 대리 … 사원 김태훈 과장 남수중 남현주 사원 … 김태훈 과장 이소민 사원 이소영 이소정 … 이소민 사원 이소영 이소정 … 임세령 대리 임용찬 사원 임희찬 … 임세령 대리 임용찬 사원 임희찬 … 공국진 사원 남수중 과장 공대열 대리 남현주 사원 Clustered 되지 않은 Index가 있는 Heap에서 Data 검색 … … Page 101 Page 102 Page 120 Page 137 Page 205 10000 이종인 … 10001 황희정 10002 류경석 10003 최철원 10004 남현주 … 10005 이동희 10006 김태훈 10007 정원혁 10008 최인규 … 10009 전복희 10010 임무호 10011 송원석 10024 이수희 … 10025 이소민 10026 이소정 10027 황인숙 10068 홍태영 … … …

select TITLE,NAME from emp 복합 인덱스 전체 스캔 2 select TITLE,NAME from emp Index Page Non-Leaf Level 가기순 3:301 김태훈 3:302 이소민 3:305 임세령 3:310 Leaf Level (key Value) Page 301 Page 302 Page 305 Page 310 가기순 가기순 사원 공국진 공대열 대리 … 사원 김태훈 과장 남수중 남현주 사원 … 김태훈 과장 이소민 사원 이소영 이소정 … 이소민 사원 이소영 이소정 … 임세령 대리 임용찬 사원 임희찬 … 임세령 대리 임용찬 사원 임희찬 … 공국진 사원 남수중 과장 공대열 대리 남현주 사원 Clustered 되지 않은 Index가 있는 Heap에서 Data 검색 … … Page 101 Page 102 Page 120 Page 137 Page 205 10000 이종인 … 10001 황희정 10002 류경석 10003 최철원 10004 남현주 … 10005 이동희 10006 김태훈 10007 정원혁 10008 최인규 … 10009 전복희 10010 임무호 10011 송원석 10024 이수희 … 10025 이소민 10026 이소정 10027 황인숙 10068 홍태영 … … …

복합 인덱스 컬럼 순서 지정 Where A=? and B=? and C=? and D=? Where A=? and B=? ~ Where A=? and B=? and C=? and D=? Where A=? and B=? and C=? INDEX SEEK FILTER Where A=? and B=? and D=? Where A=? and B=?

인덱스 생성 지침 1 Clustered Index 의 선정 범위 검색 정렬된 결과 출력 집계 생성 주의 사항 1) 인덱스 컬럼의 개수 : 16 2) data type 선정 : 900바이트 3) 추가적인 비클러스터형 인덱스 존재 시 유의 (비클러스터형 인덱스의 포인터=클러스터형 인덱스 키)

인덱스 생성 지침 2 where 절에 자주 사용되는 컬럼 Join 의 연결고리로 사용되는 컬럼 복합인덱스의 컬럼 순서는 선택도가 높은 컬럼 우선, 범위 검색 조건이 아닌 컬럼 우선 순 인덱스 컬럼 가공 지양  인덱스 컬럼 가공은 인덱스 전체 스캔

인덱스 생성 지침 여러 개의 단일 컬럼 인덱스와 하나의 차선 인덱스가 효율성 비교 인덱스 존재 시 활용 여부 점검 주기적인 통계 페이지 UPDATE 관리 정기 적인 인덱스 재구성

요약 인덱스 재구성 방법 차이 이해 - WITH DROP_EXISTING - DBCC DBREINDEX - DBCC INDEXDEFRAG FILLFACTOR 비율 결정 요소 - 재구성 작업 가능 시간 산정 - 산정된 시간에 따라 테이터 인서트량 분석 - 시스템 성능 모니터를 통항 페이지 분할 정도 확인

요약 복합 인덱스 사용 시 장점 복합 인덱스 컬럼 순서 결정 - 책갈피 조회 생량을 통한 IO 감소 - 인덱스 숫자를 줄여서 저장 공간 효율화 및 DML 부하 감소 효과 복합 인덱스 컬럼 순서 결정 - where 절에 자주 사용되는 컬럼 우선 - 선택도가 높은 컬럼 우선 - 범위 검색이 아닌 컬럼 우선 인덱스 생성 지침 - where 절, join 조건에 사용되는 컬럼 - 활용도가 낮은 인덱스 삭제 여부 검토 - 테이블에서 유지 관리할 인덱스 숫자 검토 및 저장공간 검토 등