■ 히스토그램 고려사항

-특정 열의 비대칭 정도가 높을 때 유용하다

-열의 데이터 분산이 자주 변경될 경우 해당 히스토그램을 자주 재계산해야 한다.

 

■ 히스토그램이 유용하지 않은 경우

- 열이 where나 join절에 사용되지 않을 경우

- 균등하게 분산된 열(컬럼 통계만으로 충분하다)

- pk나 uk등으로 unique한 값이 있는 = 술어

 

실질적인 성능 개선이 없다면 히스토그램을 사용하지 않아야 한다. 히스토그램 수집은 통계 수집 중 가장 Load가 높은 작업이기 때문이다.

 

※ 문자열의 처음 32바이트에 대해서만 히스토그램 데이터가 저장되므로 문자 열에는 일부 예외적인 동작이 있을 수 있다.


열에 표현식을 포함하고 있는 술어는 query 옵티마이저에서 문제(인덱스를 사용하지 못하거나)를 일으킨다.

※ function(column) = constant 형태의 술어에 대한 선택성을 계산할 때 옵티마이저는 정적 선택성 값이 1%라고 가정한다.


■히스토그램 정보 확인

dba_tab_histogram
dba_part_histogram
dba_subpart_histogram

 

1. 먼저 해당 컬럼이 히스토그램을 가지고 있는지와 종류를 확인하기 위해서 DBA_TAB_COL_STATISTICS를 조회한다.

select owner, table_name, column_name, histogram
from DBA_TAB_COL_STATISTICS
where table_name='SALES'
and column_name='PROD_ID';

 

OWNER                          TABLE_NAME                     COLUMN_NAME                    HISTOGRAM
------------------------------ ------------------------------ ------------------------------ ---------
SH                             SALES                          PROD_ID                        FREQUENCY

 

2. 히스토그램을 확인한다.

col column_name for a10
col owner for a10
col table_name for a10

select owner, table_name, column_name, endpoint_number, endpoint_value
from DBA_TAB_HISTOGRAMS
where table_name='SALES'
and column_name='PROD_ID';

 

OWNER      TABLE_NAME COLUMN_NAM ENDPOINT_NUMBER ENDPOINT_VALUE
---------- ---------- ---------- --------------- --------------
SH         SALES      PROD_ID               6002             13
SH         SALES      PROD_ID              12012             14
SH         SALES      PROD_ID              17778             15
SH         SALES      PROD_ID              24707             16
SH         SALES      PROD_ID              30867             17
SH         SALES      PROD_ID              40458             18
SH         SALES      PROD_ID              50888             19
SH         SALES      PROD_ID              61791             20
SH         SALES      PROD_ID              66996             21
SH         SALES      PROD_ID              70437             22
SH         SALES      PROD_ID              90079             23
....

Posted by neo-orcl
,