[운영 종료] TmaxTibero Tech Blog

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

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

SQL 12

[Tibero] SQL Tuning (14)

Tuning 사례 ​ 5. VIEW MERGING View안의 테이블이 바깥 테이블과 섞이면서 join되어 비효율적 플랜을 푸는 View merging을 통해 옵티마이저는 더욱 다양한 액세스 경로를 대상으로 최적화를 수행할 수 있습니다. ​ ​ EXAMPLE select ... (select b.prjt_nm from project_info B where b.prjt_cd = main.prjt_cd) projectName, ... (select max(reg_date) from ims_comment where issue_id = main.issue_id) lastActDate, ... from IMS_ISSUE_VIEW main, ims_activity ac, tody_product tp where … ..

튜닝 2023.06.14

[Tibero] SQL Tuning (12)

본 문서에서는 상황에 따른 다양한 Tuning 사례를 안내 합니다. ​ ​ Tuning 사례 ​1. WHERE 절 함수 변환 ​​ EXAMPLE SELECT * FROM T WHERE C1 = NVL(?, C1) NVL, JOIN Prediacate로 인해 selectivity 계산이 부정확해집니다. ​ ​ ​1.1. ? = NULL ?가 NULL이면 C1=C1, selectivity는 1 입니다. ? is NULL이면 항상 true 입니다. ​ ​ 1.2. ? is not NULL ?가 NULL이 아니면 C1=? 입니다. ​ ​ Where 절 함수는 'C1=?' 또는 '? is NULL' 로 변경할 수 있습니다. ​ ​ ​ ​ 2.통계 분포가 고르지 못한 경우 ​2.1. 조건문의 Selectivity ..

튜닝 2023.06.13

[Tibero] SQL Tuning (11)

통계정보 ​7. Dynamic sampling (동적 샘플링) Dynamic sampling은 쿼리에 사용된 테이블에 통계정보가 없는 경우, 동적으로 통계정보를 만들어 옵티마이저의 실행계획에 도움을 주는 기능 입니다. ​ Dynamic sampling은 최소한의 시간으로 data block을 샘플링하는 등 일부 데이터를 추출해 통계정보를 수집합니다. ​ ​ 7.1. Table level ​대상 테이블, 파티션 및 컬럼의 통계 정보 ​ 원리 First phase : 16 sample block을 읽습니다. Second phase : 테이블 실제 block 개수에 따라 추가적으로 최대 300개까지 읽습니다. ​ Note! 읽은 sample block의 개수는 'tbevent 28004-28014'를 켜고 추..

튜닝 2023.06.12

[Tibero] SQL Tuning (10)

통계정보 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 테이블과 관련있는 인덱스에 대한 통계정보를 생성합니다. ​ GATH..

튜닝 2023.06.09

[Tibero] SQL Tuning (9)

본 문서에서는 통계정보 수집 시 필요한 정보 중 Column level의 분포도를 표현하는 히스토그램에 대해 안내 합니다. 통계정보 2. 필요 정보 2.1. 히스토그램 (Histogram) 특정 변수에 대한 구간별 빈도수를 나타내는 도구인 히스토그램은 Column level의 분포도를 표현하는 통계정보 입니다. 히스토그램을 관리함으로써 옵티마이저의 잘못된 실행계획 생성을 방지할 수 있습니다. ​ ​ 2.1.1. 히스토그램 특징 특정값이 집중적으로 분포되어 있을 시 더욱 효율적 입니다. 사용자가 Bucket수를 지정할 수 있습니다. ​ ​ 2.1.2. 히스토그램 종류 ​Height-balanced Histogram Bucket 수보다 변수값이 많은 경우로, Bucket에 한 개 이상의 값들이 분포되어 있을..

튜닝 2023.06.08

[Tibero] SQL Tuning (6)

Tuning 대상 식별 도구 본 문서에서는 SQL, 시스템 등 실행 쿼리에 대한 정보를 확인할 수 있는 도구들에 대해 안내합니다. ​ 4. TPR (Tibero Performance Repository) APM으로서의 TPR은 Tibero DBMS의 통계 정보를 주기적으로 자동 수집 및 분석 리포트 출력 기능을 제공함으로써 DBA가 시스템 부하 분석 등 성능 문제 진단 시 도움을 줄 수 있습니다. ​​ 4.1. 주요 기능 4.1.1. 스냅샷 저장 기능 _vt_jcntstat, v$system_event, v$sqlstats, v$sgastat 등 Tibero의 각종 성능 통계 정보를 주기적으로 (약 1시간) 테이블에 저장합니다. TPR은 이렇게 저장된 정보인 '스냅샷'을 이용해 성능 분석 리포트를 만드는..

튜닝 2023.06.05

[Tibero] SQL Tuning (3)

3. 조인 메소드 한 테이블에 원하는 데이터가 없을 시, 두 개의 테이블을 묶어 하나의 결과로 만들어 내는 것이 조인 입니다. 본 문서에서는 물리적인 조인 방법인 Nested Loop join, Sort merge join, Hash join 에 대해 안내합니다. ​ 3.1. Nested Loop Join (중첩반복 조인) 선행테이블에서 상대방 테이블에 순차적으로 접근해 추출한 값으로 결과를 만드는 조인 방식 입니다. 순차적인 처리로 fetch의 운반단위(array size)마다 결과를 리턴 받을 수 있습니다. ​ SELECT /*+ ORDERED USE_NL(d e) */ e.ename, d.dname, … FROM dept d, emp e WHERE d.deptno = e.deptno AND d.de..

튜닝 2023.05.31

[Tibero] SQL Tuning (2)

2. 처리 과정 2.2. 인덱스 (Index) 인덱스는 테이블의 데이터를 빠르게 접근하기 위한 색인 입니다. ​ 인덱스 구성 하나 이상의 컬럼 + ROWID 인덱스를 구성하는 컬럼 값으로 정렬 B-TREE 아키텍처로 구성 ​ ​ 인덱스와 테이블 접근 Rowid를 통해 빠르게 접근 SELECT name FROM emp WHERE rowid = 'AAAApDAACAAAABaAAA’; ​ Where 절이 조건이 없어 table full scan SELECT name FROM emp; ​ Last_name 컬럼에 인덱스가 있으면 인덱스를 통해 테이블을 rowid로 접근 SELECT name FROM emp WHERE last_name = ‘KANG’; ​ ​ ​ 인덱스 스캔 질의문에서 특정 조건에 만족하는 Ro..

튜닝 2023.05.30

[Tibero] Tibero 운영 가이드 for beginner (10)

5. Performance Analysis Tibero 에서 제공하는 기능을 사용하여 DB 성능을 분석을 할 수 있습니다. ​ 5.1. TPR Report TPR(Tibero Performance Repository)은 통계 정보를 주기적으로 자동 수집하여 수집한 통계 자료에 대한 자체적인 분석 리포트 출력 기능을 제공하여 시스템 부하 분석에 도움을 줄 수 있는 기능입니다. 주기적으로(default 1시간) 특정 테이블에 데이터를 저장하고 이렇게 저장된 정보를 Snapshot 라고 합니다. Step Command Select Snapshot SQL> alter session set nls_date_format = 'yyyy/mm/dd hh24:mi:ss'; SQL> select * from _tpr_sn..

Admin, 환경설정 2023.05.15