생계/튜닝2025. 10. 28. 13:26
반응형

튜닝 프로젝트에서 필요 한 것 들 정리해보자.  

 

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
Posted by 돌고래트레이너