목록오라클 (32)
미스터 역마살
♣ 인덱스 파티셔닝이란? 인덱스도 테이블처럼 파티션 여부에 따라 비파티션 인덱스와 파티션 인덱스로 나뉘고 파티션 인덱스는 각 인덱스 파티션이 담당하는 테ㅔ이블 파티션 범위엥 따라 글로벌과 로컬로 나뉘게 된다. 아래 그림을 보면서 이야기를 나눠보자 로컬 파티션 인덱스는, 각 테이블 파티션과 인덱스 파티션이 서로 1:! 대응관게가 되도록 오라클이 자동으로 관리하는 파티션 인덱스를 말한다. 로컬이 아닌 파티션 인덱스는 모두글로벌 파티션 인덱스에 속하며, 테이블 파티션과 독립적인 구성을 갖는다. ♣ Local Partition Index - 로컬 파티션 인덱스는 각 인덱스 파티션이 테이블 파티션과 1:1 대응관계를 가지며 테이블 파티션 속성을 그대로 상속 받는다. 파티셔닝을 전제로 하므로 흔히 '로컬 인덱스'라..
♣ 파티셔닝 이란? 지속적으로 증가하가나 용량이 큰 테이블들을 파티션이라는 보다 작은 단위로 나눔으로써 성능이 저하되는 것을 방지하고 관리를 보다 수월하게 하고자 하는것을 파티셔닝이라고 한다. ♣ 파티셔닝이 필요한 이유 1) 관리적 측면 : 파티션 단위 백업, 추가, 삭제, 변경등 2) 성능적 측면 : 파티션 단위 조회 및 DML 수행. ♣ 파티션 기본구조 1) 수동파티셔닝 - 파티션 뷰를 통해 파티션 기능을 구현했으며 이를 수동 파티셔닝이라고 부른다. - 파티션 뷰의 핵심 기능은 뷰쿼리에 사용된 조건절에 부합하는 테이블만 읽는다는 데에 있으며, 이를 파티션 Pruning이라고 하며, 파티션 Pruning의 필수조건은 체크제약(Check constraint)을 설정 하는 것이다. 2) 파티션 테이블 - ..
1. 인덱스 사용이 불가능한 경우 - 인덱스 컬럼을 조건절에서 가공하면 정상적으로 인덱스 사용이 불가능 하다. - 부정형 비교또한 인덱스 사용이 불가능 하다. - IN NOT NULL 조건의 경우는 부정형 비교로 볼수 있다. 허나, 인덱스 범위 스캔이 불가능 하지만 인덱스 사용이 완전 불가능 한 것은 아니다. 오라클은 단일 컬럼 인덱스에 대해서는 NULL 값을 저장하지 않기 때문에 IN NOT NULL 조건의 컬럼이 단일 컬럼 인덱스 라면 INDEX FULL SCAN이 사용된다. - 또한 IS NULL 조건만으로도 검색시 정상적인 인덱스 사용이 불가능 하다. 하지만 NOT NULL 제약조건이 있는 경우 옵티마이저가 IS NULL 조건을 검색해도 만족하는 레코드가 하나도 없음을 알기에 INDEX RANGE..
오늘은 Orange를 이용하여 샘플데이터를 생성하는 법을 알아보자 1. 일단 먼저 오렌지 실행 후 계정접속을 한다. 2. 테스트 테이블을 생성한다. 3. Tools > Data Generation Tool 을 선택한다. 4. 더미데이터를 넣을 테이블이 속한 스키마를 선택한다. 5. Configuration에서 더미데이터를 넣을 테이블을 선택한다. 6. 각 컬럼마다 더미데이터의 포맷을 선택한다. 옵션 설명 1) If the Data exists on the table - 테이블에 데이터가 존재할 경우 3가지 옵션중 한가지 작업을 하고 Generation 할 것 인지 선택한다. 2) of Record to create - 총 몇개의 데이터를 생성할 것인지 지정한다. 선택하지 않으면 생성이 실행되지 않으므로 ..
오늘은 UNION 과 UNION ALL 에 대해 알아보자 먼저 UNION 은 UNION DISTINCT의 줄여서 UNION이라고 한다고 생각한다. 따라서 중복제거 작업이 이루어지게 된다는 것이다. UNION의 특징에 대해 몇가지 알아보자 1. 두 테이블간의 결합시 사용하는 구문 2. 중복되는 값이 존재하지 않음 3. 중복을 제거하다보니 불가피하게 정렬작업을 하게됨 4. 그로인해 소트부하가 생겨 성능에 좋지 않음. 따라서 인덱스가 없거나 대용량 테이블간의 결합이라면 성능에 악영향 을 미치게 될 것이다. 하지만 UNION ALL의 경우는 중복을 허용하고 말그대로 테이블 두개를 딱! 하고 붙이는 것이기 때문에 정렬 작업이 일어나지 않는다. 예를 들어 이런 테이블이 있다고 할 경우 UNION ALL 의 경우 3..
IOT란 - 테이블을 찾아가기 위한 rowid를 갖는 일반 인덱스와는 달리 IOT는 모든행 데이터를 리프블록에 저장하고 있어 ROWID를 통한 랜덤 액세스가 일어나지 않는 테이블을 말한다. 한마디로 줄여서 말하면 "인덱스 리프블록이 곧 데이 터 블록인 테이블" 이다. 특징 - 일반적으로 테이블에 데이터 삽입시 랜덤방식으로 이루어 지지만 IOT는 인덱스 구조의 테이블 이므로 정렬된 상태를 유지하며 삽입된다. - 인위적으로 클러스터링 팩터를 좋게 만드는 방법 중 하나다. - 테이블 랜덤 액세스를 발생하지 않아 빠른 성능을 자랑한다. - 데이터 입력시 성능이 느리다. IOT 사용 기준 - 크기가 작고 NL조인의 반복 Look Up 하는 테이블 - 폭이 좁고 긴(행이 많은) 테이블 - 넓은 범위를 주로 검색하는..