문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
notepad:vleeky [2010/06/02 23:37] vleeky |
notepad:vleeky [2010/06/02 23:55] (현재) vleeky |
||
---|---|---|---|
줄 155: | 줄 155: | ||
====== 4.2.4 단위 클러스터의 크기 결정 ====== | ====== 4.2.4 단위 클러스터의 크기 결정 ====== | ||
+ | {{: | ||
====1. 블록당 유효 저장공간 크기 = (블록크기 – 블록헤더 크기) * (100-PCTFREE)/ | ====1. 블록당 유효 저장공간 크기 = (블록크기 – 블록헤더 크기) * (100-PCTFREE)/ | ||
+ | |||
+ | - (8000-100)*0.9=7110 | ||
====2. 로우의 평균 길이 산정==== | ====2. 로우의 평균 길이 산정==== | ||
+ | |||
+ | - 평균로우 길이 100바이트로 가정 | ||
====3. 클러스터키 별 로우 수를 구한다.==== | ====3. 클러스터키 별 로우 수를 구한다.==== | ||
+ | | ||
+ | SELECT AVG( CASE WHEN row_cnt > 71 THEN 71 ELSE row_cnt END) | ||
+ | | ||
+ | FROM ( SELECT cluster_key_columns, | ||
+ | FROM table_name | ||
+ | WHERE sampling_conditions.... | ||
+ | GROUP BY cluster_key_columns ); | ||
====4. 단위 클러스터의 크기를 계산하고 결정한다.==== | ====4. 단위 클러스터의 크기를 계산하고 결정한다.==== | ||
+ | |||
+ | - AVG_ROW_LEN * average_row_count | ||
+ | |||
+ | - 7110/2000 =3.5 | ||
+ | |||
+ | - 블록에 3개까지 단위클러스터가 존재. | ||
+ | |||
+ | |||
+ | ==== *클러스터링 생성절차 예 ( SALES TABLE )*==== | ||
+ | |||
+ | ===1. 클러스터 생성=== | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | ===2. 클러스터 인덱스 생성=== | ||
+ | CREATE INDEX sales_cluster_idx | ||
+ | ON CLUSTER sales_cluster | ||
+ | PCTFREE 2 | ||
+ | STORAGE (INITIAL 20K NEXT 10K); | ||
+ | |||
+ | ===3. 기존테이블 명칭 변경=== | ||
+ | RENAME | ||
+ | | ||
+ | ===4. 클러스터내에 테이블 생성=== | ||
+ | | ||
+ | ( saleno | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | ===5. 테이블 내에 데이터 저장=== | ||
+ | | ||
+ | | ||
+ | WHERE sale_date >= ' | ||
+ | |||
+ | ===6. 기존 테이블 삭제, 새로운 인덱스 생성=== | ||
+ | DROP TABLE sales_copy | ||
+ | | ||
+ | |||
줄 168: | 줄 222: | ||
====- 클러스터 키 컬럼을 첫번째로 하는 결합 인덱스가 존재하면==== | ====- 클러스터 키 컬럼을 첫번째로 하는 결합 인덱스가 존재하면==== | ||
- | ==== 경우에 따라 클러스터를 사용하지 않고 결합 인덱스를 사용하는 실행계획을 수립==== | + | ==== 경우에 따라 클러스터를 사용하지 않고 결합 인덱스를 사용하는 실행계획을 수립==== |
====- 클러스터가 반드시 사용되어지기를 원한다면 액세스 경로를 고정시킨다.==== | ====- 클러스터가 반드시 사용되어지기를 원한다면 액세스 경로를 고정시킨다.==== |