※ ROWID : 오브젝트 번호, 데이터파일 번호, 블록번호 DBA : 데이터파일번호 + 블록번호 3.1.2 인덱스 클러스터링 팩터 -. 클러스터링 팩터(Clustering Factor, 이하 'CF')는 '군진성 계수', 특정 컬럼을 기준으로 같은 값을 갖는데이터가 서로 모여있는 정도를 의미한다. -. 인덱스 ROWID로 테이블을 엑세스할 때, 오라클은 래치 획득과 해시 체인 스캔 과정을 거쳐 어렵게 찾아간 테이블 블록에 대한 포인터(메모리 주소값)를 바로 해제하지 않고 일단 유지한다. 이를 버퍼 Pinning이라고 부른다. -. 이 상태에서 다음 인덱스 레코드를 읽었는데, 마침 직전과 같은 테이블 블록을 가르킨다. 그러면 래치 획득과 해시 체인 스캔 과정을 생략하고 바로 테이블 블록을 읽을 수 있다...
1. Drop, Truncate를 막는 Trigger 생성 CREATE OR REPLACE TRIGGER user1.user1_no_drop_truncate before drop or truncate ON user1.schema begin raise_application_error (-20102, 'Cannot execute DROP or TRUNCATE !!'); end; 2. DDL 전부 제한 CREATE OR REPLACE TRIGGER user1.user1_no_ddl before DDL ON user1.schema begin raise_application_error (-20101, 'Cannot execute any DDL !!'); end; 3. 특정 Table DML 전부 제한 CREATE..
1. Tip 파일 설정 parameter TIBERO_PERFORMANCE_REPOSITORY 'Y'로 설정하면 스냅샷 저장 기능 활성화한다. (기본값: Y) TPR_SNAPSHOT_SAMPLING_INTERVAL 스냅샷을 추출하는 주기를 설정한다. (기본값: 60, 단위: 분) TPR_SNAPSHOT_RETENTION 스냅샷을 최대 저장할 기간을 설정한다. (기본값: 7, 단위: 일) TPR_SNAPSHOT_TOP_SQL_CNT 리포트에 출력할 상위 SQL 개수를 설정한다. (기본값: 5, 단위: 개) TPR_SEGMENT_STATISTICS 'Y'로 설정하면 TPR에서 Segment별 Stat 수집 기능을 활성화한다. (기본값: N) TPR_SNAPSHOT_TOP_SEGMENT_CNT 리포트에 출력할..
TEST Create script 1. 생성구문에 pk를 명시한 경우 CREATE TABLE tibero.persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CONSTRAINT persons_pk_id PRIMARY KEY (ID) using index tablespace usr ); 2. 생성구문에 pk를 명시하지 않고, index를 따로 만든 후, pk를 생성한 경우 CREATE TABLE tibero.persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int ); create index..
2.1.1 미리보는 인덱스 튜닝 SQL 튜닝은 랜덤 I/O와의 전쟁 -. 데이터베이스 성능이 느린이유는 디스크 I/O 때문이다. -. Disk I/O중에 랜덤 I/O가 중요 2.1.2 인덱스 구조 -. DBMS는 일반적으로 B*Tree 인덱스를 사용 ※인덱스 탐색 과정 -. 수직적탐색 : 인덱스 스캔 시작점을 찾는 과정 -. 수평적탐색 : 데이터를 찾는 과정 2.1.5 결합 인덱스 구조와 탐색 -. 인덱스 선두 컬럼을 모두 "=" 조건으로 검색할 때는 어느 컬럼을 인덱스 앞쪽에 두든 블록 I/O 개수는 같으므로 성능도 같다. -. Excel fillter 기능으로 착각하면 안된다. -. B-Tree 구조로 되어 있는 Index는 루트에서 리프 블록까지 높이(dept)는 항상 같다. 2.2.2 인덱스를 R..
1.1.2 SQL 최적화 1. SQL 파싱 -. 파싱 트리 생성 : SQL 문을 이루는 개별 구성요소를 분석해서 파싱 트리 생성 -. Syntax 체크 : 문법적 오류가 없는지 확인 -. Semantic 체크 : 의미상 오류가 없는지 확인 2. SQL 최적화 -. 데이터 딕셔너리(Data Dictionary)에 미리 수집해 둔 오브젝트 통계 및 시스템 통계정보를 이용해 각 실행계획의 예상비용을 산정하고 최저 비용을 나타내는 실행계획을 선택한다. 3. 로우 소스 생성 -. SQL 옵티마이저가 선택한 실행경로를 실제 생행 가능한 코드 또는 프로시저 형태로 포맷팅 하는 단계. 로우 소스 생성기(Row-Source Generator)가 그 역할을 맡는다. ※ 부록 2. AUTO Trace 1. set autot..