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_snapshot order by BEGIN_INTERVAL_TIME;
|
Create Snapshot
|
SQL> exec dbms_tpr.create_snapshot;
SQL> exec dbms_tpr.create_snapshot_all;
|
Report Snapshot
|
SQL> exec dbms_tpr.report_text_id(<SNAP_ID>);
SQL> exec dbms_tpr.report_text_id(<BEGIN_SNAP_ID>,<END_SNAP_ID>);
SQL> exec dbms_tpr.report_text_id(BEGIN_SNAP_ID>,<END_SNAP_ID>, <INSTANCE_NUMBER>);
|
Snapshot Location
|
$TB_HOME/instance/$TB_SID/tpr_report.{mthr_pid}.{current_time}
|
Example
set lines 200
col BEGIN_INTERVAL_TIME for a20
col END_INTERVAL_TIME for a20
alter session set nls_date_format = 'yyyy/mm/dd hh24:mi:ss';
select * from _tpr_snapshot order by BEGIN_INTERVAL_TIME;
SNAP_ID THREAD# INSTANCE_NUMBER BEGIN_INTERVAL_TIME END_INTERVAL_TIME SNAP_GID
MARKED_FOR_REPORT -------------- ---------------- -------------------------- ---------------------------------- --------------------------------- ------------------------
2436 0 0 2018/12/12 14:12:31 2018/12/12 15:12:31 N
2437 0 0 2018/12/12 15:12:31 2018/12/12 16:12:31 N
2438 0 0 2018/12/12 16:12:31 2018/12/12 17:12:31 N
SQL> conn sys/tibero
Connected to Tibero.
SQL> exec dbms_tpr.report_text_id(2);
PSM completed.
SQL> exec dbms_tpr.report_text_id(1,2,0);
PSM completed.
SQL> exec dbms_tpr.report_text_id(1,2);
PSM completed.
tibero@edu1[tac1]:/home/tibero> ls -tlr $TB_HOME/instance/$TB_SID/tpr*
rw-r--r--. 1 tibero dba 153184 Dec 19 15:43 tpr_report.tac.20181219_154356.txt
rw-r--r--. 1 tibero dba 265641 Dec 19 15:47 tpr_report.tac.20181219_154704.txt
rw-r--r--. 1 tibero dba 266571 Dec 19 15:47 tpr_report.tac.20181219_154728.txt
rw-r--r--. 1 tibero dba 284535 Dec 19 15:48 tpr_report.tac.20181219_154758.txt
|
5.2. SQL Plan
Command
|
Description
|
SQL> help set
|
AUTOT[RACE] {OFF|ON|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] [PLANS[TAT]
|
Example
SQL> set autot on
SQL> select * from product;
PROD_ID PROD_NAME PROD_GROUP PROD_COST
-------------- --------------------- --------------------- -------------------
0100 AnyLink EAI 8000
0200 BizMaster EAI 12000
0300 JEUS MW 2900
0400 OpenFrame FRAME 7000
0500 ProERP BA 20000
0600 ProCRM BA 7000
0700 ProFrame FRAME 6200
0800 ProPortal UI 8600
0900 ProSync DBMS 2500
1000 ProWeb UI 2000
1100 SysKeeper ETC 1500
1200 SysMaster ETC 1400
1300 Tibero DBMS 1500
1400 Tmax MW 3800
1500 WebtoB MW 500
15 rows selected.
SQL ID: 05fkk4a4h3x2x
Child number: 600
Plan hash value: 4019249154
Execution Plan --------------------------------------------------------------------------------
1 TABLE ACCESS (ROWID): PRODUCT (Cost:7, %%CPU:0, Rows:15)
2 INDEX (FAST FULL SCAN): PRODUCT_PK (Cost:6, %%CPU:0, Rows:15)
Note
--------------------------------------------------------------------------------
2 - dynamic sampling used for this table (13 blocks)
NAME VALUE
------------------------------ ----------
db block gets 147
consistent gets 99
physical reads 12
redo size 436
sorts (disk) 0
sorts (memory) 1
rows processed 15
|
5.3. tbprof
sqltrace 파라메터를 키고 sql을 수행하면 SQL_TRACE_DEST 위치에 파일이 생성됩니다.
생성된 파일로 tbprof 유틸리티를 사용해 분석 가능한 형태의 Report 파일을 생성합니다.
alter system 단위로 수행하게 되면 DB에 발생되고 있는 모든 쿼리가 sqltrace 파일로
떨어지므로 session 단위로 수행 할 것을 권장합니다.
Step
|
Command
|
Command
|
SQL> alter session set sql_trace=y;
SQL> < sql execute >
SQL> alter session set sql_trace=n;
|
Location
|
SQL> show parame SQL_TRACE_DEST
NAME TYPE VALUE
------------------------- -------------- ------------------------------------------------
SQL_TRACE_DES DIRNAME /home/tibero/tibero6/instance/tac1/log/sqltrace/
|
tbprof
|
$ tbprof < Generated SQLTRACE File > < File name for creating >
|
Example
SQL> alter session set sql_trace=y;
Session altered.
SQL> select * from product;
PROD_ID PROD_NAME PROD_GROUP PROD_COST
-------------- --------------------- --------------------- -------------------
0100 AnyLink EAI 8000
0200 BizMaster EAI 12000
0300 JEUS MW 2900
0400 OpenFrame FRAME 7000
0500 ProERP BA 20000
0600 ProCRM BA 7000
0700 ProFrame FRAME 6200
0800 ProPortal UI 8600
0900 ProSync DBMS 2500
1000 ProWeb UI 2000
1100 SysKeeper ETC 1500
1200 SysMaster ETC 1400
1300 Tibero DBMS 1500
1400 Tmax MW 3800
1500 WebtoB MW 500
15 rows selected.
SQL> alter session set sql_trace=n;
Session altered.
tibero@edu1[tac1]:/home/tibero/tibero6/instance/tac1/log/sqltrace> ls -tlr
total 4
-rw-r--r--. 1 tibero dba 849 Dec 20 10:21 tb_sqltrc_27218_118_156899.trc
tibero@edu1[tac1]:/home/tibero/tibero6/instance/tac1/log/sqltrace> tbprof
tb_sqltrc_27218_118_156899.trc a.out
tibero@edu1[tac1]:/home/tibero/tibero6/instance/tac1/log/sqltrace> cat a.out
TBPROF 6
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
stage count cpu elapsed current query disk rows
------- -------- ------- ----------- ---------- -------- ------ -------
parse 1 0.00 0.00 0 0 0 0
exec 1 0.00 0.00 0 0 0 0
fetch 1 0.00 0.00 2 3 0 15
-----------------------------------------------------------------------------
sum 3 0.00 0.00 2 3 0 15
rows u_rows execution plan
----------------------------------------------------------
15 - table access (rowid) PRODUCT(2709) (et=24, cr=1, cu=0, co=7, cpu=0, ro=15)
15 - index (fast full scan) PRODUCT_PK(2710) (et=31, cr=2, cu=2, co=6, cpu=0, ro=15)
|
'Admin, 환경설정' 카테고리의 다른 글
[Tibero] Tibero 운영 가이드 for beginner (2) (0) | 2023.05.15 |
---|---|
[Tibero] Tibero 운영 가이드 for beginner (11) (0) | 2023.05.15 |
[Tibero] Tibero 운영 가이드 for beginner (9) (0) | 2023.05.12 |
[Tibero] Tibero 운영 가이드 for beginner (8) (0) | 2023.05.12 |
[Tibero] Tibero 운영 가이드 for beginner (7) (0) | 2023.05.12 |