[운영 종료] TmaxTibero Tech Blog

티맥스티베로 공식 블로그는 https://tmaxtibero.blog/ 로 이전되었습니다.

티맥스티베로 공식 블로그 이전 자세히보기

튜닝

[Tibero] SQL Tuning (10)

TmaxTiberotech 2023. 6. 9. 16:09

통계정보

3. 통계정보 수집

DBMS_STATS 패키지 프로시저를 이용해 통계정보를 수집합니다.

  • GATHER_DATABASE_STATS

데이터베이스의 모든 Object에 대한 통계정보를 생성합니다.

Example

 

SQL> execute dbms_stats.gather_table_stats('SCOTT', 'EMP');
SQL> exec dbms_stats.gather_table_stats(ownname=>'TIBERO',
                                                                         tabname=>'ACS01',
                                                      estimate_percent=>100 );

  • GATHER_SCHEMA_STATS

   스키마의 Object에 대한 통계정보를 생성합니다.

  • GATHER_TABLE_STATS

   테이블과 관련있는 인덱스에 대한 통계정보를 생성합니다.

  • GATHER_INDEX_STATS

   인덱스에 대한 통계정보를 생성합니다.

  • estimate_percent 파라미터

   생성 시간 단축을 위해, 테이블 일부분만을 샘플링해 통계정보를 생성합니다.

        파라미터 >0 : 테이블 전체 대비 수집 비율입니다.

 

        파라미터 =0 : 간단한 샘플링으로 예상되는 row 의 개수를 계산합니다.

                               row 개수에 따라 수집 속도 및 정확성을 고려한 최적의 수집비율을 산출합니다.

 

3.1. GATHER_DATABASE_STATS 파라미터

DBMS_STATS.GATHER_DATABASE_STATS의 options 파라미터로,

수집할 테이블의 기준을 정합니다.

  • GATHER

   모든 테이블에 대해 수집합니다.

  • GATHER EMPTY

   통계 정보가 없는 테이블을 수집합니다.

  • GATHER STALE

   마지막 통계정보 수집 이후 변경이 발생한 Row수가 전체 10% 넘는 테이블을 수집합니다.

  • GATHER AUTO

   자체적 기준에 맞는 테이블만을 수집하는 파라미터로, 아래 중 하나 이상의 조건을 만족하는

   테이블을 수집합니다.

   - 통계 정보가 수집된지 1주일 넘은 테이블 (_DBMS_STATS_GATHER_AUTO_STALED)

   - GATHER EMPTY 조건의 테이블

   - 통계 정보에서 row 개수가 0으로 저장된 테이블

   - GATHER STALED 조건의 테이블

 

4. 통계정보 조회

통계정보를 생성 후 조회합니다.

  • [DBA|ALL|USER]_TABLES : 테이블의 통계정보를 조회합니다.
  • [DBA|ALL|USER]_INDEXES : 인덱스의 통계정보를 조회합니다.
  • [DBA|ALL|USER]_TAB_HISTOGRAMS : 컬럼의 데이터 분포도 정보를 조회합니다.

Example

 

SQL> select table_name, num_rows, blocks, avg_row_len,
                    sample_size, last_analyzed
               from dba_tables
          where owner='TIBERO'
               and table_name='ACS01';
TABLE_NAME   NUM_ROWS BLOCKS  LAST_ANALYZE
------------------- ------------------- ------------- ----------------------------
ACS01                     1000000         5504 2016/09/23 16:32:01
1 row selected.

5. 통계정보 Export 및 Import

기존의 실행계획대로 다른 데이터베이스에서 동일하게 운영하고 싶을 때

통계정보를 export 및 Import로 통계정보를 일치시킵니다.

티베로에서는 아래의 프로시저를 지원합니다.

   DBMS_STATS.EXPORT_XXX_STATS

   DBMS_STATS.IMPORT_XXX_STATS

  • 해당 테이블에 대해 EXPORT_XXX_STATS 프로시저로 통계 정보를 별도의 테이블에

       저장합니다.

  • 쿼리에 사용된 테이블 및 통계정보 테이블을 tbexport로 dump 수행 후, 대상 시스템으로

       이관합니다.

  • 대상 시스템에서 tbimport를 이용해 통계 정보를 import 합니다.

6. 기타 통계정보 수집 방법

6.1. Degree

통계 정보 수집을 parallel하게 해서 빠르게 처리하고자 할 때 사용하는 파라미터 입니다.

SQL문에서의 parallel hint와 같은 원리로 기본값은 1 입니다.

6.2. Granularity

Partitioned 테이블에서의 통계 정보 수집 영역 입니다.

• PARTITION : 파티션 단위

• GLOBAL : 테이블 전체

• ALL : 파티션 테이블 전체 및 파티션 각각 모두 포함

 

☞[Tibero] SQL Tuning (10)에서 계속됩니다.​

 

 

 

'튜닝' 카테고리의 다른 글

[Tibero] SQL Tuning (12)  (0) 2023.06.13
[Tibero] SQL Tuning (11)  (0) 2023.06.12
[Tibero] SQL Tuning (9)  (0) 2023.06.08
[Tibero] SQL Tuning (8)  (0) 2023.06.08
[Tibero] SQL Tuning (7)  (0) 2023.06.05