다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Similar documents
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Microsoft Word - SQL튜닝_실습교재_.doc

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

歯sql_tuning2

Spring Boot/JDBC JdbcTemplate/CRUD 예제

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

13주-14주proc.PDF

10.ppt

Microsoft PowerPoint - 10Àå.ppt

SQL Tuning Business Development DB

Jerry Held

배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (


Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

RDB개요.ppt

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Microsoft PowerPoint Python-DB

´ÙÁß Row °á°ú¸¦ ´ÜÀÏÇàÀ¸·Î Äĸ¶·Î ºÐ¸®ÇØ Ãâ·ÂÇÏ´Â ¹æ¹ý

예제소스는 에서다운로드하여사용하거나툴바의 [ 새쿼리 ]( 에아래의소스를입력한다. 입력후에는앞으로실습을위해서저장해둔다. -- 실습에필요한 Madang DB 와 COMPANY DB 를모두생성한다. -- 데이터베이스생성 US

FlashBackt.ppt

Tablespace On-Offline 테이블스페이스 온라인/오프라인

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

Microsoft Word - 04_EXCEPTION.doc

5장 SQL 언어 Part II

슬라이드 1

TITLE

DBMS & SQL Server Installation Database Laboratory

Microsoft PowerPoint - Oracle Data Join Method.pptx [읽기 전용]

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

Partition Table

<4D F736F F D203033C6C4C6BCBCC72DB8AEBFC0B1D7B9E6B9FD2E646F63>

Index

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

슬라이드 1

PowerPoint Presentation

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

PowerPoint 프레젠테이션

ESQL/C

NLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해,

Microsoft Word - PLSQL.doc

SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 )

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

결과보고서

ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들

윈도우시스템프로그래밍

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

강의 개요

Microsoft Word - 05_SUBPROGRAM.doc

빅데이터분산컴퓨팅-5-수정

ORACLE 꼭 이 책의 내용들을 다 외울 정도로 공부하여 스스로의 지식으로 만들기 바랍 니다. 마치 작은 씨앗에서 큰 나무가 자라나는 것처럼 이 책 한 권은 작지만 이 책을 다 읽은 후에는 큰 나무가 되기를 바랍니다. 이 책은 SQL 책입니다. 그러나 SQL을 잘 작

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

Microsoft PowerPoint - 1_3_DBA_SQL_tuning

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

문서 템플릿

ALTIBASE HDB Patch Notes

슬라이드 제목 없음

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

PostgreSQL 2 Uniersity of California at Berkeley ( ) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1

<4D F736F F F696E74202D20BFC0B6F3C5AC2D38C0E52DBAE4BFCD20BDC3BDBAC5DB20C4ABC5BBB7CEB1D72DBFC0B6F3C5AC2E BC8A3C8AF20B8F0B

SQL 실행계획을 이용한 패턴튜닝_ _최종.ppt [호환 모드]

PowerPoint Presentation

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

OCW_C언어 기초

Tina Admin

sms_SQL.hwp

ORACLE-SQL

목 차

PowerPoint 프레젠테이션

Microsoft Word - 기술노트[19회] Flashback.doc

UNIST_교원 홈페이지 관리자_Manual_V1.0

윈도우시스템프로그래밍

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

The Self-Managing Database : Automatic Health Monitoring and Alerting

제목 레이아웃

歯PLSQL10.PDF

PowerPoint 프레젠테이션

MS-SQL SERVER 대비 기능

6장. SQL

MySQL-.. 1

Microsoft Word - 03_SQL_CURSOR.doc

chap 5: Trees

CH04) 쿼리 (Query) 데이터베이스일반 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본

슬라이드 제목 없음

Tina Admin

ePapyrus PDF Document

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - ch07_데이터베이스 언어 SQL.pptx

PowerPoint 프레젠테이션

MySQL-Ch10

91 // 물리적으로닫지않고 cache에반환만한다. opstmt.close(); } opstmt.setint(3, lowerlimit); opstmt.setint(4, upperlimit); // Execute query rset = opstmt.executequery

Microsoft PowerPoint - 사본 - DB06-SQL,시스템카탈로그,뷰.ppt

Microsoft Word - php14.doc

Transcription:

다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저

9 장인덱스를배웁니다 1

1. 인덱스란무엇인가? 2

- ROWID ( 주소 ) 조회하기 SCOTT>SELECT ROWID, empno, ename 2 FROM emp 3 WHERE empno=7902 ; ROWID EMPNO ENAME --------------------------------- ---------- ------------- AAASHOAAEAAAACXAAM 7902 FORD 3

- ROWID ( 주소 ) 란무엇인가? AAASHOAAEAAAACXAAM ROWID 입니다 AAASHO AAE AAAACX AAM 데이터오브젝트번호 파일번호 BLOCK 번호 ROW 번호 4

2. 인덱스의생성원리 대상데이터 FULL SCAN SORT Block 에기록 5

3. 인덱스구조와작동원리 (B-TREE 인덱스기준입니다 ) 6

7

SQL> SELECT * 2 FROM 사원 3 WHERE 이름 = 홍길동 ; 3 번줄의 where 조건의칼럼으로인덱스검색 해당데이터의 ROWID 를찾음 해당블록을복사하여 DB CACHE 로로딩함 8

4. 인덱스의종류 1) B-TREE 인덱스 9

(1) UNIQUE INDEX SQL>CREATE UNIQUE INDEX 인덱스명 2 ON 테이블이름 ( 컬럼명1 ASC DESC, 컬럼명,..); SCOTT>CREATE UNIQUE 2 ON dept2(dname) ; INDEX idx_dept2_dname SCOTT>INSERT INTO dept2 2 VALUES(9100,' 임시매장 ',1006,' 서울지사 '); 1 row created. SCOTT>INSERT INTO dept2 2 VALUES(9101,' 임시매장 ',1006,' 부산지사 '); INSERT INTO dept2 * ERROR at line 1: ORA-00001: UNIQUE constraint (SCOTT.IDX_DEPT2_DNAME) violated UNIQUE Index 는 UNIQUE 제약조건과동일합니다. 즉중복되는값을입력할수없습니다. 10

(2) Non UNIQUE INDEX SCOTT>CREATE INDEX 인덱스명 2 ON 테이블명 ( 컬럼명 1 ASC DESC, 컬럼명 2,.) ; SCOTT>CREATE INDEX idx_prof_position 2 ON professor(position DESC ) ; 11

(3) Function Based INDEX(FBI 함수기반인덱스 ) SCOTT>CREATE INDEX idx_prof_pay_fbi 2 ON professor(pay+100) ; - Index Suppressing Error SQL 을작성할때 Where 절등에인덱스검색조건을잘못주어서인덱스를사용할수없는경우를뜻합니다. 인덱스가만들어져있는칼럼에는일반적으로는산술연산이나함수등을사용하여변형하면안됩니다. 12

(4) DESCENDING INDEX 큰값을먼저조회해야할경우에주로사용함. 주로날짜의경우최근날짜를먼저조회하는경우가많기때문에날짜컬럼에인덱스를만들경우에자주사용됨. SCOTT>CREATE INDEX idx_prof_pay 2 ON professor(pay DESC ); 13

(5) 결합인덱스 ( Composite INDEX ) 두개이상의칼럼을결합하여생성하는인덱스. 주로두개이상의칼럼이 AND 조건으로검색될경우많이사용됨. SQL> SELECT 이름, 성별 2 FROM 사원 3 WHERE 성별 = 여자 4 AND 이름 = 유관순 ; * 결합인덱스생성구문예 : SQL> CREATE INDEX idx_ 사원 _ 성별 _ 이름 2 ON 사원 ( 성별, 이름 ) ; 14

- 칼럼순서의중요성 15

2) BITMAP INDEX SCOTT> CREATE BITMAP INDEX idx_ 사원 _ 성별 _bit 2 ON 사원 ( 성별 ) ; 16

- 성별칼럼으로만들어진 Bitmap - 지역칼럼으로만들어진 Bitmap Bitmap 은칼럼에서데이터의종류만큼 Map 이생성됩니다. 신규데이터가입력될경우에모든 Map 이 Update 되어야합니다. 17

5. 인덱스의주의사항 1) DML에취약하다 (1) Insert - Index Split 현상 (2) Delete - 인덱스내용이삭제가안됨 (3) Update Delete + Insert 작업이발생함 2) 타 SQL 실행에악영향을줄수있습니다. 18

6. 인덱스관리방법 1) 인덱스조회하기 SCOTT>SELECT table_name, index_name 2 FROM user_indexes 3 WHERE table_name='dept2'; TABLE_NAME INDEX_NAME -------------------------- ----------------------------- DEPT2 IDX_DEPT2_DNAME DEPT2 SYS_C0014275 19

2) 사용여부모니터링하기 SCOTT>ALTER INDEX idx_dept2_dname MONITORING USAGE ; SCOTT>ALTER INDEX idx_dept2_dname NOMONITORING USAGE ; SCOTT>SELECT index_name, used 2 FROM v$object_usage 3 WHERE index_name='idx_dept2_dname'; INDEX_NAME USED ------------------------- ------------ IDX_DEPT2_DNAME NO 20

3) INDEX Rebuild 하기 Index 는생성후오라클이자동으로관리를합니다. 그러나앞에서살펴본바와같이데이터가삭제되거나 update 될경우인덱스내부의상태가흐트러지는현상이발생합니다. 이럴경우인덱스를 Rebuild 해주면성능이개선됩니다. 단, 흐트러져있는정도에따라 Rebuild 보다는 Recreate 가더좋을경우도있을수있습니다. 실습은교재 321 323 페이지를참고하세요 21

7. 인덱스활용예제 1) 인덱스를활용하여정렬한효과를내는방법 실습은교재 325 326 페이지를참고하세요 22

7. 인덱스활용예제 2) 인덱스를활용하여최소값 (MIN) / 최대값 (MAX) 을구하는방법 23

7. 인덱스활용예제 2) 인덱스를활용하여최소값 (MIN) / 최대값 (MAX) 을구하는방법 24

7. 인덱스활용예제 2) 인덱스를활용하여최소값 (MIN) / 최대값 (MAX) 을구하는방법 25

7. 인덱스활용예제 2) 인덱스를활용하여최소값 (MIN) / 최대값 (MAX) 을구하는방법 SCOTT>SELECT /*+ index_desc(s idx_ 사원 _name) */ name 2 FROM 사원 s 3 WHERE name >='0' 4 AND rownum=1 ; NAME ---------- 홍길동 26

7. 인덱스활용예제 2) 인덱스를활용하여최소값 (MIN) / 최대값 (MAX) 을구하는방법 SCOTT>select /*+ index_desc (s idx_ 사원 _name) */ max(name) 2 from 사원 s 3 where name > '0' ; MAX(name) -------------- 홍길동 FIRST_ROW (MAX/MIN) 방법 27

8. Invisible Index ( 인비저블인덱스 ) - 11g New Feature - 인덱스는사용하지않을경우삭제를해야성능향상에도움이됨. - 사용여부를알기가어렵다는단점이있음. - 인비져블인덱스는인덱스가삭제된상태처럼만들어서테스트를할수있음 SCOTT>CREATE INDEX idx_emp_ename ON emp(ename) ; Index created. SCOTT>SELECT table_name,index_name,visibility 2 FROM user_indexes 3 WHERE table_name = 'EMP' ; TABLE_NAME INDEX_NAME VISIBILIT ------------------ ------------------------ ------------------- EMP IDX_EMP_ENAME VISIBLE EMP PK_EMP VISIBLE 28

SCOTT>ALTER INDEX IDX_EMP_ENAME INVISIBLE ; Index altered. SCOTT>SELECT table_name, index_name, visibility 2 FROM user_indexes 3 WHERE table_name = 'EMP' ; TABLE_NAME INDEX_NAME VISIBILITY ----------------- ------------------------ ------------------------- EMP IDX_EMP_ENAME INVISIBLE EMP PK_EMP VISIBLE 29

1. 다시상태를 VISIBLE 로변경하기 SCOTT>ALTER INDEX idx_emp_ename VISIBLE ; Index altered. SCOTT>SELECT table_name, index_name, visibility 2 FROM user_indexes 3 WHERE table_name = 'EMP' ; TABLE_NAME INDEX_NAME VISIBILIT ---------------- ---------------------- -------------------- EMP IDX_EMP_ENAME VISIBLE <- 변경되었습니다. EMP PK_EMP VISIBLE 30

2. SQL 힌트구문에서해당인덱스를사용하게하기 SCOTT>SELECT /*+ index (emp idx_emp_ename) */ ename 2 FROM emp 3 WHERE ename >'0'; 31