본문 바로가기

반응형

sql_tuning

(33)
Section2. 오라클 아키텍처 개요 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] System Global Area (SGA) - Shared Pool - Library Cache: Shared SQL Area(SQL쿼리/실행 계획). 메모리에 있음. - Data Dictionary Cache - Result - Database Buffer Cache - Buffer Pools: 메모리에 위치하며, Storage I/O를 줄이기 위해 저장된 정보가 있다면 불러와서 사용함 - Non Default Buffer Pools - Redo Log Buffer: 변경내역을 메모리에 한번에 모아놨다가 한꺼번에 (변경을)내리는 작업을 함. 오라클 아키텍처 3개 구성 요소 - 프로세스 - 사용자 프로세스와 Oracle 프로세스로 구분하며, Or..
7. 기타 튜닝 방법들 ■기타 sql 튜닝 방법 문제81. 아래의 sql 을 분석함수를 이용하지 않은 sql로 작성하시오! (오늘의 마지막 문제) select empno, ename, sal, sum(sal) over(order by empno)누적치 from emp; >>>>>>>>>>>>> select e.empno, ename, sal, (select sum(Sal) from emp where empno between (select min(empno) from emp) and e.empno)누적치 from emp e order by e.empno asc; **inline view 로는 안되는건가** select e.empno, ename, sal, 누적치 from emp e, (select empno, sum(sal)누적..
6. 병렬처리 ■ 병렬처리가 무엇인가? SQL 문이 수행해야 할 작업범위를 여러개의 작은 단위로 나누어 여러 프로세서가 동시에 처리하는 것을 말한다. *병렬처리 1. 하나의 서버내에서의 병렬처리 ----> 오라클 2. 2~4 대의 서버에서의 병렬처리 ----> 오라클 RAC ***서버는 컴퓨터라고 생각하면 편함*** 3. 여러대의 서버에서 각각 병렬처리--> 하둡 하둡을 이용하게 되면 분산 컴퓨팅 방식을 사용해서 기존 데이터 분석방식으로는 상상도 못했던 성과를 보여준다. 예: 2008년 뉴욕 타임즈 130년 분량의 신문기사 1100만 페이지를 아마존 하둡을 이용해서 하루만에 PDF 로 변환하는데 성공했다. 이 때 소요된 비용이 200만원에 불과했다. 하둡을 이용하지 않으면 14년이 소요되는 엄청난 작업량이다. (POI..
5. 파티셔닝 ■ 파티션 테이블 생성 및 관리 *목차 1. 테이블 파티셔닝 2. 파티션 pruning 3. 인덱스 파티셔닝 ▒ 파티셔닝이란? 파티셔닝은 테이블 또는 인덱스를 파티션 단위로 나누어서 저장하는 것을 말한다. 테이블을 파티셔닝하면 하나의 테이블일지라도 파티션 키에 따라 물리적으로 별도의 세그먼트에 데이터가 저장된다. 그림의 옷장서랍을 빗대어 설명하면, 봄, 여름, 가을, 겨울 옷을 따로 다른 서랍(partition)에 저장해두면 검색속도가 빨라진다. 해당 파티션만 검색하면 되기 때문에 성능이 좋아진다. 파티셔닝을 왜 사용하는 것인가? 빠르게 data를 검색하기 위하여. ▒파티셔닝의 장점 1. 관리적 측면: 보관주기가 지난 data 들을 별도로 백업하고 지우는 일이 아주 쉬워진다. 2. 성능적 측면: 파티셔닝..
4. 서브쿼리 튜닝 ■서브쿼리 문장 튜닝 *서브쿼리 문장의 튜닝 방법 2가지 1. 순수하게 서브쿼리로 수행하면서 튜닝 : no_unnest (힌트) -서브쿼리 부터 수행 : push_subq -메인쿼리 부터 수행 : no_push_subq *서브쿼리절에 힌트를 쓴다. 2. 서브쿼리를 조인으로 변경하면서 튜닝 : unnest -in 사용시 1. nested loop semi 조인 : nl_sj 2. hash semi 조인 : hash_sj 3. merge semi 조인 : merge_sj -not in 사용시 1. nested loop anti 조인 : nl_aj 2. hash anti 조인 : hash_aj 3. merge anti 조인 : merge_aj 문제68. SCOTT 과 같은 월급을 받는 사원의 이름,월급을 출력..
3. 조인 튜닝 ■ 조인 문장 튜닝 *조인의 방법 3가지 힌트 1. nested loop 조인 : use_nl 2. hash 조인 : use_hash 3. sort merge 조인 : use_merge ■ nested loop 조인 중첩 루프 조인 문제38. 이름, 부서위치를 출력하는 조인문장의 실행계획을 보고 emp 테이블을 먼저 읽고 dept 랑 조인했는지 dept 테이블을 먼저 읽고 emp 랑 조인했는지 알아내시오 select e.ename, d.loc from emp e, dept d where e.deptno = d.deptno; dept -> emp -> hash join -> select statement 얇은책과 두꺼운책을 조인해서 결과를 보겠다는 거임. 그래서 얇은책 먼저 ㄱㄱ 옵티마이져가 알아서 똑똑하..
2-1. 인덱스 엑세스 방법 1회 마지막 문제답으로 merge 인덱스 소개: select /*+ rowid(e) use_nl(v e) */ e.ename, e.sal, e.job, e.deptno from emp e, (select /*+ no_merge index_ffs(emp emp_ename) */ rowid as rn from emp where ename like '%EN%' or ename like '%IN%') v where e.rowid = v.rn; ※ no_merge 힌트? in line view 를 해체하지 말아라 ■index 엑세스 방법 7가지 1. index range scan 2. index unique scan 3. index full scan 4. index fast full scan 5. index sk..
2. 인덱스 튜닝 ■ 인덱스 튜닝 *데이터를 엑세스 하는 방법 2가지 1. full table scan : /*+ full(테이블명) */ 2. index scan -index range scan : /*+ index(테이블명 인덱스명) */ -index unique scan : /*+ index(테이블명 인덱스명) */ -index full scan: /*+ index_fs(테이블명 인덱스명) */ -index fast full scan: /*+ index_ffs(테이블명 인덱스명) */ -index skip scan: /*+ index_ss(테이블명 인덱스명) */ -index merge scan: /*+ and_equal(테이블명 인덱스명) */ -index bitmap merge scan: /*+ index_com..

반응형