나그네소

Goldilocks SQL Support 본문

sunjesoft/Goldilocks SQL

Goldilocks SQL Support

나그네소티 2020. 2. 25. 20:23
Goldilocks sql profile 생성

[정의]

Goldilocks SQL 관련 Plan 및 Binding out/in Parameter File로 저장 저장된 파일을 이용하여 SQL Tuning 할 때

사용한다.

 

[옵션]

* TRACE_LOG_TIME_DETAIL 

Trace log를 기록할 때 시간 정확도를 높일지 여부를 설정한다.  이 값이 OFF로 설정된 경우, 10 ms의 정확도를 가지며, 

ON으로 설정된 경우 1 us의 정확도를 가진다.

 

* TRACE_LOG_ID

정보 on off
성공한 SQL 출력 여부 100000 0
실패한 SQL 출력 여부 10000 0
plan 출력 여부 1000 0
Direct / Prepare 출력 여부 100 0
Bind 변수값 출력 여부 10 0
구간별 시간 출력 여부 1 0

Trace Log Id 별로 출력 값을 지정하여 DB에 입력한 SQL들을 File로 저장 할 수 있다.

 

Example)

$> gsqlnet test test

gSQL>alter system set TRACE_LOG_TIME_DETAIL = TRUE;

gSQL> ALTER SYSTEM SET  TRACE_LOG_ID   = 111111(101111)

 

주의 : 위의 옵션을 키면 모든 SQL을 팔일로 생성 하기 때문에 운영시에는 조심 해야 한다.

 

 

[Member별 Profile Create]

gSQL> ALTER SYSTEM SET TRACE_LOG_ID = 0 AT G1N1;

System altered.

gSQL> ALTER SYSTEM SET TRACE_LOG_ID = 0 AT G1;
System altered.
- Cluster 환경에서 AT절을 이용하여 Node를 지정하지 않으면 Cluster의 모든 Member에 위의 Profile이 생성이 된다.
 
[확인사항]

$> ls

opt_p11322_s183.trc  opt_p22312_s183.trc  opt_p22483_s179.trc

(default : $GOLDILOCK_HOME/trc/)

- 위와 같이 session별로 수행 된 SQL들이 파일로 Write 되는 것을 확인 할 수 있다.

 
SQL command
  • alter system checkpoint;
    DB 상에 변경 된 Page를 DB File로 저장 한다.
  • 통계 정보 생성
    analyze table table_name;
  • Index aging
    alter index index_name aging;
  • Index rebuild
    alter index index_name rebuild;
 
plan 보는 방법
  • SQL 수행 방식
    gSQL> \explain plan (only,on,verbose)
    only : plan 실행 계획만 확인
    on : plan 실행 및 실행계획 확인
    verbose : 실행 + 실행계획 + total time
  • plan setting
    set autotrace (only,on,verbose)
    \explain 하지 않아도 수행 됨.
SQL Call Stack 확인 
Goldilocks Version이 Debug Mode일 때 SQL Call Stack을 확인 할 수 있다.
[ command ]
set callstack on;
[ example ]
gSQL> create table t1 ( c1 int, c2 int, c3 int);
gSQL> insert into t1 values(1,1,1);
gSQL> insert into t1 values(2,2,2);
gSQL> \set callstack on
gSQL> select c1, count(*) from t1;
 
ERR-42000(16161): not a single-group group function : 
select c1, count(*) from t1
       *
ERROR at line 1:
 
gsql(stbBacktrace+0x2c) [0xfe10e4]
gsql(stlBacktrace+0x36) [0xfdd5ba]
gsql(stlPushError+0x315) [0xfdff8d]
gsql(qlvValidateValueExprWithoutGroup+0x4a5) [0x75314d]
gsql(qlvValidateQuerySpecNode+0x11d1) [0x752168]
gsql(qlvQueryNodeValidation+0x29a) [0x750f62]
gsql(qlvValidateSelect+0x62d) [0x65cf49]
gsql(qlgValidateSQL+0x683) [0x5e5bde]
gsql(qllValidateSQL+0x8d) [0x5d8303]
gsql(sscExecDirect+0x617) [0x5cec03]
gsql(sslExecDirect+0x1d0) [0x5c8da5]
gsql(zla
 
Elapsed time: 3.30300 ms

plan cache clean
alter system cleanup plan;
plan cache 초기화 하는 작업을 한다. 
 
sql dump
DUMP 함수는 expr의 내부 표현정보를 반환하는 함수이다. 내부 표현정보는 데이타타입, 길이(byte length), 데이타 정보로 보여준다. expr에는 모든 타입이 올 수 있으며, 리턴타입은 CHARACTER VARYING이다.
--> Length 잘못 된 설정 및 기타 사유로 깨진 데이터가 있을 때 위의  Dump명령어를 사용하여 찾는다. 
 
gSQL> SELECT DUMP( 'DUMP' ) AS RESULT FROM DUAL;
RESULT
---------------------------------
Type=CHAR Len=4 : Str=68,85,77,80
1 row selected.
 
SQL SIZE 조절

gSQL> linesize 1024
gSQL> Pagesize 1024
page 와 line size를 위와 같이 조절 후 SQL 출력 하도록 한다.

 

 

 

 

 

 

 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

'sunjesoft > Goldilocks SQL' 카테고리의 다른 글

Goldilocks view & table clear Command  (0) 2021.12.16
R&D SQL 엔지니어 교육  (0) 2020.05.12
Goldilocks SQL TYPE  (0) 2019.10.16
goldilocks tuning manual  (0) 2019.06.18