database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
ㆍDB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DB2 Q&A 1176 게시물 읽기
No. 1176
runstats 옵션 중 with distribution 옵션의 의미가 궁금합니다.
작성자
db2초보
작성일
2006-11-17 17:20
조회수
8,031

runstats 옵션 중 with distribution 옵션은 무엇입니까?

도움말에는 설명이 좀 이해가 안가서요....

막 공부하는 입장이라 이것 저것이 많이 궁금합니다.

알려주세용...

이 글에 대한 댓글이 총 1건 있습니다.


분산 통계
다음 두 종류의 데이터 분산 통계를 수집할 수 있습니다. 

빈번한 통계
이 통계는 가장 높은 중복 수, 그 다음으로 높은 중복 값 수 및 기타 데이터 값과 컬럼에 대한 정보를 num_freqvalues 데이터베이스 구성 매개변수의 값으로 지정한 레벨에 제공합니다. 자주 사용되는 값 통계의 콜렉션을 사용하지 않으려면, num_freqvalues 를 0으로 설정하십시오.

또한 각 테이블 및 특정 컬럼에 대한 RUNSTATS 옵션으로 num_freqvalues 를 설정할 수도 있습니다. 

Quantile 통계
이 통계는 다른 값과 관련하여 데이터 값이 어떻게 분산되는지에 대한 정보를 제공합니다. K-quantiles라는 이 통계는 최소한 K 값이 상주하는 최대 V 값을 표시합니다. 이 값을 오름차순으로 정렬하여 K-quantile을 산출할 수 있습니다. K-quantile 값은 범위 최하점으로부터 K 번째 위치에 있는 값입니다.

컬럼 데이터 값을 그룹화해야 하는 섹션 수를 지정하려면, num_quantiles 데이터베이스 구성 매개변수를 2와 32,767 사이의 값으로 설정하십시오. 디폴트값은 20으로 부등호에 대한 최대 ±2.5%의 옵티마이저 추정 오류, less-than 또는 greater-than 술어 및 BETWEEN 술어에 대한 최대 ±5%의 오류를 의미합니다. Quantile 통계의 콜렉션을 사용하지 않으려면, num_quantiles를 0 또는 1로 설정하십시오. 

각 테이블 및 특정 컬럼에 대해 num_quantiles 를 설정할 수 있습니다.

주:
보다 큰 num_freqvalues 및 num_quantiles 값을 지정하면, RUNSTATS 실행시, stat_heap_sz 데이터베이스 구성 매개변수에서 지정하는 것처럼 보다 많은 CPU 자원 및 메모리가 필요합니다. 

분산 통계 수집 시기

해당 테이블에 대해 분산 통계를 작성 및 갱신해야 할지 여부를 결정하려면, 다음 두 가지 인수를 고려하십시오.

응용프로그램의 정적 또는 동적 SQL 사용 여부
분산 통계는 동적 SQL 및 호스트 변수를 사용하지 않는 정적 SQL에 아주 유용합니다. 호스트 변수와 함께 SQL을 사용하면 옵티마이저는 분산 통계를 제한하여 사용합니다.

컬럼 내 데이터의 일정한 분산 여부
테이블에서 최소한 하나의 컬럼에 매우 『균일하지 않은』 데이터 분산이 있고, 컬럼이 등호 또는 범위 술어에 빈번하게 나타나는 경우, 분산 통계를 작성하십시오. 즉, 다음과 같은 절에서 사용하십시오.

   WHERE C1 = KEY;
   WHERE C1 IN(KEY1, KEY2, KEY3);
   WHERE (C1 = KEY1) OR (C1 = KEY2) OR (C1 = KEY3);
   WHERE C1 <= KEY;
   WHERE C1 BETWEEN KEY1 AND KEY2;
두 가지 유형의 일정하지 않은 데이터 분산이 발생합니다. 두 가지 유형이 함께 발생할 수도 있습니다.

가장 큰 데이터 값과 가장 작은 데이터 값 사이에 일정하게 분포되는 대신 한 개 이상의 하위 간격에 데이터가 클러스터됩니다. 데이터가 범위(5, 10) 내에 클러스터되어 있는 다음 컬럼을 고려하십시오.
C1 
0.0 
5.1 
6.3 
7.1 
8.2 
8.4 
8.5 
9.1 
93.6 
100.0 

Quantile 통계를 사용하면 옵티마이저가 이런 종류의 데이터 분산을 처리할 수 있습니다.

컬럼 데이터가 균일하지 않게 분산되어 있는지 여부를 판별하려면, 다음 예와 같이 쿼리를 실행하십시오.

   SELECT C1, COUNT(*) AS OCCURRENCES
     FROM T1
   GROUP BY C1
   ORDER BY OCCURRENCES DESC;
중복 데이터 값이 자주 발생할 수도 있습니다. 다음과 같은 빈도로 분산되는 데이터가 들어 있는 컬럼을 고려하십시오. 데이터 값  빈도 
20  5 
30  10 
40  10 
50  25 
60  25 
70  20 
80  5 

중복 값으로 처리되는 옵티마이저를 도우려면, Quantile 및 자주 사용되는 값 통계를 작성하십시오.

인덱스 통계 수집 시기

다음과 같은 상황에서 인덱스 데이터만을 근거로 통계를 수집할 수도 있습니다.

RUNSTATS 유틸리티가 실행된 이후로 새 인덱스가 작성되고, 테이블 데이터에 대한 통계를 수집하려고 하지 않을 경우
인덱스의 첫 번째 컬럼에 영향을 미치는 데이터에 많은 변경사항이 있는 경우
통계 정밀도 레벨 지정

분산 통계가 저장되어 있는 정밀도를 판별하기 위해 num_quantiles 및 num_freqvalues 데이터베이스 구성 매개변수를 지정합니다. 또한 테이블 또는 컬럼에 대해 통계를 수집하는 경우 이 매개변수를 RUNSTATS 옵션으로 지정할 수 있습니다. 이 값을 높게 설정할수록, RUNSTATS가 분산 통계를 작성 및 갱신할 때 사용하는 정밀도는 높아집니다. 그러나 보다 높은 정밀도는 RUNSTATS 실행 및 카탈로그 테이블에 필요한 스토리지 모두에 있어 보다 많은 자원 사용을 필요로 합니다.

대부분의 데이터베이스의 경우, num_freqvalues 데이터베이스 구성 매개변수를 10과 100 사이로 지정하십시오. 그러나 나머지 값의 빈도가 서로 거의 비슷하거나, 가장 자주 사용되는 값의 빈도와 비교하여 무시할 정도가 되도록, 자주 사용되는 값 통계가 작성되어야 하는 것이 이상적입니다. 이 통계는 두 번 이상 발생하는 데이터 값에 대해서만 수집되기 때문에 데이터베이스 관리 프로그램은 이 수보다 작은 수를 수집할 수도 있습니다. Quantile 통계만 수집해야 하는 경우, num_freqvalues 를 0으로 설정하십시오.


Quantile 수를 설정하려면, num_quantiles 데이터베이스 구성 매개변수의 설정으로 20 - 50을 지정하십시오. quantile 수를 판별할 때 다음과 같이 대략적으로 판별할 수 있습니다.

범위 쿼리의 행 수를 추정할 때 허용할 만한 최대 오류를 백분율 P로 결정하십시오.
술어가 BETWEEN 술어일 경우 Quantile의 수는 약 100/P이고, 술어가 다른 유형의 범위 술어(<, <=, > 또는 >=)일 경우 Quantile의 수는 50/P입니다.
예를 들어, 25 Quantile은 BETWEEN 술어에 대해 최대 4%와 ">" 술어에 대해 2%로 추정 오류를 일으킵니다. 일반적으로, 최소 10 Quantile을 지정하십시오. 매우 균일하지 않은 데이터의 경우에만 51 이상의 Quantile이 필요합니다. 자주 사용되는 값 통계만 필요할 경우, num_quantiles 를 0으로 설정하십시오. 이 매개변수를 『1』로 지정하면, 전체 값 범위가 하나의 Quantile에 맞게 되어 Quantile 통계가 수집되지 않습니다.

도님이 2006-11-21 11:22에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1182키 안잡힌 테이블에서 중복 데이터 조회 후 삭제하기 [2]
김중인
2006-11-21
11453
1180db2 개발센터는 어디서 다운 받아 설치하나요? [2]
강성경
2006-11-20
8723
1177DB2의 객체의 종류가 어떻게 되죠? [1]
^^V
2006-11-20
7195
1176runstats 옵션 중 with distribution 옵션의 의미가 궁금합니다. [1]
db2초보
2006-11-17
8031
1174알려주세요! [1]
흠~
2006-11-17
7774
1173안긴 select 문에 대해서.. [3]
궁금..
2006-11-16
8673
1172[도와주세요]DB2 Universal Database Express Edition 제거방법.... [4]
유영실
2006-11-15
8855
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다