Microsoft PowerPoint - Oracle Data Join Method.pptx [읽기 전용]
|
|
- 채경 박
- 6 years ago
- Views:
Transcription
1 Special Key Note Oracle Data Join Method ( 주 ) 오픈메이드컨설팅 오동규수석컨설턴트 1
2 What is Join? JOIN is Multiply. 2
3 Why is the Join Method so important? 잘못사용하면큰재앙이따른다.( 위의그림처럼 ) 두개의집합을연결할수있는유일한수단. Join Method 는모든 DBMS 가대동소이. 3
4 Learning Join Method - Any Benefit? Learning Join Before Learning Join After Execution Plan 이눈에들어옴. 비로소 SQL 튜닝이가능해짐. 적절한 Join Method 를적소에사용하는것이 SQL 튜닝임. Data Access Pettern 과밀접한관련이있음. 4
5 Oracle Data Join Method Nested Loop Join Sort Merge Join Hash Join Outer Join Using SubQuery Join Method 에따라용도가다르다. 5
6 Oracle Data Join Method Contents Nested Loop Join Sort Merge Join Hash Join Cartesian Join ( 혹은 Cross Join) Sub Query (In, Any, All, Exists, Subquery Factoring) Semi Join (Nested Loop, Sort Merge, Hash, Hash Join Right) Anti Join (Nested Loop, Sort Merge, Hash, Hash Join Right) Index Join Outer Join (Full,Nested Loop, Sort Merge, Hash, Hash Join Right) Partition Outer Join Star Query Transformation 6
7 Nested Loop Join > 특징 > 적용 > Hint 먼저수행되는집합 (Driving) 의처리범위가전체일량을좌우 먼저수행되는집합 (Driving) 이상수로바뀌어후행테이블에공급된다. 후행테이블은계속 Loop 를돌면서 Driving 테이블의상수공급이끝날때까지조인한다. Single Block I/O Random Access 발생 ( 테이블 access 가필요한경우 ) 소량의데이터처리 (OnLine) 는유리 대량의데이터처리 (Batch) 는큰부하발생 ( 페이징처리된 SQL 은예외 ) OLTP 시스템 처리해야하는범위가소량인경우 (10 만건미만 ) 부분범위 ( 페이징 ) 처리시 select /*+ use_nl(a b) */ a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno ; 7
8 Nested Loop Join -Concept > Full Unique 인덱스 layout : dept(deptno) pk select a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno ; EMP 테이블 PK_DEPT 인덱스 DEPT 테이블 EMPNO ENAME DEPTNO. DEPTNO DNAME LOC 7782 CLARK SCOTT FORD KING ACCOUNTING NEW YORK 30 SALES CHICAGO 20 RESEARCH DALLAS 40 OPERATIONS BOSTON Full Table Scan Multi Block I/O 8
9 Nested Loop Join - 예제 > Full Unique 실행계획 인덱스 layout : dept(deptno) p pk select a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno ; Id Operation Name Starts E-Rows A-Rows A-Time Buffers Reads NESTED LOOPS :00: TABLE ACCESS FULL EMP :00: TABLE ACCESS BY INDEX ROWID DEPT :00: * 4 INDEX UNIQUE SCAN PK_DEPT :00: Predicate Information (identified by operation id): access("a"."deptno"="b"."deptno") 9
10 Nested Loop Join -Concept >Full Range scan 인덱스 layout : emp(deptno) 생성 dept(deptno) pk select a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno ; EMP 테이블 Full Table Scan Multi Block I/O EMPNO ENAME DEPTNO TURNER 30. DEPT 테이블 DEPTNO DNAME LOC 10 ACCOUNTING NEW YORK 30 SALES CHICAGO 20 RESEARCH DALLAS... EMP.DEPT 인덱스 CLARK SCOTT FORD KING
11 Nested Loop Join - 예제 > Full Range 실행계획 인덱스 layout : emp(deptno) 생성 dept(deptno) pk select a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno ; Id Operation Name Starts E-Rows A-Rows A-Time Buffers Reads TABLE ACCESS BY INDEX ROWID EMP :00: NESTED LOOPS :00: TABLE ACCESS FULL DEPT :00: * 4 INDEX RANGE SCAN IX_EMP_N :00: Predicate Information (identified by operation id): access("a"."deptno"="b"."deptno") 11
12 Nested Loop Join -Concept >Range Range 인덱스 layout : dept(deptno) PK emp(deptno) select a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno and b.deptno BETWEEN 10 AND 20; EMP 테이블 EMPNO ENAME DEPTNO. PK_DEPT DEPT 테이블 EMP.DEPT 7782 CLARK 10 인덱스 인덱스 DEPTNO DNAME LOC 7782 CLARK ACCOUNTING NEW YORK 30 SALES CHICAGO SCOTT RESEARCH DALLAS OPERATIONS BOSTON FORD KING
13 Nested Loop Join - 예제 > Range-Rane 실행계획 인덱스 layout : dept(deptno) PK emp(deptno) select a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno and b.deptno BETWEEN 10 AND 20; Id Operation Name Starts E-Rows A-Rows A-Time Buffers TABLE ACCESS BY INDEX ROWID EMP :00: NESTED LOOPS :00: TABLE ACCESS BY INDEX ROWID DEPT :00: * 4 INDEX RANGE SCAN PK_DEPT :00: * 5 INDEX RANGE SCAN IX_EMP_N :00: Predicate Information (identified by operation id): access("b"."deptno">=10 AND "B"."DEPTNO"<=20) 5 - access("a"."deptno"="b"."deptno") filter(("a"."deptno"<=20 AND "A"."DEPTNO">=10)) 13
14 Nested Loop Join -Concept > Unique Unique 인덱스 layout : dept(deptno) PK emp(empno) PK select a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno and a.empno = 7839; EMPNO 인덱스 EMP 테이블 EMPNO ENAME DEPTNO. PK_DEPT 인덱스 DEPT 테이블 인덱스 DEPTNO DNAME LOC 7839 KING ACCOUNTING NEW YORK 30 SALES CHICAGO 20 RESEARCH DALLAS 7782 CLARK OPERATIONS BOSTON 7788 SCOTT FORD
15 Nested Loop Join - 예제 > Unique-Unique 실행계획 인덱스 layout : dept(deptno) PK emp(empno) PK select a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno and a.empno = 7839; Id Operation Name Starts E-Rows A-Rows A-Time Buffers NESTED LOOPS :00: TABLE ACCESS BY INDEX ROWID EMP :00: * 3 INDEX UNIQUE SCAN PK_EMP :00: TABLE ACCESS BY INDEX ROWID DEPT :00: * 5 INDEX UNIQUE SCAN PK_DEPT :00: Predicate Information (identified by operation id): access("a"."empno"=7839) 5 - access("a"."deptno"="b"."deptno") 15
16 Sort Merge Join > 특징 조인되는컬럼에인덱스존재유무가문제되지않음 정렬 (Sort) 을대신할인덱스가존재할경우부하감소 > 적용 > Hint 처리량이많은전체범위에주로사용 (Batch) 부분범위처리 ( 페이징처리 ) 가안되며 Nested Loop Join 의 Random 액세스가크게부담이되는경우양쪽테이블을 full table scan 을사용함으로서부하를경감시킬수있음. 조인된컬럼을기준으로결과집합을 sort 해야될경우최적의적용조건임. /*+ use_merge(a b) */ select /*+ use_merge(a b) */ a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno Order by b.deptno ; 16
17 Sort Merge Join -Concept >Range Merge Range select /*+ use_merge(a b) */ a.dname, b.empno, b.ename from dept a, big_emp b where a.deptno = b.deptno and a.deptno between 10 and 20 and b.hiredate between to_ date(' ', 'yyyymmdd') and to_date(' ', 'yyyymmdd') order by b.deptno ; PK_DEPT DEPT BIG_EMP IX_BIG_EMP_N3 S O R T Merge S O R T 결과집합 RETURN 17
18 Sort Merge Join 예제1 > 실행계획 select /*+ use_merge(a b) */ a.dname, b.empno, b.ename from dept a, big_emp b where a.deptno = b.deptno and a.deptno between 10 and 20 and b.hiredate between to_date(' ', 'yyyymmdd') and to_date(' ', 'yyyymmdd') order by b.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem MERGE JOIN :00: SORT JOIN :00: (0) 3 TABLE ACCESS BY INDEX ROWID DEPT :00: * 4 INDEX RANGE SCAN PK_DEPT :00: * 5 SORT JOIN :00: K (0) 6 TABLE ACCESS BY INDEX ROWID BIG_EMP :00: * 7 INDEX RANGE SCAN IX_BIG_EMP_N :00: Predicate Information (identified by operation id): access("a"."deptno">=10 AND "A"."DEPTNO"<=20) 5 - access("b"."deptno"=to_number("a"."deptno")) filter("b"."deptno"=to_number("a"."deptno")) 7 - access("b"."hiredate">=to_date(' :00:00', 'syyyy-mm-dd hh24:mi:ss') AND "B"."HIREDATE"<=TO_DATE(' :00:00', 'syyyy-mm-dd hh24:mi:ss')) 18
19 Sort Merge Join -Concept >Full Merge Full select /*+ use_merge(a b) */ a.dname, b.empno, b.ename from dept a, big_emp b where a.deptno = b.deptno and b.sal > 1000 ; DEPT BIG_EMP S O R T Merge S O R T 결과집합 RETURN 19
20 Sort Merge Join 예제2 > 실행계획 select /*+ use_merge(a b) */ a.dname, b.empno, b.ename from dept a, big g_ emp pb where a.deptno = b.deptno and b.sal > 1000 ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem MERGE JOIN :00: SORT JOIN :00: (0) 3 TABLE ACCESS FULL DEPT :00: * 4 SORT JOIN :00: K (0) * 5 TABLE ACCESS FULL BIG_EMP :00: Predicate Information (identified by operation id): access("b"."deptno"=to_number("a"."deptno")) filter("b"."deptno"=to TO_NUMBER( NUMBER("A"."DEPTNO")) 5 - filter("b"."sal">1000) 20
21 Hash Join > 특징 > 적용 > Hint 먼저처리되는집합 (Driving) 이소량일때성능극대화됨. 연산자의제약 : 조인조건이 = (Equal) 조건에서만가능 메모리내에서수행시빠른속도보장 메모리사용량 (HASH_AREA_SIZE AREA SIZE ) 과 CPU 사용량이많음. Nested Loop 에서의 Random 액세스가부담스러울때 Sort Merge Join 에서의정렬 (Sort) 작업이부담스러울때 초대용량테이블을조인해야되는경우 ( 몇억건이상 ) 대량의데이터처리, Batch 처리, 테이블 FULL 스캔시유리 Parallel Query 와함께사용시수행속도극대화 온라인프로그램에함부로적용하지말것. /*+ use_hash(a b) */ SELECT /*+ use_hash(a b) */ a.empno, a.ename, b.dname FROM emp a, dept b WHERE a.deptno = b.deptno ; 21
22 Hash Join - Concept >Range Hash Range 용어정리 Build Input 테이블 : Driving 테이블을의미함 Probe 테이블 : 후행테이블을의미함 Hash Table : Build Input 테이블을담아두는임시적인공간을의미함이공간은대부분메모리영역이며부족할경우 Disk 를사용하게됨으로성능이저하됨. select /*+ use_hash(a b) */ a.dname, b.empno, b.ename from dept a, big_emp b where e a.deptno = b.deptno and a.deptno between 10 and 20 and b.hiredate between to_date(' ', 'yyyymmdd') and to_date(' ', 'yyyymmdd') ; PK_DEPT DEPT BIG_EMP IX_BIG_EMP_N3 HASH TABLE BUILD INPUT TABLE PROBE TABLE 22
23 Hash Join 예제1 > 실행계획 select /*+ use_hash(a b) */ a.dname, b.empno, b.ename from dept a, big_emp b where a.deptno = b.deptno and a.deptno between 10 and 20 and b.hiredate between to_date(' ', 'yyyymmdd') and to_date(' ', 'yyyymmdd') ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem * 1 HASH JOIN :00: K (0) 2 TABLE ACCESS BY INDEX ROWID DEPT :00: * 3 INDEX RANGE SCAN PK_DEPT :00: TABLE ACCESS BY INDEX ROWID BIG_EMP :00: * 5 INDEX RANGE SCAN IX_BIG_EMP_N :00: Predicate Information (identified by operation id): access("b"."deptno"=to_number("a"."deptno")) 3 - access("a"."deptno">='10' AND "A"."DEPTNO"<='20') 5 - access("b"."hiredate">=to_date(' :00:00', 'syyyy-mm-dd hh24:mi:ss') AND "B"."HIREDATE"<=TO_DATE(' :00:00', 'syyyy-mm-dd hh24:mi:ss')) 23
24 Hash Join - Concept >Full Hash Full(Probe) SELECT /*+ use_hash(a b) */ a.empno, a.ename, b.dname FROM emp a, dept b WHERE a.deptno = b.deptno ; DEPT HASH TABLE EMP BUILD INPUT TABLE PROBE TABLE 24
25 Hash Join 예제2 > 실행계획 SELECT /*+ use_hash(a b) */ a.empno, a.ename, b.dname FROM emp a, dept b WHERE a.deptno = b.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem * 1 HASH JOIN :00: K (0) 2 TABLE ACCESS FULL DEPT :00: TABLE ACCESS FULL EMP :00: Predicate Information (identified by operation id): access("a"."deptno"=to_number("b"."deptno")) "DEPTNO" TO NUMBER("B" "DEPTNO")) 25
26 Cartesian Join > 발생조건 > 특징 > 적용 > Hint 조인되는두집합에조인조건이전혀없는경우 M:M 조인을의미 Cartesian Join 발생원인 - SQL 작성자의실수 - 사용자가특별한목적하에고의적발생 ( 데이터복제 ) Cross Join 이라고도함. 실행계획의특징 - Sort Merge 조인만이 Cartesian 실행계획명기 - 타조인의경우정상적인조인의실행계획으로명기, 단결과로확인가능 사용자가특별한목적하에조인조건없이사용 Cartesian Join 이발생하면 SQL 의조인조건을검증해야함. N/A 26
27 Cartesian Join -예제 > 실행계획 select a.empno, a.ename, b.dname from emp a, dept b order by b.dname ; 조인조건이빠져있음 Id Operation Name Starts E-Rows A-Rows A-Time Buffers OMem 1Mem Used-Mem SORT ORDER BY :00: (0) 2 MERGE JOIN CARTESIAN :00: TABLE ACCESS FULL DEPT :00: BUFFER SORT :00: (0) 5 TABLE ACCESS FULL EMP :00: Id Operation Name Starts E-Rows A-Rows A-Time Buffers OMem 1Mem Used-Mem SORT ORDER BY :00: (0) 2 NESTED LOOPS :00: TABLE ACCESS FULL DEPT :00: TABLE ACCESS FULL EMP :00: 실행계획상에서 Merge Join 일때만 Cartesian 이라는실행계획이보임 27
28 Sub Query > 발생조건 > 특징 > 적용 SELECT 한결과를조건비교 (>, =, <, IN, ANY, ALL, Exists) 에사용하거나 UPDATE, INSERT, DELETE에사용할때사용되는 Query를이르는말 서브쿼리종류에는 row 기준으로비교할경우 Single Row, Multi Row 가있음 서브쿼리종류에는 column 기준으로비교할경우 Single column, Multi column 가있음 Non Corelate 서브쿼리 : ( 서브쿼리내에서브쿼리와메인쿼리의조인절이없음 ) Corelate 서브쿼리 : ( 서브쿼리내에서브쿼리와메인쿼리의조인절이있음 ) 서브쿼리가조건의비교문으로사용될때연산자가 = 인경우서브쿼리에서나오는결과행의수가 1보다클수없고, Single Row 서브쿼리라함 연산자가 IN, ANY, ALL, EXISTS 등이사용되면 Multi Row 서브쿼리가능 Single Row 서브쿼리는특정한하나의값을메인쿼리에제공하고자할때적용 in 대신에 = 기호를사용해도됨 Multi Column 서브쿼리는보통 Primary Key 컬럼이두개이상인경우에 KEY 값을한꺼번에묶어서비교하기위해자주사용 제공자로사용할건지확인자로사용할건지확인하는습관을들여야함. 28
29 Sub Query(In) - 예제 > 실행계획 select deptno, empno, ename, job from emp where deptno in (select deptno from dept where loc in ('CHICAGO','DALLAS' )) ; Id Operation Name Starts E-Rows A-Rows A-Time Buffers TABLE ACCESS BY INDEX ROWID EMP :00: NESTED LOOPS :00: INLIST ITERATOR :00: TABLE ACCESS BY INDEX ROWID DEPT :00: * 5 INDEX RANGE SCAN DEPT_IDX :00: * 6 INDEX RANGE SCAN IX_EMP_N :00: Predicate Information (identified by operation id): access(("loc"='chicago' CHICAGO OR "LOC"='DALLAS')) 6 - access("deptno"="deptno") 29
30 Sub Query(=) - 예제 > 실행계획 sselect deptno, empno, ename, job from emp where deptno = (select deptno from dept where loc in ('CHICAGO' )) ; Id Operation Name Starts E-Rows A-Rows A-Time Buffers Reads TABLE ACCESS BY INDEX ROWID EMP :00: * 2 INDEX RANGE SCAN IX_EMP_N :00: TABLE ACCESS BY INDEX ROWID DEPT :00: * 4 INDEX RANGE SCAN DEPT_IDX :00: Predicate Information (identified by operation id): access("deptno"=) 4 - access("loc"='chicago') 30
31 Sub Query(Any) - 예제 > 실행계획 서브쿼리의결과값중하나의값만만족하여도결과값을리턴 select empno, ename, job, sal from emp where sal > any (select sal from emp where job = 'MANAGER ) ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem MERGE JOIN SEMI :00: SORT JOIN :00: (0) 3 TABLE ACCESS BY INDEX ROWID EMP :00: INDEX FULL SCAN IX_EMP_N :00: * 5 SORT UNIQUE :00: (0) 6 TABLE ACCESS BY INDEX ROWID EMP :00: * 7 INDEX RANGE SCAN IX_EMP_N :00: Predicate Information (identified by operation id): access(internal_function("sal")>internal_function("sal")) filter(internal_function("sal")>internal_function("sal")) ( ( )) 7 - access("job"='manager') 31
32 Sub Query(All) - 예제 > 실행계획 서브쿼리의결과값을모두만족되어야결과값을리턴 select empno, ename, job, sal from emp where sal > all (select sal from emp where job = 'MANAGER ) ; Id Operation Name Starts A-Rows A-Time Buffers * 1 FILTER :00: TABLE ACCESS FULL EMP :00: * 3 TABLE ACCESS BY INDEX ROWID EMP :00: * 4 INDEX RANGE SCAN IX_EMP_N :00: Predicate Information (identified by operation id): filter( IS NULL) 3 - filter(lnnvl("sal"<:b1)) 4 - access("job"='manager') 32
33 Sub Query(Exists) - 예제 > 실행계획 서브쿼리의데이터가존재하는가의여부를따져존재하는값들만결과로리턴 select b.deptno, b.dname from dept b where exists (select 1 from emp a where a.deptno = b.deptno) order by b.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem SORT ORDER BY :00: (0) 2 NESTED LOOPS SEMI :00: TABLE ACCESS FULL DEPT :00: * 4 INDEX RANGE SCAN IX_EMP_N :00: Predicate Information (identified by operation id): access("a"."deptno"=to =TO_NUMBER( NUMBER("B" B."DEPTNO")) 33
34 Sub Query(Sub Query Factoring) - 예제 > 실행계획 with 절을사용하여생성한복잡한쿼리문을임시테이블이실제로저장해두었다가거의테이블과동일하게사용할수있는기능 with x as (select /*+ materialize */ * from emp), y as (select /*+ materialize */ * from dept) select x.empno, x.ename, y.dname from x, y where x.deptno = y.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem TEMP TABLE TRANSFORMATION :00: LOAD AS SELECT :00: K (0) 3 TABLE ACCESS FULL EMP :00: LOAD AS SELECT :00: K (0) 5 TABLE ACCESS FULL DEPT :00: * 6 HASH JOIN :00: K (0) 7 VIEW :00: TABLE ACCESS FULL SYS_TEMP_0FD9FC965_61A :00: VIEW :00: TABLE ACCESS FULL SYS_TEMP_0FD9FC964_61A :00: Predicate Information (identified by operation id): access("x"."deptno"=to_number("y"."deptno")) 34
35 Semi/Anti Join > 발생조건 > 특징 > 적용 > Hint Sub Query IN, EXISTS 사용시 SEMI 조인발생 NOT IN, NOT EXISTS 사용시 ANTI 조인발생. Sub Query 를 Join 으로바꾸는방식임 일반적인 Join 과매우유사하나메인쿼리는서브쿼리의속성사용불가 Nested Loop, Sort Merge, Hash Join 모두사용가능 Semi Join 은 Exists Subquery 사용시 Filter 와같이첫번째만족하는조건을만나면즉시리턴함. Anti Join 은일반 join 과달리값이동일하지않은 row 를탐색함. Sub Query 사용시 Optimizer 가 Semi Join 및 Anti Join 을적용함. Sub Query 상에 use_nl, use_merge, use_hash 사용 35
36 Semi Join(Nested Loop Join) -예제 > 실행계획 select b.deptno, b.dname from dept b where exists ( select 1 from emp a where a.deptno = b.deptno ) order by b.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem SORT ORDER BY :00: (0) 2 NESTED LOOPS SEMI :00: TABLE ACCESS FULL DEPT :00: * 4 INDEX RANGE SCAN IX_EMP_N :00:
37 Semi Join(Sort Merge Join) -예제 > 실행계획 select a.empno, a.ename, a.deptno from emp a where exists ( select 1 from dept b where a.deptno = b.deptno ) order by a.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem MERGE JOIN SEMI :00: TABLE ACCESS BY INDEX ROWID EMP :00: INDEX FULL SCAN IX_EMP_N :00: * 4 SORT UNIQUE :00: (0) 5 TABLE ACCESS FULL DEPT :00:
38 Semi Join(Hash Join) -예제 > 실행계획 select b.deptno, b.dname from dept b where exists ( select /*+ use_hash(a) */ 1 from emp a where a.deptno = b.deptno ) order by b.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem SORT ORDER BY :00: (0) * 2 HASH JOIN SEMI :00: K (0) 3 TABLE ACCESS FULL DEPT :00: INDEX FULL SCAN IX_EMP_N :00:
39 Hash Join Right (Semi/Anti) Join > 발생조건 > 특징 > 적용 Semi 조인에서서브쿼리가소량일경우 Hash 조인과함께서브쿼리가먼저 Driving 되는조인방식 Semi 조인은항상메인쿼리가수행된후서브쿼리의데이터가존재하는지를체크하는방식 따라서서브쿼리는항상후행집합이될수밖에없음. 하지만 10g 부터 Plan 상에 Hash Join Right (Semi/Anti/Outer) 이나오게되면서브쿼리가 Driving 집합이됨. 서브쿼리집합이메인쿼리의집합보다적을때 10g 버전부터사용가능 39
40 Hash Join Right Semi - Concept >Full Hash Right Semi Full select a.empno, a.sal from big_emp a where exists (select /*+ use_hash(b) h(b) */ DEPT b.deptno from dept b where b.deptno = a.deptno ) ; HASH TABLE BIG_EMP 서브쿼리집합은 BUILD INPUT 이될수없으나 10g 부터 HASH JOIN RIGHT(SEMI/ANTI) JOIN 을이용하면가능함 BUILD INPUT TABLE PROBE TABLE 40
41 Hash Join Right Semi -예제 > 실행계획 select a.empno, a.sal from big_emp a where exists (select b.deptno from dept b where b.deptno = a.deptno ) ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem * 1 HASH JOIN RIGHT SEMI :00: K (0) 2 TABLE ACCESS FULL DEPT :00: TABLE ACCESS FULL BIG_EMP :00: Predicate Information (identified by operation id): access("a"."deptno"=to_number("b"."deptno")) 41
42 Anti Join(Nested Loop Join) -예제 > 실행계획 select b.deptno, b.dname from dept b where not exists ( select 1 from emp a where a.deptno = b.deptno ) order by b.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem SORT ORDER BY :00: (0) 2 NESTED LOOPS ANTI :00: TABLE ACCESS FULL DEPT :00: * 4 INDEX RANGE SCAN IX_EMP_N :00:
43 Anti Join(Sort Merge Join) -예제 > 실행계획 select a.empno, a.ename, a.deptno from emp a where not exists ( select /*+ use_merge(b) */ 1 from dept b where a.deptno = b.deptno ) order by a.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem MERGE JOIN ANTI :00: SORT JOIN :00: (0) 3 TABLE ACCESS FULL EMP :00: * 4 SORT UNIQUE :00: (0) 5 TABLE ACCESS FULL DEPT :00:
44 Anti Join(Hash Join) -예제 > 실행계획 select b.deptno, b.dname from dept b where not exists ( select /*+ use_hash(a) h( */ 1 from emp a where a.deptno = b.deptno ) order by b.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem SORT ORDER BY :00: (0) * 2 HASH JOIN ANTI :00: K (0) 3 TABLE ACCESS FULL DEPT :00: INDEX FULL SCAN IX_EMP_N :00:
45 Hash Join Right Anti - Concept >Full Hash Right Anti Full select a.empno, a.sal from big_emp a where not exists (select /*+ use_hash(b) h(b) */ DEPT b.deptno from dept b where b.deptno = a.deptno ) ; HASH TABLE BIG_EMP 서브쿼리집합은 BUILD INPUT이될수없으나 10g부터 HASH JOIN RIGHT(SEMI/ANTI) JOIN을이용하면가능함 전체건을 Scan 한다음 DEPT 테이블에없는건만조인됨 BUILD INPUT TABLE PROBE TABLE 45
46 Hash Join Right Anti -예제 > 실행계획 select a.empno, a.sal ; from big_emp a where not exists (select b.deptno from dept b where b.deptno = a.deptno ) Id Operation Name Starts A-Rows A-Time Buffers Used-Mem * 1 HASH JOIN RIGHT ANTI :00: K (0) 2 TABLE ACCESS FULL DEPT :00: TABLE ACCESS FULL BIG_EMP :00: Predicate Information (identified by operation id): access("a"."deptno"=to_number("b"."deptno")) 46
47 Index Join > 발생조건 > 특징 > 적용 테이블액세스없이하나이상의인덱스들을결합하여쿼리를수행 사용된모든컬럼이어떤인덱스에라도존재 비교연산자가 Equal( = ) 이아니어도인덱스조인에참여가능 반드시인덱스의선두칼럼이아니어도인덱스조인에참여가능 조건절을기준으로인덱스조인을결정 실행계획상에서는 Hash Join 으로수행되는것으로보임 검색에유리한인덱스가없을때인덱스머지를통해검색범위를줄이고자할때 > Hint /*+ index_join( 테이블명또는테이블별칭 ) */ 47
48 Index Join - 예제 > 실행계획 인덱스 Lay out 1 : JOB 인덱스 Lay out 2 : mgr + empno select /*+ index_join(emp) */ empno, job, mgr from emp where job = 'CLERK' and mgr = 7788 ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem * 1 VIEW index$_join$_ :00: * 2 HASH JOIN :00: K (0) * 3 INDEX RANGE SCAN IX_EMP_N :00: * 4 INDEX RANGE SCAN IX_EMP_N :00: Predicate Information (identified by operation id): filter(("mgr"='7788' AND "JOB"='CLERK')) 2 - access(rowid=rowid) 3 - access("job"='clerk') 4 - access("mgr"='7788') 48
49 Outer Join > 특징 > 적용 Nested Loop, Sort Merge, Hash, Full Outer Join 형태 Nested Loop, Sort Merge, Hash Join 은앞장정리부분참조 Full Outer Join은첫번째집합을기준으로 Outer Join을하고, 두번째집합을기준으로 Anti 조인을한다음 union all Operation 을적용한다. 아우터조인되어있는집합에대응되는로우가없더라도기준집합의모든로우들을리턴하는조인 조인및 where 조건컬럼뒤에 (+) 기호로발생 49
50 Outer Join(Nested Loop) - 예제 > 실행계획 select a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno(+) ; Id Operation Name Starts E-Rows A-Rows A-Time Buffers NESTED LOOPS OUTER :00: TABLE ACCESS FULL EMP :00: * 3 TABLE ACCESS FULL DEPT :00: Predicate Information (identified d by operation id): filter("a"."deptno"=to_number("b"."deptno")) ( 50
51 Outer Join(Sort Merge) - 예제 > 실행계획 select /*+ use_merge(a b) */ a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno(+) ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem MERGE JOIN OUTER :00: SORT JOIN :00: (0) 3 TABLE ACCESS FULL EMP :00: * 4 SORT JOIN :00: (0) 5 TABLE ACCESS FULL DEPT :00: Predicate Information (identified by operation id): access("a"."deptno"=to_number("b"."deptno")) filter("a"."deptno"=to_number("b"."deptno")) 51
52 Outer Join(Hash) - 예제 > 실행계획 select /*+ use_hash(a h( b) */ a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno(+) ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem * 1 HASH JOIN OUTER :00: K (0) 2 TABLE ACCESS FULL EMP :00: TABLE ACCESS FULL DEPT :00: Predicate Information (identified d by operation id): access("a"."deptno"=to_number("b"."deptno")) ( 52
53 Outer Join(Full Outer) - 예제 > 실행계획 select a.empno, a.ename, b.dname from emp a full outer join dept b on (a.deptno= b.deptno) ; Id Operation Name Starts A-Rows A-Time Buffers VIEW :00: UNION-ALL :00: NESTED LOOPS OUTER :00: TABLE ACCESS FULL EMP :00: * 5 TABLE ACCESS FULL DEPT :00: NESTED LOOPS ANTI :00: TABLE ACCESS FULL DEPT :00: * 8 INDEX RANGE SCAN IX_EMP_N :00: Predicate Information (identified by operation id): filter("a"."deptno"=to_number("b"."deptno")) 8 - access("a"."deptno"=to =TO_NUMBER( NUMBER("B" B."DEPTNO")) 53
54 Outer Join(Full Outer) - 예제 > Query Transformation select a.empno, a.ename, b.dname from emp a full outer join dept b on (a.deptno= b.deptno) ; select empno, ename, dname from ( select a.empno, a.ename, b.dname from emp a, dept b where a.deptno = b.deptno(+) union all select null, null, a.dname from dept a where not exists (select 1 ) ; from emp b where b.deptno = a.deptno ) 54 Query Transformation 실행계획이동일함 Id Operation Name VIEW 2 UNION-ALL 3 NESTED LOOPS OUTER 4 TABLE ACCESS FULL EMP * 5 TABLE ACCESS FULL DEPT 6 NESTED LOOPS ANTI 7 TABLE ACCESS FULL DEPT * 8 INDEX RANGE SCAN IX_EMP_N
55 Hash Join Right Outer > 발생조건 > 특징 > 적용 Outer Join 이 Hash Join으로풀리는경우 (+) 기호가붙은칼럼의테이블이아주작은테이블일경우 Driving 으로수행됨 Outer Join 시 9i 버전까지는무조건 (+) 기호가붙지않은칼럼의테이블이 Driving 되었음 10g 부터 (+) 기호가붙어있더라도소량의테이블이라면 Driving 될수있게됨 Hash Join Right (Semi/Anti) 와같은방식임 10g 버전부터사용가능 > Hint /*+ use_hash( 테이블명혹은 alias) */ 55
56 Hash Join Right Outer -예제 >Full Hash Right Outer Full select /*+ use_hash(a b) */ a.dname, b.empno, ename from dept a, big_emp b where a.deptno(+) = b.deptno ; DEPT HASH TABLE BIG_EMP (+) 기호가붙은쪽테이블은 BUILD INPUT 이될수없으나 10g 부터 HASH JOIN RIGHT OUTER JOIN 을이용하면가능함 BUILD INPUT TABLE PROBE TABLE 56
57 Hash Join Right Outer -예제 > 실행계획 select /*+ use_hash(a b) */ a.dname, b.empno, ename from dept a, big_emp b where a.deptno(+) = b.deptno ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem * 1 HASH JOIN RIGHT OUTER :00: K (0) 2 TABLE ACCESS FULL DEPT :00: TABLE ACCESS FULL BIG_EMP :00: Predicate Information (identified by operation id): access("a"."deptno"="b"."deptno") 57
58 Partition Outer Join > 개념 년별또는월별집계데이터를나타낼때특정년혹은특정월에데이터가없더라도생성하여나타냄. 주로 OLAP 에서많이활용함 요구사항 테이블구조 Select yymm From Year_month Where yymm = 2002 Select deptno, yymm, sale_amt from dept_sale_history 58
59 Partition Outer Join -예제 > 기존방식 SELECT e.deptno, m.yymm, NVL(e.sale_amt,0) amt,0) FROM year_month m LEFT OUTER JOIN dept_sale_history e ON (m.yymm = e.yymm AND e.deptno = 10) WHERE m.yymm like '2002% Union all SELECT e.deptno, m.yymm, NVL(e.sale_amt,0) FROM year_month m LEFT OUTER JOIN dept_sale_history e ON (m.yymm = e.yymm AND e.deptno = 20) WHERE m.yymm like '2002% ; > 해결방법 SELECT e.deptno, m.yymm, NVL(e.sale_amt,0) FROM year_month m LEFT OUTER JOIN dept_sale_history e PARTITION BY (e.deptno) ON (m.yymm = e.yymm ) WHERE m.yymm like '2002% ; 59
60 Partition Outer Join -예제 > 기존방식 SELECT e.deptno, m.yymm, NVL(e.sale_amt,0) amt,0) FROM year_month m LEFT OUTER JOIN dept_sale_history e ON (m.yymm = e.yymm AND e.deptno = 10) WHERE m.yymm like '2002% Union all SELECT e.deptno, m.yymm, NVL(e.sale_amt,0) FROM year_month m LEFT OUTER JOIN dept_sale_history e ON (m.yymm = e.yymm AND e.deptno = 20) WHERE m.yymm like '2002% ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem UNION-ALL :00: * 2 HASH JOIN OUTER :00: K (0) * 3 TABLE ACCESS FULL YEAR_MONTH :00: * 4 TABLE ACCESS FULL DEPT_SALE_HISTORY :00: * 5 HASH JOIN OUTER :00: K (0) * 6 TABLE ACCESS FULL YEAR_MONTH :00: * 7 TABLE ACCESS FULL DEPT_SALE_HISTORY :00: Predicate Information (identified by operation id): access("m"."yymm"="e"."yymm") 3 - filter("m"."yymm" LIKE '2002%') 4 - filter(("e"."deptno"=10 AND "E"."YYMM" LIKE '2002%')) 5 - access("m"."yymm"="e"."yymm") 6 - filter("m"."yymm" (""" " LIKE '2002%')') 7 - filter(("e"."deptno"=20 AND "E"."YYMM" LIKE '2002%')) 60
61 Partition Outer Join -예제 > 해결방법 SELECT e.deptno, m.yymm, mm NVL(e.sale_amt,0) amt FROM year_month m LEFT OUTER JOIN dept_sale_history e PARTITION BY (e.deptno) ON (m.yymm = e.yymm ) WHERE m.yymm like '2002% ; Id Operation Name Starts A-Rows A-Time Buffers Used-Mem VIEW :00: MERGE JOIN PARTITION OUTER :00: SORT JOIN :00: (0) * 4 TABLE ACCESS FULL YEAR_MONTH :00: * 5 SORT PARTITION JOIN :00: (0) 6 TABLE ACCESS FULL DEPT_SALE_HISTORY :00: Predicate Information (identified by operation id): filter("m"."yymm" LIKE '2002%') 5 - access("m"."yymm"="e"."yymm") filter("m"."yymm"="e"."yymm") 61
62 Star Query Transformation > 개념 > 제약사항 > Hint 소량의데이터를가진여러개의디맨젼테이블과팩트테이블의개별비트맵인덱스를이용하여처리범위를줄이는조인방식 B-TREE 인덱스와는다르게독립적인 BIT MAP INDEX 로 LIKE, BETWEEN 등범위검색에서도 BIT MAP 인덱스머지가일어남. 내부적으로옵티마이져가질의를변형하여실행계획을생성함. FROM 절에여러 FACT 테이블이조인된것을 WHERE 절에서브쿼리조인으로바꿈. 하나의팩트테이블에최소한 2 개이상의디맨션테이블이있어야한다. 팩트테이블의외부키에는반드시비트맵인덱스가존재해야한다. 팩트테이블에반드시통계정보가생성되어있어야한다. 파라메터 (STAR_TRANSFORMATION_ENABLED) 가 TRUE 이어야함. 바인드변수를사용하면안된다.( 반드시상수인경우에발생됨 ) /*+ STAR_TRANSFORMATION */ 62
63 Star Query Transformation -예제 > STAR_TRANSFORMATION 예제 create bitmap index idx_sales_n01 _ on sales(sale_date); create bitmap index idx_sales_n02 on sales(cust_id); alter session set star_transformation_enabled _ = true; Select /*+ STAR_TRANSFORMATION */ A.QUTER, B,STATE,, SUM(C.AMOUNT) FROM CARENDAR A, CUSTOMER B, SALES C WHERE A.SALE_DATE = C.SALE_DATE AND B.CUST_ ID = C.CUST_ ID AND B.STATE = CA AND A.QUTER = Query Transformation SELECT A.QUTER, B,STATE, SUM(C.AMOUNT) FROM CARENDAR A, CUSTOMER B, SALES C WHERE SALES_DATE IN (SELECT SALES_DATE FROM CARENDAR WHERE QUTER = ) AND CUST_ID IN (SELECT CUST_ID FROM CUSTOMER WHERE STATE = CA ) 63
64 Oracle Data Join Method- 정리 Nested Loop Join Sort Merge Join Hash Join Cartesian Join ( 혹은 Cross Join) Sub Query (=,In, Any, All, Exists, Subquery Factoring) Semi Join (Nested Loop, Sort Merge, Hash, Hash Join Right) Anti Join (Nested Loop, Sort Merge, Hash, Hash Join Right) Index Join Outer Join (Full,Nested Loop, Sort Merge, Hash, Hash Join Right) Partition Outer Join Star Query Transformation 64
65 Special Key Note Oracle Data Join Method 감사합니다. 65
Microsoft PowerPoint - Oracle Data Access Pattern.ppt
Special Key Note Oracle Data Access Pattern ( 주 ) 오픈메이드컨설팅 오동규수석컨설턴트 1 What is Data Access Pattern? > 데이터를 I/O 하는방식 Index Scan Full Table Scan Rowid 2 Why is The Pattern Important? >SQL 의성능을좌지우지함. >SQL
More informationJerry Held
,, - - - : DELETE : ROW (ROWID) row ROWID : I/O Full Table Scan I/O Index Scan ROWID I/O Fast Full Index Scan scan scan scan I/O scan scan Unique, nonunique. (Concatenated Index) B* Tree Bitmap Reverse
More information,, - - - : DELETE : ROW (ROWID) row ROWID : I/O Full Table Scan scan I/O scan Index Scan ROWID scan I/O Fast Full Index Scan scan scan I/O Unique, nonunique. (Concatenated Index) B* Tree Bitmap Reverse
More informationSQL Tuning Business Development DB
SQL Tuning Business Development DB Oracle Optimizer 4.1 Optimizer SQL SQL.. SQL Optimizer :.. Rule-Based Optimization (RBO), Cost-Based Optimization (CBO) SQL Optimizer SQL Query Parser Dictionary Rule-Based
More information歯sql_tuning2
SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1
More information다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 4 장 JOIN 을배웁니다 1 2 1. Cartesian Product ( 카티션곱, CROSS Join) - Oracle Join 문법 SQL> SELECT e.ename, d.dname 2 FROM emp e, dept d ; - ANSI Join 문법 SQL> SELECT e.ename, d.dname
More information단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT
Study Room Doc.03 : SQLD 예상문제 ( 단답형 ) 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 26,25,24,21 회기출문제를바탕으로작성 작성자 : 월야루 도움 : 빙수민외카페댓글 2017-11-30 단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL
More informationMicrosoft Word - SQL튜닝_실습교재_.doc
* 실습환경 * 1. 오라클데이터베이스의튜닝실습을하기위해서는기본적인테이블과데이터가필요합니다. 다음과같은절차에의해환경설정을하십시오. 1) 강사가제공하는 Export 된파일 (scott.dmp) 을자신의 ORACLE 경로에저장하십시오. [C: ] cd C: ORACLE ORA92 BIN [C: ] dir scott.dmp scott.dmp 2) SYSTEM 사용자로접속하여
More information객관식 1. 아래의쿼리를만족하는결과를가장잘설명한것은? SELECT A.* FROM HR.EMPLOYEES A, HR.EMPLOYEES B WHERE 1=1 AND A.MANAGER_ID = B.EMPLOYEE_ID AND B.SALARY >= ANY A.SALARY;
Study Room Doc.02 : SQLD 예상문제 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 21 회기출문제를바탕으로작성 작성자 : 월야루 2016-09-04 객관식 1. 아래의쿼리를만족하는결과를가장잘설명한것은? SELECT A.* FROM HR.EMPLOYEES A, HR.EMPLOYEES
More information13주-14주proc.PDF
12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float
More information다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 9 장인덱스를배웁니다 1 1. 인덱스란무엇인가? 2 - ROWID ( 주소 ) 조회하기 SCOTT>SELECT ROWID, empno, ename 2 FROM emp 3 WHERE empno=7902 ; ROWID EMPNO ENAME --------------------------------- ----------
More information@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a
1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL
More information결과보고서
오픈 소스 데이터베이스 시스템을 이용한 플래시 메모리 SSD 기반의 질의 최적화 기법 연구 A Study on Flash-based Query Optimizing in PostgreSQL 황다솜 1) ㆍ안미진 1) ㆍ이혜지 1) ㆍ김지민 2) ㆍ정세희 2) ㆍ이임경 3) ㆍ차시언 3) 성균관대학교 정보통신대학 1) ㆍ시흥매화고등학교 2) ㆍ용화여자고등학교 3)
More informationWINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역
WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,
More informationePapyrus PDF Document
Goodus 기술노트 [38 회 ] Author 윤병길, 이은정 Creation Date 2009-02-27 Last Updated Version 1.0 Copyright(C) 2004 Goodus Inc. All Rights Reserved Version 변경일자변경자 ( 작성자 ) 주요내용 1 2009-02-27 윤병길, 이은정문서최초작성 Contents
More information0. Intro ORACLE 社 Oracle, My SQL, Exadata IBM 社 DB2, Informix SAP 社 ASE, IQ, ASA Microsoft 社 SQL Server Teradata 社 Teradata 공통점은? Altibase 社 Altibase
목 차 SQL 기본과활용 2010. 09. 29 삼성 S D S 정성철수석 ( D A / T A ) 1. RDBMS 2. SQL 3. SELECT 4. INDEX 5. MODELING 6. JOIN 7. DRIVING TABLE 8. SUBQUERY 9. OPTIMIZER 10. 과목2. ERD 11. 과목2. 목차 0. Intro ORACLE 社 Oracle,
More information목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE
ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....
More informationRDB개요.ppt
1 2 3 < > 1 SQL SQL 2 SQL 3 column DEPT DEPT# DNAME BUDGET D1 D2 D3 Marketing Development Research 10M 12M 5M tuple EMP EMP# ENAME DEPT# SALARY D1 40 D1 45 E1 E2 E3 Lopez Cheng Finzi D2 30 E4 Satio D2
More informationResult Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER
Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUERY 을실행하게된다면 BLOCK I/O 가많이발생하게된다. 이런이유로 QUERY 의성능은좋지못할것이다.
More informationSQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 )
SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 ) 이많기때문에, 실행계획생성시 SQL 의 Cost 를잘못계산하여최적의실행계획을세우지못하는경우가발생한다.
More information´ÙÁß Row °á°ú¸¦ ´ÜÀÏÇàÀ¸·Î Äĸ¶·Î ºÐ¸®ÇØ Ãâ·ÂÇÏ´Â ¹æ¹ý
5 중 1 2007-06-12 오후 5:52 Home Login Register SQL Query SQL Tuning Oracle Administration Tools References Boards SoQooL? 쏘쿨 SoQooL) 이란? Q&A Tips Lectures Function Lectures Oracle Spatial Tips Scripts SQL
More informationBind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터
Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL
More informationInsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins
Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.
More informationFlashBackt.ppt
1. Flashback 목적 Flashback 이란? 사용자실수에의한손상된데이터를 Database 의크기와상관없이복구를할수있는기능이다. 이 Flashback 기능은일반적인복구에서우려되는데이터베이스의크기를걱정하지않아도된다. 보통의사용자실수는커다란시스템장애가수반되며, 이를복구하기위해서는많은자원과시간이필요하다. 하지만 9i 에서지원되느 flashback query
More informationMS-SQL SERVER 대비 기능
Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT
More informationPowerPoint 프레젠테이션
Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING
More information예제소스는 에서다운로드하여사용하거나툴바의 [ 새쿼리 ]( 에아래의소스를입력한다. 입력후에는앞으로실습을위해서저장해둔다. -- 실습에필요한 Madang DB 와 COMPANY DB 를모두생성한다. -- 데이터베이스생성 US
A.4 마당서점데이터베이스생성 1 마당서점의데이터베이스 Madang을생성하기위해윈도우의 [ 시작 ]-[ 모든프로그램 ]- [Microsoft SQL Server 2012]-[SQL Server Management Studio] 를선택한다. 인증을 [Windows 인증 ] 으로선택한후 < 연결 > 을클릭한다. 2 1 3 서버이름 MADANG_DB\SQLEXPRESS
More informationI T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r
I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r -------------------------------------------------------------------- -- 1. : ts_cre_bonsa.sql -- 2. :
More informationuntitled
(shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,
More information5장 SQL 언어 Part II
5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26 데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26 SELECT
More information슬라이드 1
{ Query Optimizing } 김정선 DB 사업부수석컨설턴트필라넷 (Feel@NET) Microsoft SQL Server MVP 김정선 (Jungsun Kim) Email: jskim@feelanet.com Blog: http://blog.naver.com/visualdb ( 현재소속 ) 필라넷, DB 사업부수석컨설턴트 SQL Server Academy/
More informationDB 성능고도화핵심원리 비투엔컨설팅 수석컨설턴트 조시형
DB 성능고도화핵심원리 비투엔컨설팅 수석컨설턴트 조시형 원리를알아야답이보인다!! SQL 개발자 (Developer) 데이터모델을통해업무를이해하고, SQL 을정확히구사하는능력 DB 성능고도화전문가양성 SQL 전문가 (Professional) 성능을고려한고급 SQL 작성능력 DB 성능고도화핵심원리실습문제 declare l_ 수납금액 number; begin for
More information객관식 1번풀이사전지식 * 비교연산자 ANY ( 서브쿼리 ) - 서브쿼리의결과에존재하는어느하나의값이라도만족하는조건을의미. 비교연산자로 " > " 를사용했다면메인쿼리는서브쿼리의값들중어떤값이라도만족하면되므로서브쿼리의결과의최소값보다큰모든건이조건을만족 - SOME 과동일 1번
Study Room Doc.02 : SQLD 예상문제 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 21 회기출문제를바탕으로작성 작성자 : 월야루 2016-09-04 객관식 1번풀이사전지식 * 비교연산자 ANY ( 서브쿼리 ) - 서브쿼리의결과에존재하는어느하나의값이라도만족하는조건을의미.
More information다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양핚예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 10 장 view 를배웁니다 1 - View 란가상의테이블이다! 2 1. 단순 View (Simple View) SCOTT>CONN / AS SYSDBA; SYS>GRANT CREATE VIEW TO scott ; CREATE [OR REPLACE] [ FORCE NOFORCE] VIEW view
More information강의 개요
정규화와 SELECT (II) 웹데이터베이스 학과 학생 과목 학과 지도교수 학과학번성명 수강과목 담당교수 A 김수정 A 0001 고길동 성질이론 김수정 B 허영만 A 0002 둘리 한식의멋 허영만 C 강풀 B 0003 희동이 심리학의이해 강풀 과목 _ 성적 학번 수강과목 성적 0001 성질이론 A 0001 한식의멋 C 0002 성질이론 A 0002 한식의멋
More informationSQL 실행계획을 이용한 패턴튜닝_ _최종.ppt [호환 모드]
SQL 과실행계획을이용한튜팅 엔코아컨설팅 컨설팅사업본부본부장 김동훈이사 CONTENTS SQL 의개념실행계획패턴실행계획의최적화 SQL 의개념 - 수행단계 SQL 은데이터처리방법을기술한것이아니라단지필요한데이터를요구한것임 SQL Parser Parsed Query Query Transfrmer Transfrmed Query Estimatr Plan Generatr
More informationDBMS & SQL Server Installation Database Laboratory
DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.
More informationSQL Tuning Business Development DB SQL - -SQL -SQL
0:00-0:50 SQL :00-2:00 2:00-3:30 3:30-4:20 SQL 4:30-5:20 5:30-7:20 SQL Tuning Business Development DB SQL - -SQL -SQL SQL () H/W( ) CPU, Memory, Network ( ) SQL I/O ( ) SQL (2) ( ) ( ) SQL SQL SQL SQL
More information3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT
3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT NOT NULL, FOREIGN KEY (parent_id) REFERENCES Comments(comment_id)
More informationMicrosoft PowerPoint - 10Àå.ppt
10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어
More informationORACLE-SQL
ORACLE-SQL SELECT 문 2014-04-12 Blog.ksh123jjang.me 내용 SELECT문이란?... 2 SLELECT문사용하기... 3 모든열선택... 4 특정열검색... 5 SQL문작성방법... 6 열머리글기본값... 7 산술식... 8 NULL... 9 열 alias... 10 연결연산자... 11 대체인용연산자 (q)... 12 중복행제거...
More informationOracle 10g SQL , PL/SQL 튜닝
Special Key Note Oracle 9i &10g New features SQL & PL/SQL & DBMS Tuning ( 주 ) 오픈메이드컨설팅 오동규책임컨설턴트 1 목차 PART 1 개요 DBMS 시스템튜닝의목표 DBMS 시스템튜닝의주체 DBMS 시스템튜닝의순서 DBMS 시스템튜닝을위한기본사항 PART 2 9i & 10g New features
More informationORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들
ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들이나타나고있다. 이러한문제점들을해결하고자 ORACLE 에서는 EXADATA 라는시스템을통해스토리지공간부족현상과데이터처리성능을향상시키고자하였다.
More informationORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O
Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration
More informationPowerPoint 프레젠테이션
Spider For MySQL 실전사용기 피망플러스유닛최윤묵 Spider For MySQL Data Sharding By Spider Storage Engine http://spiderformysql.com/ 성능 8 만 / 분 X 4 대 32 만 / 분 많은 DB 중에왜 spider 를? Source: 클라우드컴퓨팅구 선택의기로 Consistency RDBMS
More informationNLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해,
NLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해, 사용자들이큰혼란을겪기는경우도발생된다. 그 대표적인예로는 GROUP BY 가 SORT GROUP
More informationMicrosoft PowerPoint - 1_3_DBA_SQL_tuning
아주특별한 SQL 튜닝 씨퀄로 김정선 아주특별한 Level 400 100 개념및소개수준 200 중간수준 300 고급수준 400 전문가수준 선수지식불필요 100 에더하여기술적세부사항설명 200 에더하여능숙한사용경험, 아키텍처지식필요 SINCE 2002 SQL Server Specialist Member & Leading PASS Korea Member Microsoft
More informationOracle Database 10g: Self-Managing Database DB TSC
Oracle Database 10g: Self-Managing Database DB TSC Agenda Overview System Resource Application & SQL Storage Space Backup & Recovery ½ Cost ? 6% 12 % 6% 6% 55% : IOUG 2001 DBA Survey ? 6% & 12 % 6% 6%
More informationTECHNICAL WHITE PAPER Tibero Optimizer SQL Execution Plan October 2012
Tibero Optimizer SQL Execution Plan 목차 1. Introduction 2. Watching SQL Plan 2.1. SQL Plan 이란? 2.2. SQL Plan 확인하기 2.3. Understanding SQL Plan 3. Conclusion Optimizer 에의해만들어진 SQL 플랜을확인한는여러방법들을소개하고플랜에서보여주는정보의의미에대해알아본다.
More information歯PLSQL10.PDF
10 - SQL*Pl u s Pl / SQL - SQL*P lus 10-1 1 0.1 PL/ SQL SQL*Pl u s. SQL*P lus 10-2 1 0.2 S QL* Pl u s PL/ S QL SQL*Pl u s, Pl / SQL. - PL/ SQL (i npu t ), (s t or e ), (r un). - PL/ SQL s cr i pt,,. -
More information10.ppt
: SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL
More information초보자를 위한 분산 캐시 활용 전략
초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?
More information다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서짂수저 1 장. SELECT 문을이용하여 원하는데이터가져오기 1 - DESC 명령어로컬럼을확인하자! SCOTT>DESC emp ; Name Null? Type ------------------------ ------------------ -------------------- EMPNO NOT NULL NUMBER(4)
More information< 그림 1> Nested Loop Join - 이너테이블에인덱스가있을경우 < 그림 2> Nested Loop Join - 이너테이블에인덱스가없는경우 간은느리다. 즉첫번째로우를받을준비가되어있는단계까지를실행시간으로볼때실행시간은빠르나 Fetch 시간은느리다. NLJ는메모리
Oracle Optimizer 의원리이해및 SQL & 애플리케이션의튜닝 ( 하 ) 오라클튜닝기법의 100% 활용 글 최세훈 ( 한국오라클 DB Tech 팀 ) sehoon.choi@oracle.com 지난회에서는튜닝에들어가기위해먼저 Oracle Optimizer 의원리와특징에대해서설명했다. 이번회에서는조인메소드별특징과플랜보는법을이해하고, 실제오라클에서제공하는튜닝기법들을활용해보도록하자.
More information강의 개요
DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE
More informationMicrosoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc
특정 Column 통계정보갱신가이드 유니원아이앤씨 DB 사업부이대혁 2015 년 03 월 02 일 문서정보프로젝트명서브시스템명 버전 1.0 문서명 특정 Column 통계정보갱신가이드 작성일 2015-03-02 작성자 DB사업부이대혁사원 최종수정일 2015-03-02 문서번호 UNIONE-201503021500-LDH 재개정이력 일자내용수정인버전 문서배포이력
More informationETL_project_best_practice1.ppt
ETL ETL Data,., Data Warehouse DataData Warehouse ETL tool/system: ETL, ETL Process Data Warehouse Platform Database, Access Method Data Source Data Operational Data Near Real-Time Data Modeling Refresh/Replication
More information빅데이터 분산 컴퓨팅 -6
Hive Data Management Join in Hive 빅데이터분산컴퓨팅박영택 Hive 에서의 Joins Hive 에서서로다른데이터간의 Join 은빈번하게발생 Hive 에서지원하는 Join 의종류 Inner joins Outer joins(left, right, and full) Cross joins( Hive 0.1 이상버전 ) Left semi joins
More informationSpring Boot/JDBC JdbcTemplate/CRUD 예제
Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.
More informationI. - II. DW ETT Best Practice
IBM Business Intelligence Solution Seminar 2005 - IBM Business Consulting Service (cslee@kr.ibm.com) I. - II. DW ETT Best Practice (DW)., (EDW). Time 1980 ~1990 1995 2000 2005 * 1980 IBM Information Warehouse
More information제목 레이아웃
웹해킹이라고무시하는것들보소 2017.07.10 RUBIYA805[AT]GMAIL[DOT]COM SQL Injection 끝나지않은위협 2017.07.10 RUBIYA805[AT]GMAIL[DOT]COM Who am I 정도원 aka rubiya Penetration tester Web application bughuter Pwned 20+ wargame @kr_rubiya
More information개발자를 위한 오라클 SQL 튜닝
126 개발자를위한 오라클 SQL 튜닝 이경오지음 126 개발자를위한 오라클 SQL 튜닝 이경오지음 표지사진강수진이책의표지는강수진님이보내주신풍경사진을담았습니다. 리얼타임은독자의시선을담은풍경사진을책표지로보여주고자합니다. 사진보내기 ebookwriter@hanbit.co.kr 개발자를위한오라클 SQL 튜닝 초판발행 2016 년 2 월 16 일 지은이이경오 / 펴낸이김태헌펴낸곳한빛미디어
More informationPowerPoint Presentation
6 장 SQL (section 4-6) 목차 SECTION 01 SQL 의개요 1-1 SQL의역사 1-2 SQL의유형별종류 SECTION 02 데이터정의어 (DDL) 2-1 스키마 2-2 테이블생성 (CREATE TABLE) 2-3 테이블변경 (ALTER TABLE) 2-4 테이블제거 (DROP TABLE) 2-5 제약조건 SECTION 03 데이터조작어 (DML)
More informationMicrosoft PowerPoint - 27.pptx
이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)
More information빅데이터분산컴퓨팅-5-수정
Apache Hive 빅데이터분산컴퓨팅 박영택 Apache Hive 개요 Apache Hive 는 MapReduce 기반의 High-level abstraction HiveQL은 SQL-like 언어를사용 Hadoop 클러스터에서 MapReduce 잡을생성함 Facebook 에서데이터웨어하우스를위해개발되었음 현재는오픈소스인 Apache 프로젝트 Hive 유저를위한
More informationGROUPING SETS 등의새로운리포팅기능 - WINDOW FUNCTION 같은새로운개념의분석기능들 가. 일반집합연산자 현재사용하는 SQL 의많은기능이관계형데이터베이스의이론을수립한 E.F.Codd 박사의논문에언급이되어있다. 논문에언급된 8 가지관계형대수는다시각각 4
01. 표준조인 1. STANDARD SQL 개요 1970 년 : Dr. E.F.Codd 관계형 DBMS(Relational DB) 논문발표 1974 년 : IBM SQL 개발 1979 년 : Oracle 상용 DBMS 발표 1980 년 : Sybase SQL Server 발표 ( 이후 Sybase ASE 로개명 ) 1983 년 : IBM DB2 발표 1986
More informationQuery Process 단계처리내용 Parse 단계 Syntax, Security, Semantics의체크및Simple transformation 을수행한다 < 표 2>. Query Rewrite 단계서브질의와뷰의병합을수행하고, OR Expansion 작업을수행한다.
Oracle Optimizer 의원리이해및 SQL & 애플리케이션의튜닝 ( 상 ) 옵티마이저의원리와특징 글 최세훈 ( 한국오라클 Tech Sales Consulting 본부 DB Tech 팀 ) sehoon.choi@oracle.com 다수의데이타베이스튜닝과 SQL / 애플리케이션튜닝을통해튜닝의효과를확신하는필자가유익한튜닝정보를제공한다. 여기에서필자는 SQL
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationSQL초보에서Schema Object까지
SQL 초보에서 Schema Object 까지 교재샘플 5. 서브쿼리 (SUB QUERY)... 2 5.1 서브쿼리 (SUB QUERY) 개요... 3 5.2 복수행서브쿼리 (Multi-Row Sub Query)... 6 5.3 상관서브쿼리 (Correlated Sub Query)... 11 5.4 Scalar SubQuery... 15 5.5 인라인뷰 (IN_LINE
More informationUSER GUIDE
Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.
More informationMySQL-.. 1
MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition
More informationPostgreSQL 2 Uniersity of California at Berkeley ( ) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1
ERwin 과 PostgreSQL 연동하기 인하대학교지리정보공학과데이터베이스실습 PostgreSQL 2 http://www.postgresql.org/ Uniersity of California at Berkeley (1977-1985) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1996 년부터
More information목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate
ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition
More information대량의 DML 작업에대한성능개선방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 대량의데이터를변경해야하는작업은그자체만으로도큰부담으로다가온다. 하지만변경작업자체에만국한되는것이아니라변경되기전데이터와변경이후데이터를각각저장관리해야하는메커니즘이라면성능을개선해야하는입장에서는더욱큰부담
대량의 DML 작업에대한성능개선방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 대량의데이터를변경해야하는작업은그자체만으로도큰부담으로다가온다. 하지만변경작업자체에만국한되는것이아니라변경되기전데이터와변경이후데이터를각각저장관리해야하는메커니즘이라면성능을개선해야하는입장에서는더욱큰부담일것이다. 말그대로대량의데이터를변경해야하는작업의특성상 SQL Tuning 만으로성능을개선할여지는많지않을뿐더러개선을한다하더라도극적인효과를기대하기는어렵다.
More informationMicrosoft Word - PLSQL.doc
PL/SQL 2008 DB system and programming 보충자료 PL/SQL의실행절 BEGIN 절에서의몇가지규칙 - 실행문은여러라인에걸쳐사용할수있다. - 변수명의명명규칙은오라클의일반적인명명규칙과동일하다. PL/SQL 블록내에서 SQL 문을사용할때에는컬럼명과같은변수명은피해야한다. - SQL에서와마찬가지로날짜와문자는홑따옴표 ( ) 를사용하여인용하여야한다.
More information목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4
ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]
More informationALTIBASE HDB Patch Notes
ALTIBASE HDB 6.5.1.5.6 Patch Notes 목차 BUG-45643 암호화컬럼의경우, 이중화환경에서 DDL 수행시 Replication HandShake 가실패하는문제가있어수정하였습니다... 4 BUG-45652 이중화에서 Active Server 와 Standby Server 의 List Partition 테이블의범위조건이다른경우에 Handshake
More informationMicrosoft PowerPoint _TechNet_SQL Server 2005.ppt [호환 모드]
ANSI JOIN 의이해와 copy_t, copy_ymd 테이블을활용한쿼리 개발능력향상하기 이종인 엔코아컨설팅 이주제를이해하는데필요한지식 기본적인 T-SQL 작성기술 JOIN의기본적인이해 100 개념및 소개수준 200 중간수준 300 고급수준 400 전문가수준 200 에 Level 200 선수지식 불필요 100에더하여기술적세부사항설명 더하여능숙한사용경험, 아키텍처
More information다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 6 장. DML 을배웁니다 1 - SQL 명령어들 DML (Data Manipulation Language) : INSERT( 입력 ), UPDATE( 변경 ), DELETE( 삭제 ), MERGE( 병합 ) DDL (Data Definition Language) : CREATE ( 생성 ), ALTER
More informationSQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을
SQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을통해서수행된다. 데이터베이스운영시평소잘수행되던 SQL 이성능이슈를발생시키는때가있는데, 그원인이
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More informationPowerPoint Presentation
Server I/O utilization System I/O utilization V$FILESTAT V$DATAFILE Data files Statspack Performance tools TABLESPACE FILE_NAME PHYRDS PHYBLKRD READTIM PHYWRTS PHYBLKWRT WRITETIM ------------- -----------------------
More information목 차
Oracle 9i Admim 1. Oracle RDBMS 1.1 (System Global Area:SGA) 1.1.1 (Shared Pool) 1.1.2 (Database Buffer Cache) 1.1.3 (Redo Log Buffer) 1.1.4 Java Pool Large Pool 1.2 Program Global Area (PGA) 1.3 Oracle
More informationTITLE
CSED421 Database Systems Lab MySQL Basic Syntax SQL DML & DDL Data Manipulation Language SELECT UPDATE DELETE INSERT INTO Data Definition Language CREATE DATABASE ALTER DATABASE CREATE TABLE ALTER TABLE
More information62
2 instance database physical storage 2 1 62 63 tablespace datafiles 2 2 64 1 2 logical view control files datafiles redo log files 65 2 3 9i OMF Oracle Managed Files, OMF 9i 9i / / OMF 9i 66 8 1MB 8 10MB
More informationSQL
데이터베이스및 SQL 언어의기초 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 1 / 36 Part I 데이터베이스 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 2 / 36 데이터의구성및표현 개체 (entity): DB가표현하려는유형 / 무형적정보의대상속성 (attribute): 개체가갖는특성도메인
More informationOracle Magazine 2003 summer
관계형 DBMS 옵티마이저의 한계와해결방안 글 이상원 < 성균관대학교교수 > swlee@ex-em.com 030 ORACLE KOREA MAGAZINE :: TECHNOLOGY :: 관계형 DBMS의두뇌역할을담당하는비용기반옵티마이저 (Cost Based Optimizer : CBO) 의근본적인한계들을정확히아는것은필요한경우에 SQL의정확한튜닝을위해서반드시필요하다.
More informationPartition Table
Oracle Technical Note Partition Table Troubleshooting 시리즈는필자가한국오라클서버지원팀에서근무하면서실제고객들로부터많은문의를받았던부분들에대해단편적인해결책이아닌보다근본적으로심도있게정리한것이다. 각호에서는각호마다다루는항목에대한기본적인개념과메커니즘을설명한후업무과정에서발생빈도가높은에러를처리해나가는과정을설명한다. 지난호까지는오라클메모리부분,
More informationPowerPoint Presentation
FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org
More informationPowerPoint 프레젠테이션
MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령
More informationTablespace On-Offline 테이블스페이스 온라인/오프라인
2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More information[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2
5 장 SQL 응용 데이터베이스실험실 1 [ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL 5.2.1 T-SQL 문법 5.3 JAVA 프로그래밍 2 5.1 데이터베이스프로그래밍개념 프로그래밍 이라고하면프로그램소스를설계하고, 작성하고, 디버깅하는과정을말한다. 프로그램 혹은소프트웨어는컴퓨터에서주어진작업을하는명령어나열을말한다. 데이터베이스프로그래밍은명확한정의는없지만데이터베이스에데이터를정의하고,
More information<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>
제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요
More information1. SQL 문의종류 2 DDL (Data Definition Language) : 데이터와그구조를정의 SQL문 CREATE DROP ALTER 내용데이터베이스객체를생성데이터베이스객체를삭제기존에존재하는데이터베이스객체를다시정의하는역할 DML (Data Manipulati
Oracle SQL 1 1. SQL 문의종류 2 DDL (Data Definition Language) : 데이터와그구조를정의 SQL문 CREATE DROP ALTER 내용데이터베이스객체를생성데이터베이스객체를삭제기존에존재하는데이터베이스객체를다시정의하는역할 DML (Data Manipulation Language) : 데이터의검색과수정등의처리 SQL 문 INSERT
More informationPowerPoint Presentation
FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA SQL Server Forensic AhnLab A-FIRST Rea10ne unused6@gmail.com Choi Jinwon Contents 1. SQL Server Forensic 2. SQL Server Artifacts 3. Database Files
More informationObservational Determinism for Concurrent Program Security
웹응용프로그램보안취약성 분석기구현 소프트웨어무결점센터 Workshop 2010. 8. 25 한국항공대학교, 안준선 1 소개 관련연구 Outline Input Validation Vulnerability 연구내용 Abstract Domain for Input Validation Implementation of Vulnerability Analyzer 기존연구
More informationMicrosoft Word - 04_EXCEPTION.doc
ORACLE EXCEPTION INTRODUCTION PLSQL 블록이 PARSE 되는동안에발생되는에러를컴파일에러 (Compilation Error) 라고부르며, PLSQL 블록이실행되는동안에발생되는에러를런타임에러 (Run-Time Error) 라고부르는데, 이런타임에러를오라클에서는예외 (Exception) 라고부른다. 오라클의예외 (Exception) 는크게두가지로구분된다.
More informationALTIBASE HDB Patch Notes
ALTIBASE HDB 6.3.1.10.6 Patch Notes 목차 BUG-45060 offline replication start 와 replication drop 을동시에수행하는경우, replication start 가완료되지않았으면 replication drop 을수행하지못하도록수정하였습니다... 4 BUG-46193 메모리테이블의이중화병렬 sync
More informationSlide 1
효율적인 SQL 작성을위한 SQL 프로파일링및튜닝 How to design efficient SQL 문효섭 ask@embarcadero.kr 데브기어 1 Agenda SQL 튜닝? SQL 튜닝가이드 SQL 튜닝기본 성능좋은 SQL 작성 Case Study DB Optimizer XE SQL 프로파일링 SQL 튜닝 2 Agenda SQL 튜닝? SQL 튜닝가이드
More information