SlideShare a Scribd company logo
1 of 16
오라클힌트/튜닝 #23
Query Transformation
Query Rewrite with Materialized Views
구체화뷰, REWRITE, NOREWRITE 힌트
이종철, 탑크리에듀(www.topcredu.co.kr)
실습코드 및 다시보기는 다음 URL에서 가능합니다.
http://ojc.asia
Query Rewrite with Materialized Views
• 구체화뷰(Materialized Views)는 그룹함수 튜닝의 용도로 만들어지는 실제 데이터를
Table Segment에 저장하고 있는 뷰이다.
• 오라클 옵티마이저는 사용자의 쿼리가 Mview를 통해 다시 작성할 수 있을 때 Mview를
사용하지 않은 쿼리보다 비용이 적다고 판단이 될 때 쿼리 변환을 시도하며 비용기반 옵
티마이저(Cost Based Optimizer)에서 가능하다. 즉 옵티마이저 모드가 ALL_ROWS,
FIRST_ROWS, FIRST_ROWS_n이 되어야 한다.
• 만약 비용과 관계없이 Mview를 사용하고 싶다면 REWRITE 힌트를 사용하면 되고 특별히
사용하지 않으려면 NOREWRITE 힌트를 사용하면 된다.
이종철, 탑크리에듀(www.topcredu.co.kr)
구체화 뷰(Materialized Views) ?
• 구체화 뷰 (MATERIALIZED VIEW) 는 기존 뷰와 비슷하지만, 다른 점은 실제 데이터를 자
신이 가지고 있으며 원본 테이블에 INSERT, UPDATE, DELETE가 발생하면 새로운 데이터
를 즉시 또는 이후에 구체화된 뷰에 반영되도록 한다.
• 구체화 뷰의 용도 그룹함수 튜닝을 위해 주로 사용하는데, 그룹함수 min, max, sum,
avg 등의 값을 미리 만들어 놓을 때 유용하며 USER_MVIEWS, USER_SEGMENTS,
USER_OBJECTS에서 확인 가능하다.
• CBO에서 구체화뷰를 사용하기 위한 힌트는 REWRITE인데 힌트 구문에 구체화뷰가 인자
로 와도 되고 안 와도 되며 인자로 뷰 리스트를 주지 않는 경우 적절한 MATERIALIZED
VIEW를 찾고 항상 비용(COST)과 관계없이 사용 한다.
이종철, 탑크리에듀(www.topcredu.co.kr)
구체화 뷰(Materialized Views) 기본 형식
• CREATE MATERIALIZED VIEW 뷰이름
• TABLESPACE 테이블스페이스이름
• BUILD [IMMEDIATE | DEFERRED] //immediate는 즉시 mview를 활성화
//deferred:다음 refresh 때 데이터가 채워짐
• REFRESH [FAST | COMPLETE | FORCE ]
• ON [COMMIT | DEMAND ]
• [[ENABLE | DISABLE] QUERY REWRITE]
• [ON PREBUILT TABLE]//create table as select…(CTAS)로 이미 테이블이 생성된 경우
• // 이를 query rewrite가 가능하도록 mview로 만드는 옵션
• AS SELECT ...;
이종철, 탑크리에듀(www.topcredu.co.kr)
구체화 뷰(Materialized Views)를 위한 권한 - 1
• 구체화뷰를 만들고 관리하기 위해서는 스키마 계정에 몇가지 권한이 필요하다.
1. 자신의 스키마 계정에 Mview를 만들기 위해서는 아래의 권한이 필요하다.
CREATE MATERIALIZED VIEW system privilege.
CREATE TABLE or CREATE ANY TABLE system privilege.
SELECT ANY TABLE system privilege.
2. 다른 사용자 스키마에 Mview를 만들기 위해서는 다음과 같은 권한이 추가로 필요하다.
CREATE ANY MATERIALIZED VIEW system privilege.
SELECT ANY TABLE system privilege.
이종철, 탑크리에듀(www.topcredu.co.kr)
구체화 뷰(Materialized Views)를 위한 권한 - 2
3. refresh-on-commit Mview를 만들기 위해서는 다음 권한이 추가로 필요하다.
ON COMMIT REFRESH system privilege.
4. Query rewrite enabled 형태로 Mview를 만들기 위해서는 다음권한이 추가로 필요하다.
GLOBAL QUERY REWRITE privilege or the QUERY REWRITE
5. On PREBUILT TABLE구로 Mview를 만들기 위해서는 다음 권한이 추가로 필요하다.
SELECT privilege WITH GRANT OPTION(Container Table에 대해)
6. 마스터 테이블 또는 Mview 인덱스를 특정 테이블스페이스에 대해 생성하기 위해서는
아래 권한이 추가로 필요하다.
UNLIMITED TABLESPACE system privilege.
이종철, 탑크리에듀(www.topcredu.co.kr)
Materialized Views 예제(부서별 최소급여) - 1
-- 부서별 최소급여를 구하는 쿼리 2.5초
-- Mview가 생성되지 않은 상태에서 아래 쿼리를 실행하자.부서별 급여최소값을
-- HASH GROUP BY로 구하는 과정때문에 시간이 걸린다.
SELECT deptno, empno, sal
FROM myemp1
WHERE (deptno, sal) in (SELECT deptno, MIN(sal)
FROM myemp1
GROUP BY deptno);
이종철, 탑크리에듀(www.topcredu.co.kr)
Materialized Views 예제(부서별 최소급여) - 2
-- 부서별 최소급여를 Mview를로 생성하자.
DROP MATERIALIZED VIEW M_DEPT_MINSAL ;
CREATE MATERIALIZED VIEW M_DEPT_MINSAL
BUILD IMMEDIATE -- MVIEW만들때 데이터 생성하라
REFRESH COMPLETE -- 갱신시 전부 갱신
ON DEMAND -- DBMS_MVIEW패키지에서 REFRESH명령시 또는주기마다 갱신
--1시간마다 갱신
START WITH SYSDATE NEXT SYSDATE + 1/24
ENABLE QUERY REWRITE
AS
SELECT deptno, MIN(sal) FROM myemp1 GROUP BY deptno ;
생성 후 통계정보 수집
BEGIN
DBMS_STATS.gather_table_stats(
ownname => 'SCOTT',
tabname => 'EMP_MV'); END;
/
이종철, 탑크리에듀(www.topcredu.co.kr)
Materialized Views 예제(부서별 최소급여) - 3
-- 0초, Mview를 사용한다.
SELECT deptno, empno, sal
FROM myemp1
WHERE (deptno, sal) in (SELECT deptno, min(sal)
FROM myemp1 GROUP BY deptno);
-- 테스트를 위해 데이터를 한건 생성하자.
delete from myemp1 where empno = 11111111;
insert into myemp1(empno, ename, sal, deptno) values (11111111, '이종철',
5999999, '1');
commit;
이종철, 탑크리에듀(www.topcredu.co.kr)
Materialized Views 예제(부서별 최소급여) - 4
-- Mview를 갱신하지 않아 옵티마이저가 Mview를 사용안한다.
SELECT deptno, empno, sal
FROM myemp1
WHERE (deptno, sal) in (SELECT deptno, min(sal) FROM myemp1 GROUP BY deptno);
-- 힌트를 사용해도 Mview를 갱신하지 않아 옵티마이저가 사용안한다.
SELECT /*+ REWRITE */ deptno, empno, sal
FROM myemp1
WHERE (deptno, sal) in (SELECT deptno, min(sal) FROM myemp1 GROUP BY deptno);
이종철, 탑크리에듀(www.topcredu.co.kr)
Materialized Views 예제(부서별 최소급여) - 4
-- Mview를 갱신하자.
EXEC dbms_mview.refresh('M_DEPT_MINSAL', method=>'C');
-- 이제는 Mview를 사용한다.
SELECT /*+ REWRITE */deptno, empno, sal
FROM myemp1
WHERE (deptno, sal) in (SELECT deptno, min(sal)
FROM myemp1
GROUP BY deptno);
이종철, 탑크리에듀(www.topcredu.co.kr)
Materialized Views 예제(COUNT 튜닝) - 1
-- REFRESH FAST ON COMMIT 사용하여 MVIEW를 만들고 COUNT 연산을 튜닝하자.
-- MUEMP1 테이블의 PK인덱스 이름은 PK_MYEMP1 이다.
-- 오라클11g의 경우 COUNT SQL문 실행시 INDEX FAST FULL SCAN을 하도록 되어 있다.
-- 약 0.2~0.3초쯤 걸렸다.(CBO에서 힌트를 안써도 INDEX FAST FULL SCAN 스캔한다.)
SELECT COUNT(empno) FROM myemp1 e;
이종철, 탑크리에듀(www.topcredu.co.kr)
Materialized Views 예제(COUNT 튜닝) - 2
-- mview를 이용하여 count(*) 튜닝을 해보자. 물론 원본데이터가 변경 되더라도
-- 즉시 mview에 반영이 되어 count가 증가되어야 한다.
DROP MATERIALIZED VIEW LOG ON myemp1;
CREATE MATERIALIZED VIEW LOG ON myemp1 WITH PRIMARY KEY, ROWID INCLUDING NEW VALUES;
-- MVIEW를 만들자.
DROP MATERIALIZED VIEW m_count;
CREATE MATERIALIZED VIEW m_count
BUILD IMMEDIATE -- MView 생성과 동시에 데이터들도 생성
REFRESH FAST -- 원본의변경된 데이터만 mview에 갱신
ON COMMIT -- Commit 이 일어날 때 뷰 Refresh
ENABLE QUERY REWRITE
AS SELECT COUNT(*) cnt FROM myemp1;
이종철, 탑크리에듀(www.topcredu.co.kr)
Materialized Views 예제(COUNT 튜닝) - 3
-- count를 해보자 0초 걸린다. mview가 사용됨을 실행계획을 통해 알 수 있다.
SELECT COUNT(empno) FROM myemp1 e;
(결과)10000002
-- myemp table에 데이터를 한건 입력하고 mview에 실시간으로 반영되는지 확인하자.
INSERT INTO myemp1 (empno, ename) VALUES (11111112, '이종철2');
COMMIT;
SELECT COUNT(empno) FROM myemp1 e;
(결과)10000003
이종철, 탑크리에듀(www.topcredu.co.kr)
This practice makes Expert!
PL/SQL단기속성(1일완성)SQL힌트/튜닝(단기2일교육)SQL기초과정

More Related Content

What's hot

#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...
#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...
#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기XpressEngine
 
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기승엽 신
 
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기XpressEngine
 
XE 모듈 개발 - 걸음마부터 날기까지 - 달리기
XE 모듈 개발 - 걸음마부터 날기까지 - 달리기XE 모듈 개발 - 걸음마부터 날기까지 - 달리기
XE 모듈 개발 - 걸음마부터 날기까지 - 달리기승엽 신
 
Xe 구조에 대한 이해
Xe 구조에 대한 이해Xe 구조에 대한 이해
Xe 구조에 대한 이해Dong Hyun Kim
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선Sol Kim
 
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육탑크리에듀(구로디지털단지역3번출구 2분거리)
 

What's hot (10)

#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...
#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...
#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...
 
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 달리기
 
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
 
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기
 
XE 모듈 개발 - 걸음마부터 날기까지 - 달리기
XE 모듈 개발 - 걸음마부터 날기까지 - 달리기XE 모듈 개발 - 걸음마부터 날기까지 - 달리기
XE 모듈 개발 - 걸음마부터 날기까지 - 달리기
 
Xe 구조에 대한 이해
Xe 구조에 대한 이해Xe 구조에 대한 이해
Xe 구조에 대한 이해
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선
 
3.1 실행계획 sql 연산 (and equal)
3.1 실행계획 sql 연산 (and equal)3.1 실행계획 sql 연산 (and equal)
3.1 실행계획 sql 연산 (and equal)
 
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육
(SQL초보자를 위한, 쿼리최적화 for SQL튜닝)SQL쿼리작성Tip,최적화팁,최적화된SQL작성방법교육
 
Any(some),all,exists(2)
Any(some),all,exists(2)Any(some),all,exists(2)
Any(some),all,exists(2)
 

Viewers also liked

#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(스프링교육/마이바티스교육학원추천_탑크리에듀)#10.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(스프링교육/마이바티스교육학원추천_탑크리에듀)#10.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(스프링교육/마이바티스교육학원추천_탑크리에듀)#10.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(스프링교육/마이바티스교육학원추천_탑크리에듀)#10.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
#16.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#16.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#16.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#16.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천탑크리에듀(구로디지털단지역3번출구 2분거리)
 
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 

Viewers also liked (17)

#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
(스프링교육/마이바티스교육학원추천_탑크리에듀)#10.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(스프링교육/마이바티스교육학원추천_탑크리에듀)#10.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(스프링교육/마이바티스교육학원추천_탑크리에듀)#10.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(스프링교육/마이바티스교육학원추천_탑크리에듀)#10.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(국비지원학원/재직자교육/실업자교육/IT실무교육_탑크리에듀)#4.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
 
#16.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#16.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#16.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#16.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
 
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
 
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...
 
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
 
(Spring Data JPA)식별자(@Id, Primary Key) 자동 생성, @GeneratedValue의 strategy 속성,Ge...
(Spring Data JPA)식별자(@Id, Primary Key) 자동 생성, @GeneratedValue의 strategy 속성,Ge...(Spring Data JPA)식별자(@Id, Primary Key) 자동 생성, @GeneratedValue의 strategy 속성,Ge...
(Spring Data JPA)식별자(@Id, Primary Key) 자동 생성, @GeneratedValue의 strategy 속성,Ge...
 
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#30.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
(오라클SQL강좌)오라클 NLS 파라미터_NLS_DATE_FORMAT, NLS_LANG, NLS_LANGUAGE, NLS_TERRITORY...
(오라클SQL강좌)오라클 NLS 파라미터_NLS_DATE_FORMAT, NLS_LANG, NLS_LANGUAGE, NLS_TERRITORY...(오라클SQL강좌)오라클 NLS 파라미터_NLS_DATE_FORMAT, NLS_LANG, NLS_LANGUAGE, NLS_TERRITORY...
(오라클SQL강좌)오라클 NLS 파라미터_NLS_DATE_FORMAT, NLS_LANG, NLS_LANGUAGE, NLS_TERRITORY...
 

Similar to (SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이저 쿼리변환, 오라클/SQL힌트튜닝교육강좌

MySQL 5.7 NF – Optimizer Improvement
 MySQL 5.7 NF – Optimizer Improvement MySQL 5.7 NF – Optimizer Improvement
MySQL 5.7 NF – Optimizer ImprovementI Goo Lee
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQLrockplace
 
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014승엽 신
 
Unreal_SubSystem.pptx
Unreal_SubSystem.pptxUnreal_SubSystem.pptx
Unreal_SubSystem.pptxTonyCms
 
The roadtocodecraft
The roadtocodecraftThe roadtocodecraft
The roadtocodecraftbbongcsu
 
신입 웹 개발자 포트폴리오 / 댓글 게시판
신입 웹 개발자 포트폴리오 / 댓글 게시판신입 웹 개발자 포트폴리오 / 댓글 게시판
신입 웹 개발자 포트폴리오 / 댓글 게시판hyeonjae Cheon
 
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @SeoulCreate App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @SeoulBansook Nam
 
Essencia ui ux specification 2014 10 15
Essencia ui ux specification 2014 10 15Essencia ui ux specification 2014 10 15
Essencia ui ux specification 2014 10 15uEngine Solutions
 
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble ShootingJi-Woong Choi
 
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)SangIn Choung
 
Oracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameterOracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameter엑셈
 
MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)OracleMySQL
 
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2Seok-joon Yun
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
 
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC [오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC Ji-Woong Choi
 

Similar to (SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이저 쿼리변환, 오라클/SQL힌트튜닝교육강좌 (17)

MySQL 5.7 NF – Optimizer Improvement
 MySQL 5.7 NF – Optimizer Improvement MySQL 5.7 NF – Optimizer Improvement
MySQL 5.7 NF – Optimizer Improvement
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQL
 
2.1 optimizer mode를 변경하는 힌트(rule)
2.1 optimizer mode를 변경하는 힌트(rule)2.1 optimizer mode를 변경하는 힌트(rule)
2.1 optimizer mode를 변경하는 힌트(rule)
 
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
 
Unreal_SubSystem.pptx
Unreal_SubSystem.pptxUnreal_SubSystem.pptx
Unreal_SubSystem.pptx
 
The roadtocodecraft
The roadtocodecraftThe roadtocodecraft
The roadtocodecraft
 
신입 웹 개발자 포트폴리오 / 댓글 게시판
신입 웹 개발자 포트폴리오 / 댓글 게시판신입 웹 개발자 포트폴리오 / 댓글 게시판
신입 웹 개발자 포트폴리오 / 댓글 게시판
 
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @SeoulCreate App Easier With SVC Pattern - DroidKnights 2019 @Seoul
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
 
Essencia ui ux specification 2014 10 15
Essencia ui ux specification 2014 10 15Essencia ui ux specification 2014 10 15
Essencia ui ux specification 2014 10 15
 
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
 
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
 
Oracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameterOracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameter
 
MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)
 
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
 
EC 789
EC 789EC 789
EC 789
 
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC [오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리)

[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리) (20)

자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
 
[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육
 
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
 
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
 
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
 
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
 
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
 
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
 
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
 
2. xamarin.android 2.5.3 xamarin.android .aar binding(안드로이드 .aar file을 자마린 바...
2. xamarin.android  2.5.3 xamarin.android .aar binding(안드로이드 .aar file을 자마린 바...2. xamarin.android  2.5.3 xamarin.android .aar binding(안드로이드 .aar file을 자마린 바...
2. xamarin.android 2.5.3 xamarin.android .aar binding(안드로이드 .aar file을 자마린 바...
 

(SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이저 쿼리변환, 오라클/SQL힌트튜닝교육강좌

  • 1. 오라클힌트/튜닝 #23 Query Transformation Query Rewrite with Materialized Views 구체화뷰, REWRITE, NOREWRITE 힌트 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 2. 실습코드 및 다시보기는 다음 URL에서 가능합니다. http://ojc.asia
  • 3. Query Rewrite with Materialized Views • 구체화뷰(Materialized Views)는 그룹함수 튜닝의 용도로 만들어지는 실제 데이터를 Table Segment에 저장하고 있는 뷰이다. • 오라클 옵티마이저는 사용자의 쿼리가 Mview를 통해 다시 작성할 수 있을 때 Mview를 사용하지 않은 쿼리보다 비용이 적다고 판단이 될 때 쿼리 변환을 시도하며 비용기반 옵 티마이저(Cost Based Optimizer)에서 가능하다. 즉 옵티마이저 모드가 ALL_ROWS, FIRST_ROWS, FIRST_ROWS_n이 되어야 한다. • 만약 비용과 관계없이 Mview를 사용하고 싶다면 REWRITE 힌트를 사용하면 되고 특별히 사용하지 않으려면 NOREWRITE 힌트를 사용하면 된다. 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 4. 구체화 뷰(Materialized Views) ? • 구체화 뷰 (MATERIALIZED VIEW) 는 기존 뷰와 비슷하지만, 다른 점은 실제 데이터를 자 신이 가지고 있으며 원본 테이블에 INSERT, UPDATE, DELETE가 발생하면 새로운 데이터 를 즉시 또는 이후에 구체화된 뷰에 반영되도록 한다. • 구체화 뷰의 용도 그룹함수 튜닝을 위해 주로 사용하는데, 그룹함수 min, max, sum, avg 등의 값을 미리 만들어 놓을 때 유용하며 USER_MVIEWS, USER_SEGMENTS, USER_OBJECTS에서 확인 가능하다. • CBO에서 구체화뷰를 사용하기 위한 힌트는 REWRITE인데 힌트 구문에 구체화뷰가 인자 로 와도 되고 안 와도 되며 인자로 뷰 리스트를 주지 않는 경우 적절한 MATERIALIZED VIEW를 찾고 항상 비용(COST)과 관계없이 사용 한다. 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 5. 구체화 뷰(Materialized Views) 기본 형식 • CREATE MATERIALIZED VIEW 뷰이름 • TABLESPACE 테이블스페이스이름 • BUILD [IMMEDIATE | DEFERRED] //immediate는 즉시 mview를 활성화 //deferred:다음 refresh 때 데이터가 채워짐 • REFRESH [FAST | COMPLETE | FORCE ] • ON [COMMIT | DEMAND ] • [[ENABLE | DISABLE] QUERY REWRITE] • [ON PREBUILT TABLE]//create table as select…(CTAS)로 이미 테이블이 생성된 경우 • // 이를 query rewrite가 가능하도록 mview로 만드는 옵션 • AS SELECT ...; 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 6. 구체화 뷰(Materialized Views)를 위한 권한 - 1 • 구체화뷰를 만들고 관리하기 위해서는 스키마 계정에 몇가지 권한이 필요하다. 1. 자신의 스키마 계정에 Mview를 만들기 위해서는 아래의 권한이 필요하다. CREATE MATERIALIZED VIEW system privilege. CREATE TABLE or CREATE ANY TABLE system privilege. SELECT ANY TABLE system privilege. 2. 다른 사용자 스키마에 Mview를 만들기 위해서는 다음과 같은 권한이 추가로 필요하다. CREATE ANY MATERIALIZED VIEW system privilege. SELECT ANY TABLE system privilege. 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 7. 구체화 뷰(Materialized Views)를 위한 권한 - 2 3. refresh-on-commit Mview를 만들기 위해서는 다음 권한이 추가로 필요하다. ON COMMIT REFRESH system privilege. 4. Query rewrite enabled 형태로 Mview를 만들기 위해서는 다음권한이 추가로 필요하다. GLOBAL QUERY REWRITE privilege or the QUERY REWRITE 5. On PREBUILT TABLE구로 Mview를 만들기 위해서는 다음 권한이 추가로 필요하다. SELECT privilege WITH GRANT OPTION(Container Table에 대해) 6. 마스터 테이블 또는 Mview 인덱스를 특정 테이블스페이스에 대해 생성하기 위해서는 아래 권한이 추가로 필요하다. UNLIMITED TABLESPACE system privilege. 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 8. Materialized Views 예제(부서별 최소급여) - 1 -- 부서별 최소급여를 구하는 쿼리 2.5초 -- Mview가 생성되지 않은 상태에서 아래 쿼리를 실행하자.부서별 급여최소값을 -- HASH GROUP BY로 구하는 과정때문에 시간이 걸린다. SELECT deptno, empno, sal FROM myemp1 WHERE (deptno, sal) in (SELECT deptno, MIN(sal) FROM myemp1 GROUP BY deptno); 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 9. Materialized Views 예제(부서별 최소급여) - 2 -- 부서별 최소급여를 Mview를로 생성하자. DROP MATERIALIZED VIEW M_DEPT_MINSAL ; CREATE MATERIALIZED VIEW M_DEPT_MINSAL BUILD IMMEDIATE -- MVIEW만들때 데이터 생성하라 REFRESH COMPLETE -- 갱신시 전부 갱신 ON DEMAND -- DBMS_MVIEW패키지에서 REFRESH명령시 또는주기마다 갱신 --1시간마다 갱신 START WITH SYSDATE NEXT SYSDATE + 1/24 ENABLE QUERY REWRITE AS SELECT deptno, MIN(sal) FROM myemp1 GROUP BY deptno ; 생성 후 통계정보 수집 BEGIN DBMS_STATS.gather_table_stats( ownname => 'SCOTT', tabname => 'EMP_MV'); END; / 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 10. Materialized Views 예제(부서별 최소급여) - 3 -- 0초, Mview를 사용한다. SELECT deptno, empno, sal FROM myemp1 WHERE (deptno, sal) in (SELECT deptno, min(sal) FROM myemp1 GROUP BY deptno); -- 테스트를 위해 데이터를 한건 생성하자. delete from myemp1 where empno = 11111111; insert into myemp1(empno, ename, sal, deptno) values (11111111, '이종철', 5999999, '1'); commit; 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 11. Materialized Views 예제(부서별 최소급여) - 4 -- Mview를 갱신하지 않아 옵티마이저가 Mview를 사용안한다. SELECT deptno, empno, sal FROM myemp1 WHERE (deptno, sal) in (SELECT deptno, min(sal) FROM myemp1 GROUP BY deptno); -- 힌트를 사용해도 Mview를 갱신하지 않아 옵티마이저가 사용안한다. SELECT /*+ REWRITE */ deptno, empno, sal FROM myemp1 WHERE (deptno, sal) in (SELECT deptno, min(sal) FROM myemp1 GROUP BY deptno); 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 12. Materialized Views 예제(부서별 최소급여) - 4 -- Mview를 갱신하자. EXEC dbms_mview.refresh('M_DEPT_MINSAL', method=>'C'); -- 이제는 Mview를 사용한다. SELECT /*+ REWRITE */deptno, empno, sal FROM myemp1 WHERE (deptno, sal) in (SELECT deptno, min(sal) FROM myemp1 GROUP BY deptno); 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 13. Materialized Views 예제(COUNT 튜닝) - 1 -- REFRESH FAST ON COMMIT 사용하여 MVIEW를 만들고 COUNT 연산을 튜닝하자. -- MUEMP1 테이블의 PK인덱스 이름은 PK_MYEMP1 이다. -- 오라클11g의 경우 COUNT SQL문 실행시 INDEX FAST FULL SCAN을 하도록 되어 있다. -- 약 0.2~0.3초쯤 걸렸다.(CBO에서 힌트를 안써도 INDEX FAST FULL SCAN 스캔한다.) SELECT COUNT(empno) FROM myemp1 e; 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 14. Materialized Views 예제(COUNT 튜닝) - 2 -- mview를 이용하여 count(*) 튜닝을 해보자. 물론 원본데이터가 변경 되더라도 -- 즉시 mview에 반영이 되어 count가 증가되어야 한다. DROP MATERIALIZED VIEW LOG ON myemp1; CREATE MATERIALIZED VIEW LOG ON myemp1 WITH PRIMARY KEY, ROWID INCLUDING NEW VALUES; -- MVIEW를 만들자. DROP MATERIALIZED VIEW m_count; CREATE MATERIALIZED VIEW m_count BUILD IMMEDIATE -- MView 생성과 동시에 데이터들도 생성 REFRESH FAST -- 원본의변경된 데이터만 mview에 갱신 ON COMMIT -- Commit 이 일어날 때 뷰 Refresh ENABLE QUERY REWRITE AS SELECT COUNT(*) cnt FROM myemp1; 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 15. Materialized Views 예제(COUNT 튜닝) - 3 -- count를 해보자 0초 걸린다. mview가 사용됨을 실행계획을 통해 알 수 있다. SELECT COUNT(empno) FROM myemp1 e; (결과)10000002 -- myemp table에 데이터를 한건 입력하고 mview에 실시간으로 반영되는지 확인하자. INSERT INTO myemp1 (empno, ename) VALUES (11111112, '이종철2'); COMMIT; SELECT COUNT(empno) FROM myemp1 e; (결과)10000003 이종철, 탑크리에듀(www.topcredu.co.kr)
  • 16. This practice makes Expert! PL/SQL단기속성(1일완성)SQL힌트/튜닝(단기2일교육)SQL기초과정