Site icon DBA의 정석

통계정보 활용 방안

 
 

Analyze 수행 시 Compute statistics 방법으로 하게 되면, 전수 검사 방식이 되므로 전 Table 에 대해 Full Scan을 기본으로 수행하게 되어 많은 시간이 소요된다. 따라서, 적절한 Sampling 기준을 정해 Sampling 방법으로 수행한다. 다만, 일부 검증된 Table 및 통계정보에 민감한 Table 에 대해서는 예외 사항을 반영한다.

 
 

 
 

•        99 percent Sampling

이전 Analyze 자료에 의해 (dba_tables.num_rows) row 수가 10만 건 미만인 Table

( compute statistics 방법과 같으나, 다만 자동 Script 를 만들기 위해 이렇게 처리함)

 
 

•        20 percent Sampling

이전 Analyze 자료에 의해 (dba_tables.num_rows)         row 수가 10만 건 이상,

100 만건 미만인 Table

 
 

•        10 percent Sampling

이전 Analyze 자료에 의해 (dba_tables.num_rows) row 수가 100만 건 이상, 1000만 건 미만인 Table

 
 

•        선택적 수행 ( 대용량 Table )

이전 Analyze 자료에 의해 (dba_tables.num_rows) row 수가 1000 만 건 이상인 Table ( 이것은 수행시간을 고려하여 결정해야 하며, 보통 이정도의 데이터 건수라면 보통 Transaction 성격의 Table 이므로 그 구성비가 변동되지 않으므로 굳이 재 수행할 필요가 없다. 그러나 통계정보를 수행한다면 Sampling 5 ~ 10 percent 로 해야 한다.)

 
 

•        예외 1 ( 99 percent )

특정 Column 에 대해 정확한 통계정보가 필요한 경우 Compute Statistics

방식으로 수행한다. (Table 단위 / Column 단위 : 목적에 맞게)

그러나 이것은 철저한 검증과 함께 평소 대상 List 를 관리해야 한다.

 
 

Example> WIP_DISCRETE_JOBS (costed_type),

WIP_OPERATIONS(status_type)        등

 

•        예외 2 ( 모든 통계정보를 “0” 으로 setting )

통계정보가 모두 0 로 Setting 되어 있어야 하는 Table 의 경우 별도 확인 작업 및 .잘못된 경우 이행 작업 필요 ( 주로 Temp / Interface Table )

이것은 철저한 검증과 함께 평소 대상 List 를 관리해야 한다

Example> CST_LISTS        등

 
 

 
 

 
 

통계정보 생성 시 기본 Command ANALYZE / DBMS_STATS 를 사용하지만, ERP

의 경우 특별히 FND_STATS        PACKAGE 를 활용한다.

 
 

오라클 ERP의 경우 FND_STATS PACKAGE 는 Table , Index , Column 및 ERP 에서 미리 정의된 Histogram 생성 대상 Column 에 대한 Histogram 정보를 생성할 뿐 아니라 통계정보에 대한 History 도 관리하는데 FND_STATS PACKAGE 가 자동으로 확인 후 수행한다. 만약 통계정보 생성 작업을 <analyze> command 를 이용해 manual 하게 한다면, 특히 Histogram 대상 컬럼 정보를 반드시 확인 후 별도로 Histogram 정보를 생성해야 한다.

 
 

결론적으로, 전체 DB 에 대한 통계정보 생성 시 반드시 DBMS_STATS PACKAGE 를 활용하는 것이 Manual 에 의한 실수를 줄일 수 있다.        그러나, 정확히 수행만 한다면 통계정보 자체는 차이가 없다.

 
 

 
 

 
 

Exit mobile version