튜닝 프로젝트에서 필요 한 것 들 정리해보자.
1. 데이터분포
select max(cnt), min(cnt), avg(cnt), sum(cnt), count(cnt)
from (
select count(*) cnt
from 테이블명
group by 컬럼명
)
;
2. 인덱스, 테이블 info
SELECT a.owner, a.table_name, a.index_name,
LISTAGG(b.column_name || ' + ') WITHIN GROUP (ORDER BY b.column_position) AS index_columns
FROM dba_ind_columns a
WHERE owner = ''
and a.table_name in (
'테이블명'
)
GROUP BY a.owner, a.table_name, a.index_name
order by a.owner, a.table_name, a.index_name
;
select owner, table_name, numrows, last_analyzed,
from dba_tables
WHERE owner = ''
and table_name in (
'테이블명'
)
order by table_name
;
3. 실행계획 확인
1) sql trace
alter session set tracefile_identifier='myid'; -- 구분자 지정
alter session set timed_statistics=true;
alter session set statistics_level=all;
alter session set max_dump_file_size=unlimited;
alter session set events '10046 trace name context forever, level 12';
--sql 수행
alter session set events '10046 trace name context off';
-- 파일을 tkprof 로 변환
tkprof tracefile.trc outputfile.txt sys=no explain=scott/tiger
2) display_cursor (간단하게 확인)
alter session setcurrent_schema = mbr_b2c_mgr;
select /*+ gather_plan_statistics cost_based */
select * from table(dbms_xplan.display_cursor(null /*sql_id*/, null /*child_cursor*/, 'all allstats last'));
'생계 > 튜닝' 카테고리의 다른 글
| SQL 수집하기 (0) | 2026.08.02 |
|---|---|
| 클러스터링 팩터 인덱스 블럭 스플릿 (0) | 2025.10.17 |
| 인덱스 설계 (0) | 2025.06.22 |
| 오라클 adaptive cursor sharing (ACS) 정리 (0) | 2025.06.21 |
| 튜닝에 대한 생각 (0) | 2025.03.05 |
