< 그림 1> Nested Loop Join - 이너테이블에인덱스가있을경우 < 그림 2> Nested Loop Join - 이너테이블에인덱스가없는경우 간은느리다. 즉첫번째로우를받을준비가되어있는단계까지를실행시간으로볼때실행시간은빠르나 Fetch 시간은느리다. NLJ는메모리

Size: px
Start display at page:

Download "< 그림 1> Nested Loop Join - 이너테이블에인덱스가있을경우 < 그림 2> Nested Loop Join - 이너테이블에인덱스가없는경우 간은느리다. 즉첫번째로우를받을준비가되어있는단계까지를실행시간으로볼때실행시간은빠르나 Fetch 시간은느리다. NLJ는메모리"

Transcription

1 Oracle Optimizer 의원리이해및 SQL & 애플리케이션의튜닝 ( 하 ) 오라클튜닝기법의 100% 활용 글 최세훈 ( 한국오라클 DB Tech 팀 ) sehoon.choi@oracle.com 지난회에서는튜닝에들어가기위해먼저 Oracle Optimizer 의원리와특징에대해서설명했다. 이번회에서는조인메소드별특징과플랜보는법을이해하고, 실제오라클에서제공하는튜닝기법들을활용해보도록하자. 숲을보는튜닝 조인메소드별특징 튜닝에는정답이없다. 즉튜닝은시스템의특징이나업무의특징들을정확히이해하고, 그상황에맞게문제의원인을확인하고, 문제의원인을해결하기위한최적의튜닝방법을찾아야한다는것이다. 튜닝의기본목표는자원을상황에맞게효율적으로사용해서원하는결과값을원하는시간내에받아보는것이다. 병렬기능을많이사용한다고해서항상좋은결과가나오는것은아니다. 또한시스템의자원은한정되어있다는것을항상명심해야한다. 하나의애플리케이션이한정된시스템자원을병렬기능을사용해서독점한다면, 다른애플리케이션들은상대적으로피해를보게되는것이다. 즉튜닝은하나의애플리케이션을위한것이아니라모든애플리케이션이조화롭게운영될수있도록하여야한다는것이다. 이런입장에서필자는나무를보지말고숲을보라고항상강조한다. 즉단위 SQL 문장의플랜 (plan) 튜닝도중요하지만, 전체적인조화를이루는 SQL 문장의유형및구조적인문제등이더중요하다는것이다. 업무시작이후에구조적인문제를해결하려면상당한인적, 시간적자원을소모해야하지만, SQL 문장의플랜적인튜닝은해당 SQL 문장의튜닝결과를적용하는것으로, SQL 문장의구조적, 유형적튜닝에비해상대적으로적은비용이들것이다. 그래서튜닝작업을이런측면에서바라보도록항상노력하여야할것이다. 오라클의조인메소드는 Nested Loop Join(NLJ), Sort Merge Join(SMJ), Hash Join(HJ) 의 3가지가있다. 이들 3가지조인메소드로여러조인타입 (Basic(natural) Join, Outer Join, Semi Join, Anti Join 등 ) 을지원하게된다. Oracle Optimizer는최적화단계에서이들조인메소드들중조인에대한Selectivity와Cardinality의계산에의해가장효율적인것을선택하게된다. 단 RBO(Rule Base Optimizer) 에서는인위적인힌트 (USE_HASH) 를주지않고서는 Hash Join은전혀고려하지않는다. 힌트를준것자체가이미 RBO가아니라 CBO(Cost Base Optimizer) 로동작되는것이다. 조인을확인할때조인메소드뿐만아니라조인순서또한중요하다. 먼저액세스되는쪽을 드라이빙테이블 (Driving Table) 이라고하며, 나중에액세스되는테이블을 이너테이블 (Inner Table) 이라고한다. Hash Join 에서는 Build Table 과 Probing Table 이라는용어로사용된다. SQL 문장에서튜닝을잘하기위해서는조인메소드별특징을정확히이해하고플랜을통해처리되는과정을그려볼수있어야한다. Nested Loop Join(NLJ) NLJ는순차적인처리로 Fetch의운반단위 (Array Size, Prefetch Size) 마다결과로우 (row) 를리턴받을수있다. 첫번째로우를받는시간은빠르나, 전체결과로우를받는데까지걸리는시 2005 SPRING 095

2 < 그림 1> Nested Loop Join - 이너테이블에인덱스가있을경우 < 그림 2> Nested Loop Join - 이너테이블에인덱스가없는경우 간은느리다. 즉첫번째로우를받을준비가되어있는단계까지를실행시간으로볼때실행시간은빠르나 Fetch 시간은느리다. NLJ는메모리가필요없는조인이다. 그러므로추가적인메모리비용이필요없다. NLJ는드라이빙테이블에서많은로우들이필터링되어이너테이블로찾아들어가는부분을줄여야하므로드라이빙순서가중요하다. 이너테이블은드라이빙테이블의리턴되는모든로우들에대해서반복실행하므로액세스효율이좋아야한다. 즉대부분의경우이너테이블은인덱스가있어야한다. 또한인덱스의효율이좋아야한다. 이너테이블이작더라도액세스횟수가많다면인덱스가있어야한다. 인덱스의효율이좋지않아전체의 Index Range Scan과같은경우는최악의조건이다. NLJ는주로인덱스위주의싱글블록 I/O의랜덤I/O 위주이므로 OLTP에서적은데이타범위처리에주로사용된다. 즉전체의 15% 이상의경우는 Full Table Scan을이용한 Sort Merge 또는 Hash Join을이용한다. NLJ도드라이빙테이블이 Full Table Scan에병렬로처리되면이너테이블도병렬로종속적으로처리된다. Sort Merge Join(SMJ) 전체로우를리턴받는시간이빠르다. 즉첫번째로우를리턴받을준비까지의시간은느리지만, 준비가된상태에서의 Fetch 시간은빠르다 ( 메모리에서리턴하므로 ). 이는대상로우들 (Where 조건에의해필터된로우들만정렬 ) 을가지고정렬작업 ( 모든로우들을조인키로정렬 ) 을하기전까지는어떠한로우도리턴할수없기때문이다. NLJ와같이드라이빙테이블의리턴되는로우수와이너테이블의액세스패턴에의에액세스효율이좌우되지않으며, 조인테이블간에자신의처리범위로만처리량을결정하므로독립적이다. 추가적인정렬메모리 (SORT_AREA_SIZE) 비용이필요하다. 메모리가부족하면 TEMP 테이블스페이스에정렬중간단계 (Sort Runs) 를기록하게되므로추가적인디스크 I/O비용이발생할수있다. 정렬메모리에위치하는대상은조인키뿐만아니라 Select List도포함하므 로불필요한 Select List는제거해야한다. 정렬작업의 CPU 사용에대한오버헤드가있다. 그러므로많은로우들과전체적으로 Select List의사이즈의합이큰테이블의조인에는문제가있다. 즉디스크정렬을피할수가없으며, 정렬에 CPU 비용이많이든다. 디스크정렬만발생하지않는다면넓은범위처리에유리하다. 디스크정렬을피할수없는경우라면 (Batch Job, Create index,...) SORT_AREA_SIZE, SORT_MULTIBLOCK_READ_COUNT를SQL마다세션레벨에할당해서사용하도록한다 (WORKAREA_SIZE_POLICY가 Manual일경우나 Oracle9i Database 이전버전에서 ). 또한 TEMP 테이블스페이스의 Extent Size도충분히크게주도록한다. ALTER SESSION SET SORT_AREA_SIZE= ; ALTER SESSION SET SORT_AREA_RETAINED_SIZE= ; ( 같이준다 ) ALTER SESSION SET SORT_MULTIBLOCK_READ_COUNT=128; 정렬메모리의크기는 (= Target rows (total selected column s bytes) 2) 이상설정하되, PGA의메모리한계로인해테스트를통해 PGA Memory Allocation Error가발생하지않는범위내에서설정하도록한다. 필요시 Trace를이용해점검한다. ALTER SESSION SET EVENTS TRACE NAME CONTEXT FOREVER ; Hash Join(HJ) Hash Join은두개의조인테이블중 Small Rowset(Where 조건에의해필터링된로우수가작은테이블 ) 을가지고 HASH_AREA_SIZE에지정된메모리내에해시테이블을만든다. 해시테이블을만든이후부터는 NLJ의장점인순차적인처리형태이다. 그러므로 NLJ과 SMJ의장점을가지고있다. Hash Join은 Basic Join( = ) 만가능하다. NLJ와같이드라이빙테이블의리턴되는로우수와이너테이블의액세스패 096 ORACLE KOREA MAGAZINE

3 < 그림 3> Sort Merge Join < 그림 4> Hash Join 턴에의에액세스의효율이좌우되지않으며, 조인테이블간에자신의처리범위로만처리량을결정하므로독립적이다. SMJ의단점인많은로우들의처리또는전체적으로 Select List의사이즈의합이큰테이블의조인시정렬작업의 CPU 사용에대한오버헤드및디스크정렬과같은문제점은없다. 그러므로최소한 SMJ보다는우수하다. 한테이블은작은 Rowset 사이즈 ( 리턴되는로우수와 Select List 기준 ), 다른한테이블은아주큰사이즈의조인에유리하다. 이러한경우는반드시작은사이즈를가지고해시테이블을만들어야한다. 단, Hash Join은순서가매우중요하다는점에주의하는데, 작은 Rowset으로해시테이블을만들어야하기때문이다. 힌트를잘못주어서 Big Rowset이리턴되는테이블부터드라이빙된다면 (Build Table), HASH_AREA_SIZE의메모리부족으로 TEMP 디스크 I/O 가발생한다. 그러므로힌트를줄경우반드시드라이빙순서를정확히주어 야한다. 디스크 I/O를피할수없는경우라면, HASH_AREA_SIZE(default : =SORT_AREA_SIZE 2) 를 SQL마다세션레벨에할당해서사용하도록한다 (WORKAREA_SIZE_POLICY가 Manual일경우이거나 Oracle9i Database 이전버전에서 ). 또한 TEMP 테이블스페이스의 Extent Size도충분히크게주도록한다. HASH_MULTIBLOCK_IO_COUNT는옵티마이저에게자동조정하도록설정하지않는다. ALTER SESSION SET HASH_AREA_SIZE= ; 해시메모리의사이즈는 (= Small Table의 Target rows (total selected column s bytes) 1.5) 이상설정하되, PGA의메모리의한계로인해테스트를통해 PGA Memory Allocation Error가발생하지않는범위내에서설 < 그림 5> Hash Join Detail 2005 SPRING 097

4 정하도록한다. 필요시 Trace 를이용해점검한다. 튜닝시플랜적인튜닝뿐만아니라구조적인튜닝에도집중한다. ALTER SESSION SET EVENTS TRACE NAME CONTEXT FOREVER ; SQL 튜닝시고려사항 SQL 튜닝시에고려해야할점을정리하면, 다음과같다. 가능한힌트는사용하지않는다. 힌트를많이구사한애플리케이션들은지난호에서설명했던것과같이기준 ( 파라미터및통계정보 ) 이잘못설정된경우가많다. 힌트는최후에어쩔수없는경우에사용하도록한다. - 1차적으로플랜이원하는경우가아닐경우통계정보및 Init.ora의파라미터값들을확인해본다. [USER ALL DBA]_TABLES,[USER ALL DBA]_INDEXES,[USER ALL DBA]_TAB_COLUMNS 등의딕셔너리정보확인, 최종분석시간, 블록수, 로우수, 칼럼의 Distinct 값, 인덱스의 Clustering Factor, Sample Size 등을확인하다. 이들값들이현실데이타와비슷한지확인한다. 통계정보가없거나너무오래됐거나샘플링사이즈가너무작은경우, 현실데이타와다를수있 - Execution이높은것은과다한Loop Query가아닌지검토한다. Loop Query의보완, 최적화가필요하다. - 일회성 ( 상수를사용 ) 비공유 SQL, 특히집중적으로실행되는 Literal SQL은바인드변수기법을사용한다. - 파싱 (parsing) 을줄이는방법으로 Java의 Statement Cache, PRO*C의 RELEASE_CURSOR=NO 등프그래밍언어의효과적인기법들을사용한다. - Array Processing 기능을사용한다. 기본적으로거의대부분의 DB 접속방식에서이들기법들을제공하고있으며, 코딩상의특별한처리없이 PREFETCH 기능이이와같은기능이며, 애플리케이션개발시특별한구현작업없이옵션설정만으로가능하다 (ODBC, JDBC, OO4O, ADO, PRO*C 등 ). - PL/SQL의 Bulk Binding/Bulk Collecting 기능을이용한다. - Aggregate Function 등향상되고효과적인여러질의기능을활용한다. 튜닝시플랜은상수로테스트하지만, 실제로바인드변수로운영되는경우플랜이다를수있다. 프로그램에바인드변수로되어있다면바인드변수로플랜을확인해봐야한다. 다. 이러한경우는통계정보를다시생성한다. - 칼럼에대한통계정보 ( 히스토그램 ) 는안돌리는것을원칙으로한다. 그러나편향된데이타분포도를가지고있다면히스토그램을운영한다. 또한이들칼럼에대한 Where 절의사용되는값들은바인드변수를사용하지않도록한다. 히스토그램을사용하는곳에는상수 (literal) 값을사용하여야플랜이효과적으로풀린다. - 힌트를지정할경우는가능한타이트하게주도록한다. 그렇지않을경우향후플랜이변경될가능성이많기때문이다. 예 > /*+ USE_NL(a b) */ ==> /*+ ORDERED USE_NL(a b)... */ 기타다음사항도고려한다. - Hash Join을사용할경우드라이빙순서, Rowset을고려하여사용한다. - SQL 문장에서반드시필요한칼럼만선택한다. 불필요한칼럼들은정렬, 해시작업에서메모리에로딩해야하므로 TEMP 디스크 I/O의원인이되기도한다. - Chaining % 비율을항상검토하고 Row Chaining 비율이높은테이블에대해서는칼럼의데이타타입조정및블록의 PCTFREE 등을늘리도록한다. 테이블의구조적인문제또는업무적인형태를고려하여 Reorg를하도록한다 (CTAS, MOVE, Exp/Imp 등이용 ). - 힌트는힌트의의미를정확히이해하고합당한힌트를주도록한다. 어설픈힌트는오히려역효과가발생되는경우가많다. 통계정보는운영중에직접돌리지않는다. - 집중적인운영시기에통계정보수집을위한실행은 Library Cache Contention을유발하며, 관련 SQL 및 PL/SQL들을 Invalid시켜성능저하및문제의원인이되기도한다. - 저녁시간의한가한시간을이용해서돌린다 ( 특히시스템의집중사용시기등에유의 ). WORKAREA_SIZE_POLICY=AUTO이면 *_AREA_SIZE는이용하지않으며, 설정해봐야의미가없다. 즉옵티마이저는 *_AREA_SIZE에의해플랜을결정하지않는다. 평균로우길이와블록당로우수도항상주의깊게관찰하여문제점이없는지검토한다 ( 통계정보이용 DBA_TABLES.NUM_ROWS/DBA _TABLES.BLOCKS). 블록당로우가적은경우는 DELETE가많이된경우이므로, Full Table Scan이자주발생된다면 Reorg 대상이될수있다. 그러나 RAC 환경에서는블록경합을줄이기위해인위적으로 PCTFREE를키워블록당로우수를적게가져가는경우도있다. Hash Join과 Sort Merge Join시 TEMP쪽에 I/O가발생하지않도록한다. PRO*C 애플리케이션일경우, 바인드변수의사용여부, RELEASE_ CURSOR=NO, PREFETCH=1000(batch), PREFETCH=100(OLTP) 를권장한다. 098 ORACLE KOREA MAGAZINE

5 Execution Plan 보기 Execution Plan이란옵티마이저가질의최적화단계에서 RBO 또는 CBO 에의해결정해낸최적의액세스경로정보를가지고 QEP Generator가만 들어낸실행계획이다. 이Execution Plan은 SQL 문장이실행될때필요한 모든정보를포함하고있다. 액세스경로 : 어떠한방법으로데이타에접근할것인가? (Index Scan, Index Fast Full Scan, Full Table Scan 등 ) 조인메소드 : 어떤조인메소드를사용할것인가? 조인순서 : 어떠한조인의순서로풀릴것인가? 다음과같은 Execution Plan을가정하자. ID PID Execution Plan SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=5 Bytes=250) 1 0 TABLE ACCESS (BY INDEX ROWID) OF EMP (TABLE) (Cost=1 Card=5 Bytes=160) 2 1 NESTED LOOPS (Cost=3 Card=5 Bytes=250) 3 2 TABLE ACCESS (BY INDEX ROWID) OF DEPT (TABLE) (Cost=2 Card=1 Bytes=18) 4 3 INDEX (RANGE SCAN) OF DEPT_DEPTNO (INDEX) (Cost=1 Card=1) 5 2 INDEX (RANGE SCAN) OF EMP_DEPTNO (INDEX) (Cost=0 Card=5) 정도의리턴로우가발생할것이라는것을예측할수있다. 통계정보만정확하다면이들값도상당히정확하다고보면된다. Execution Plan을제대로보기위해서는, 각데이타베이스사용자마다 PLAN_TABLE이있어야하는데, PLAN_ TABLE은오라클버전마다다르다. 해당오라클버전의 $ORACLE_ HOME/rdbms/admin/utlxplan.sql을실행하면만들어진다. SQL을실행하지않고 Trace만보는방법도있다. EXPLAIN PLAN < 리스트 1>, SQL*Plus의 SET AUTOTRACE TRACEONLY EXPLAIN < 리스트 2>. 플랜을 PLAN_TABLE에서확인할수도있다. Oracle8i Database 이전까진 Plan_Table에서직접선택하고, Oracle8i Database 이상부터는 Plan_Table에서직접선택하거나 $ORACLE_ HOME/rdbms/admin 위치에서 utxpls.sql(serial Plan) 또는 utlxplp.sql (Parallel Plan) 스크립트를실행하면된다. Oracle9i Database 이전에서는 utxpls.sql, utlxplp.sql 외에 select * from table(dbms_xplan.display); < 리스트 1> Execution Plan 보기 (EXPLAIN PLAN) 실행예 (Oracle9i Database, Oracle10g Database) -- Oracle9i Database R2 Sample ( ) 플랜에서나오는각라인을 로우소스 (Row Source) 라고한다. 플랜을보면서처리순서를판단하는것은간단하다. 플랜은트리형태로되어있으며, 자신보다하위레벨이있으면하위레벨부터, 같은레벨이라면위 ( 상 ) 의로우소스부터실행된다. 위플랜의 Optimizer=CHOOSE 에서알수있듯이해당 SQL 문장은옵티마이저모드가 CHOOSE에서플랜이만들어진것이다. 또한플랜에서 Cost= 의항목이나오면 CBO로풀렸다는것이다. RBO인지 CBO인지의판단은옵티마이저모드의항목으로판단하는것이아니라 Cost= 로판단한다는것에주의하자. 위플랜에서 2개의테이블 DEPT와EMP 테이블각각의액세스경로를확인할수있다. 모두인덱스를사용하고있는것이다. 또한조인메소드로는 Nested Loop Join이사용되었다. 조인순서는자신보다하위레벨이있으면하위레벨부터, 같은레벨이라면위의로우소스부터실행된다는법칙을적용해보면, ID를기준으로4 -> 3 -> 5 -> 2 -> 1 -> 0의순서로처리된다. 단조인메소드가 Nested Loop이기때문에 3에서리턴되는로우수만큼다음단계가반복된다. 그러므로조인순서는 DEPT -> EMP 순으로 Nested Loop로처리될것이라는것을알수있다. 또한 Card=5 는Computed Cardinality를나타내며, 몇건의로우가리턴될것인지를 CBO가통계정보를이용해서계산해낸값이다. Bytes=250 은리턴될로우들의바이트를나타내므로 5 로우에 250바이트 SQL> SET LINESIZE 130 SQL> SET PAGESIZE 0 SQL> SQL> EXPLAIN PLAN 2 SET STATEMENT_ID = TEST_MYSQL 3 FOR SELECT ename, job, sal, dname 4 FROM emp, dept 5 WHERE emp.deptno = dept.deptno 6 AND NOT EXISTS 7 (SELECT * 8 FROM salgrade 9 WHERE emp.sal BETWEEN losal AND hisal); Explained. SQL> EXPLAIN PLAN...FOR <SQL> 로플랜을작성한다. SQL> -- 오른쪽의 SQL> select * from table(dbms_xplan.display); 2005 SPRING 099

6 Id Operation Name Rows Bytes Cost SELECT STATEMENT 단위스텝별예상 로우및바이트를 1 MERGE JOIN ANTI 예측할수있다. 2 SORT JOIN 상위단은하위단 을포함한다. *3 HASH JOIN TABLE ACCESS FULL EMP TABLE ACCESS FULL DEPT *6 FILTER *7 SORT JOIN 8 TABLE ACCESS FULL SALGRADE Oracle9i Database부터 Predicate Information (identified by operation id): Access & Filter Predicate 정보가추가되었다. 이정보를이용해서필터조건및 조인조건을확인할수있다. 3 - access( EMP. DEPTNO = DEPT. DEPTNO ) 6 - filter( EMP. SAL <= SALGRADE. HISAL ) 7 - access( EMP. SAL >= SALGRADE. LOSAL ) filter( EMP. SAL >= SALGRADE. LOSAL ) Note: cpu costing is off 24 rows selected g Sample ( ) SQL> SQL> select * from table(dbms_xplan.display); Oracle10g Database부터디폴트로 CPU 반영비중과예측시간을확인할수있다. Oracle10g Database부터는비 용기준이시간이므로가능하다 Id Operation Name Rows Bytes Cost(%CPU) Time SELECT STATEMENT (17) 00:00:01 1 MERGE JOIN ANTI (17) 00:00:01 2 SORT JOIN (17) 00:00:01 * 3 HASH JOIN (10) 00:00:01 4 TABLE ACCESS FULL DEPT (0) 00:00:01 5 TABLE ACCESS FULL EMP (0) 00:00:01 * 6 FILTER * 7 SORT JOIN (17) 00:00:01 8 TABLE ACCESS FULL SALGRADE (0) 00:00: Predicate Information (identified by operation id): access( EMP. DEPTNO = DEPT. DEPTNO ) 6 - filter( EMP. SAL <= HISAL ) 7 - access( EMP. SAL >= LOSAL ) filter( EMP. SAL >= LOSAL ) < 리스트 2> Execution Plan 보기 (SQL*Plus의 SET AUTOTRACE) 실행예 (Oracle9i Database) 9iR2 Sample ( ) ======================> SQL> SET AUTOTRACE ON SQL> SQL> SELECT ename, job, sal, dname 2 FROM emp, dept 3 WHERE emp.deptno = dept.deptno 4 AND NOT EXISTS 5 (SELECT * 6 FROM salgrade 7 WHERE emp.sal BETWEEN losal AND hisal); no rows selected (1) SQL 문장이실행되었다. 실행은하지않고플랜만확인하려면 SET AUTOT TRACEONLY EXPLAIN 으로처리한다. Execution Plan SELECT STATEMENT Optimizer=CHOOSE (Cost=13 Card=14 Bytes=756) 1 0 MERGE JOIN (ANTI) (Cost=13 Card=14 Bytes=756) 2 1 SORT (JOIN) (Cost=8 Card=14 Bytes=392) 3 2 HASH JOIN (Cost=5 Card=14 Bytes=392) 4 3 TABLE ACCESS (FULL) OF EMP (Cost=2 Card=14 Bytes=238) 5 3 TABLE ACCESS (FULL) OF DEPT (Cost=2 Card=4 Bytes=44) 6 1 FILTER 7 6 SORT (JOIN) 8 7 TABLE ACCESS (FULL) OF SALGRADE (Cost=2 Card=409 Bytes=10634) (2) 내부적으로 EXPLAIN PLAN... 으로처리된플랜정보를보여준다. 실제 Runtime Plan은아니다. 100 ORACLE KOREA MAGAZINE

7 ACCESS_PREDICATES, FILTER_PREDICATES FROM v$sql_plan p Statistics recursive calls (3) 실제실행된 Execution Statistics를보여준다. 전체읽어들인 0 db block gets 블록수는 db block gets + consistent gets. 21 consistent gets 0 physical reads 0 redo size 376 bytes sent via SQL*Net to client 372 bytes received via SQL*Net from client 1 SQL*Net roundtrips to/from client 2 sorts (memory) 0 sorts (disk) 0 rows processed Cached Execution Plan(V$SQL_PLAN) Explain Plan으로보는플랜과실제실행시플랜이다를수있다. 이는 Explain Plan은단지SQL 문장에대한구조적인분석하에예상플랜을만 들어내기때문이다. 예를들어 select, * from emp where empno = :B1 의SQL 문장을실행한다고생각해보자. Empno가인덱스가설정되어있고 Character 타입으로되어있으며, 인덱스를이용하는것이효과적이라고가정하면 Explain plan은 Empno 의인덱스를이용해서풀릴것이다. 그러나실제실행시바인드변수인 :B1 에Character 타입이아니라 Number 타입으로바인드되었다면인덱 스를이용할수없는것이다. 또한 Oracle9i Database의 Bind Peeking과 같은기능은처음바인딩되는상수에의해플랜을결정하는데, 이방식에의 해서도그러한상황이있을수있다. 이와같이Explain Plan을보는것과실제예측실행시간이너무차이가 난다면 Runtime Plan을확인해볼필요가있다. Oracle9i Database부터 V$SQL_PLAN의성능뷰를제공하며, 현재캐쉬화되어있는 SQL 문장들에 대한 Runtime Plan을확인해볼수있다. V$SQL_PLAN은 PLAN_TABLE 과칼럼항목이거의같다. SELECT hash_value, (select sql_text from v$sql s where s.hash_value = p.hash_value and s.address = p.address and rownum <= 1), child_number,id,parent_id, LPAD(,2*(depth)) OPERATION DECODE(OTHER_TAG,NULL,, * ) DECODE(OPTIONS,NULL,, ( OPTIONS ) ) DECODE(OBJECT_NAME,NULL,, OF OBJECT_NAME ) DECODE(OBJECT#,NULL,, (Obj# TO_CHAR(OBJECT#) ) ) DECODE(ID,0,DECODE(OPTIMI- ZER,NULL,, Optimizer= OPTIMIZER)) DECODE(COST,NULL,, (Cost= COST DECODE(CARDINALITY,NULL,, Card= CARDINALITY) DECODE(BYTES,NULL,, Bytes= BYTES) ) ) SQLPLAN,OBJECT_NODE, PARTITION_START,PARTITION_STOP, PARTITION_ID, CPU_COST, IO_COST, TEMP_SPACE, DISTRIBUTION, OTHER, START WITH ID=0 and hash_value = [XXXXXXXXXX] CONNECT BY PRIOR ID=PARENT_ID AND PRIOR hash_value=hash_value AND PRIOR child_number=child_number ORDER BY hash_value,child_number,id,position SQL_TRACE와 TKPROF를이용한 SQL 튜닝 SQL_TRACE 또는 Trace Enable/Disable SQL_TRACE는애플리케이션이 SQL 문장들을처리하는과정을 Trace로남기게하는기능이다 Trace 기능은 SQL_TRACE의기능에추가적인정보를기록한다. 레벨1은 SQL_TRACE 기능과같으며, 레벨4는바인드변수정보, 레벨8은 Wait Event 정보, 레벨12는바인드변수정보와 Wait Event 정보를같이보여준다. 주의할점은 Trace를 On 했으면반드시모니터링후 Off 해야한다는것이다. 그렇지않을경우 Disk Full이발생할수있으므로반드시주의해야한다. Trace는init.ora의user_dump_dest에서지정된곳에생성된다. 인스턴스레벨 : init.ora 파라미터이용 sql_trace = {TRUE FALSE} 또는 event = trace name context forever, level { } 세션레벨 : SQL*Plus 또는애플리케이션루틴내 ALTER SESSION SET SQL_TRACE = {True False}; 또는 Trace On alter session set events trace name context forever, level { } ; Trace Off alter session set events trace name context off ; 또는 EXECUTE dbms_session.set_sql_trace({true False}); 또는 EXECUTE dbms_system.set_sql_trace_in_session(session_id, serial_id, {True False}); Execution Plan 보기 (SQL_TRACE,10046 Trace와 TKPROF) 실행예 (Oracle9i Database) Oracle9i Database Release 2(9.2.x) 부터는튜닝대상이어느곳인지 ( 플랜상의스텝 ) 판단하기쉽게획기적으로개선되어, 초보자도튜닝대상을쉽게찾을수있다. 또한사용자가 SQL 문장을실행해서결과값을받는서비스 2005 SPRING 101

8 타임은 DB 실행시간 + 대기시간 이다. Oracle9i Database부터는 SQL TRACE의레벨에따라Wait 정보의요약정보도같이보여주므로어느곳에병목현상이있는지판단하기쉬워졌다. 다음은Oracle9i Database Release 2(9.2.x) 부터개선된사항이다 < 리스트 3>. AND NOT EXISTS (SELECT * FROM salgrade WHERE emp.sal BETWEEN losal AND hisal) Trace 레벨에따라 Wait( 레벨 8, 레벨 12일경우 ) 정보도표시 각로우소스 ( 플랜상의스텝 ) 마다 Statistics 표시 Oracle9i Database에서는 time=xxxxxxxxxx 정보가 1/ 초단위로나타난다. Oracle8i Database까지는 1/100초였다. Runtime Plan & TKPROF 실행시플랜주의 TKPROF. EXPLAIN=xxxx/yyyy일경우플랜이 2개 (Runtime Plan & Tkprof 실행시점의플랜 ) (1) call count cpu elapsed disk query current rows Parse Execute Fetch total 실행수 Sec 처리된 처리된 블록수 로우수 < 리스트 3> Oracle9i Database R2( ) 샘플 -- alter session set sql_trace=true; alter session set events trace name context forever, level 12 ; SELECT ename, job, sal, dname FROM emp, dept WHERE emp.deptno = dept.deptno AND NOT EXISTS (SELECT * FROM salgrade WHERE emp.sal BETWEEN losal AND hisal); ORA9iR2L@oracle> tkprof ora9ir2l_ora_2137.trc ora9ir2l_ora_2137.prf explain=scott/tiger width=132 TKPROF: Release Production on Mon Nov 22 16:30: Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. ORA9iR2L@oracle> vi ora9ir2l_ora_2137.prf SELECT ename, job, sal, dname FROM emp, dept WHERE emp.deptno = dept.deptno (2) (3) (4) Misses in library cache during parse: 0 Optimizer goal: CHOOSE Parsing user id: 59 (SCOTT) Rows Row Source Operation MERGE JOIN ANTI (cr=21 r=0 w=0 time=94397 us) 14 SORT JOIN (cr=14 r=0 w=0 time=92823 us) 14 HASH JOIN (cr=14 r=0 w=0 time=92237 us) 14 TABLE ACCESS FULL OBJ#(30627) (cr=7 r=0 w=0 time=860 us) 4 TABLE ACCESS FULL OBJ#(30628) (cr=7 r=0 w=0 time=275 us) 14 FILTER (cr=7 r=0 w=0 time=1238 us) 40 SORT JOIN (cr=7 r=0 w=0 time=856 us) 5 TABLE ACCESS FULL OBJ#(30630) (cr=7 r=0 w=0 time=383 us) Oracle9i Database Release 2부터는각로우소스 ( 스텝 ) 별일량을확인할수있는통계정보를보여준다. Rows Execution Plan SELECT STATEMENT GOAL: CHOOSE 0 MERGE JOIN (ANTI) 14 SORT (JOIN) 14 HASH JOIN 14 TABLE ACCESS GOAL: ANALYZED (FULL) OF EMP 4 TABLE ACCESS GOAL: ANALYZED (FULL) OF DEPT 14 FILTER 40 SORT (JOIN) 5 TABLE ACCESS (FULL) OF SALGRADE 102 ORACLE KOREA MAGAZINE

9 (5) Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited Waited SQL*Net message to client SQL*Net message from client (1) SQL 문장처리정보 query : Consistent Read(CR) current : Current Read(SCUR) disk : Physical Read Parse : 파싱 (Parse Request 수, 실제하드파싱은아님 ) Execute : SQL 문장실행수 Fetch : Fetch 회수 cpu, elapsed : CPU 사용시간및전체처리시간 Logical Read = Query + Current(Logical Read는 Physical Read를포함한다. 그러므로 Logical Read >= Physical Read이다. 그러나반대의경우라면, 임시테이블스페이스로디스크 I/O가발생했다고보면된다 (Sort, Hash, Bitmap Operation 등에의해 ). 여기서의관점은 Logical Read는전체 Block Buffer Operation의양을나타내므로이들처리블록수를줄이는것이튜닝의관건이다. Fetch 회수와로우수와의관계에서 Fetch = Rows일경우는 Single Row Fetch의처리를하였고, Fetch <= Rows일경우는 Array Fetch 또는 Prefetch 처리를한경우이다. 여기서의관점은성능향상을위해 Array Fetch 또는 Prefetch를효과적으로사용하고있느냐의관점이다. Parse 수와 Execute 관점에서본다면, 같은 SQL 문장을매번실행할때마다 Parse Request를할필요가없다는것이다. 이를줄이는방법으로 Pro*C의 RELEASE_CURSOR=NO (Dynamic SQL은해당안됨 ), Java 의 Statement Cache 등이있다. (2) SQL 문장의파싱정보 Misses in library cache during parse 의값이0이면소프트파싱, 1이면 SGA Cache에없어서하드파싱이발생한경우이다. 옵티마이저모드정보및파싱스키마정보를확인할수있다. Recursive SQL일경우 Recursive Depth 정보도나타난다. 수를나타낸다. Oracle9i Database Release 2부터는각로우소스 ( 스텝 ) 별일량을확인할수있는 Statistics정보를보여준다. 상위스텝은하위스텝의값들을포함한다. 그러므로전체일량중에서병목현상이어느곳에서가장많이발생되는지명확히알수있다. 즉튜닝의포인트를정확히확인할수있다. cr= : Consistent Read 총블록수 r= (Oracle Database 10g는 pr=) : Physical Read 총블록수 w= (Oracle Database 10g는 pw=): Physical Write 총블록수 time= : 전체처리시간 ( 마이크로초 (1/ 초) 단위 ) 여기서가장상위의 cr=21은 (1) 의 SQL 문장처리정보에서확인한 Logical Read(= Query + Current) 의값과같다는것을확인할수있다. 또한전체처리시간은 time=94397 이므로약 0.09초걸렸다는것을알수있다. 전체처리일량중병목을찾고자한다면전체일량중가장많은블록처리및시간으로탑다운식으로찾아내려가면누구든지쉽게찾을수있을것이다. 해당부분을찾은뒤, 조인메소드의변경 -> 조인순서의변경 -> 액세스경로변경의중심으로튜닝을실시하면될것이다. (5) SQL 문장 Wait 정보 이부분은 Event의 8 또는 12 레벨에의해생성되며, SQL 문장을실행하는데발생되었던 Wait 정보의요약값을나타낸다. 사용자가느끼는실행시간은 SQL 문장의실행시간과 Wait 시간의합이므로이들 Wait 시간을주의깊게관찰할필요가있다. Times Waited : Wait Event가발생했던횟수 Max. Wait : 최대로길었던 Wait 시간 ( 초단위 ) Total Waited : 전체 Wait 시간 ( 초단위 ) TKPROF 아웃풋의로우값의버전별변화 TKPROF의아웃풋형태가 Oracle8i Database 이전까지는테이블또는인덱스를찾아들어간로우수를나타내며, Oracle8i Database서부터로우값은필터링되어리턴된로우수를나타낸다. TKPROF 아웃풋에로우값이 0 으로나오는경우는해당SQL 문장의커서가종료되기전에Trace가종료되었거나끊긴경우이다. Runtime Plan은커서가종료되는시점에기록되므로이값이0으로나올수있다. (3), (4) SQL 문장 Execution Plan 정보 (Runtime Plan/TKPROF 실행시플랜 ) TKPROF의 explain=xxx/xxx을주게되면2개의플랜이만들어진다. 처음것이 Runtime Plan이며, 두번째가 TKPROF 유틸리티를돌린시점의 EXPLAIN PLAN에의해만들어진플랜이다. 이들플랜은 TKPROF를실행한시점이다를수있으므로다를수가있는것이다. Rows : Oracle Database 8.0까지는액세스했던, 즉찾아들어갔던로우수로나타나며, Oracle8i Database부터는조건에의해필터되어리턴된로우 -- Oracle Database 8.0.x의플랜예 select /*+ ORDERED USE_NL(d e) */ * from dept d, emp e where e.deptno = d.deptno and d.deptno = SPRING 103

10 Rows Execution Plan SELECT STATEMENT GOAL: CHOOSE 3 NESTED LOOPS 4 TABLE ACCESS GOAL: ANALYZED (FULL) OF DEPT 14 TABLE ACCESS GOAL: ANALYZED (FULL) OF EMP DEPT 테이블에서 Full Table Scan에의해4로우가액세스되었으며, EMP 테이블도 Full Table Scan에의해14로우가액세스되었다. Nested Loop Join에의해3로우가리턴되었다. -- Oracle 9.2.x의Plan예 select /*+ ORDERED USE_NL(d e) */ * from dept d, emp e where e.deptno = d.deptno and d.deptno = 10 Rows Execution Plan SELECT STATEMENT GOAL: CHOOSE 3 NESTED LOOPS 1 TABLE ACCESS GOAL: ANALYZED (FULL) OF DEPT 3 TABLE ACCESS GOAL: ANALYZED (FULL) OF EMP DEPT 테이블에서 Full Table Scan에의해1로우가리턴되었으며, EMP 테이블도 Full Table Scan에의해3로우가리턴되었다. Nested Loop Join에의해3로우가리턴되었다. Oracle Database 10g의튜닝관련신기능 Oracle Database 10g에서튜닝기능은더욱개선, 강화되었다. 자동성능진단과튜닝 Oracle Database 10g부터는자가관리 (self-management) 기능이강화되었으며, Automatic Statistics Collection, Automatic Database Diagnostic Monitoring(ADDM), Automatic SQL 튜닝과같은기능을튜닝에이용할수있다. Automatic Workload Repository(AWR) 는셀프튜닝과문제진단을목적으로성능정보를수집하고처리하고유지한다. Automatic Database Diagnostic Monitor(ADDM) 는 AWR에수집된정보를주기적으로분석하고오라클시스템에대한문제의원인을진단하고권장사항을제공한다. Oracle SQL Tuning Advisor는 SQL 문장의최적화를위해빠르고효과적인방법을제공한다. 내부적으로 DBMS_SQLTUNE 패키지를제공하며, 사람이직접하던튜닝을이제는 Oracle SQL Tuning Advisor의기능을이용해문제의원인을상세하게찾아내고개선안을얻을수있으며, 개선안을수용하면같은 SQL 문장이실행되었을경우튜닝된결과로플랜이처리된다. Application End to End Tracing Application End to End Tracing 기능은클라이언트식별자 (Login ID), 서비스명 (Application Group), 모듈명또는액션명으로시스템자원을과다하게사용하는 SQL 문장과같은워크로드의원인을찾을수있도록해주는유용한기능이다. 즉멀티티어환경에서의성능디버깅을쉽게할수있는기능이다. trcsess 유틸리티 trcsess는커맨드라인유틸리티로, 특정검색조건에해당하는내용을원하는여러Trace 파일에서통합해서한파일로만들어준다. AP 서버를두고있는분산트랜잭션에서여러 AP 서버의 Trace에분산되어있는 Trace 정보에서원하는검색조건인클라이언트식별자, 서비스명, 모듈명또는액션명등으로찾아볼수있다. Application End to End Tracing의기능에의해여러파일에흩어져있는 Trace 내용을모으는데유용하다. Automatic Optimizer Statistics Collection 각오브젝트들에대한옵티마이저통계정보를자동으로수집한다. 통계정보가맞지않거나없는경우에자동으로통계정보를수집할수있다. DBA는어떤오브젝트에대해서통계정보를실행해야되는지, 어떤통계정보가맞지않는지에대해서신경을쓰지않아도되며, 직접실행할필요도없다. 옵티마이저통계정보는 GATHER_STATS_JOB로자동으로수집할수있으며, DB를생성하거나업그레이드할때자동으로설정된다 ( 디폴트 ). 이기능은 Missing Statistics( 통계정보가없음 ) 또는 Stale Statistics( 대량의데이타로딩등에의해로우들이 10% 이상변경된경우 ) 인경우에이들오브젝트들을관리하고이들오브젝트에대해서자동으로수집한다. 수집시기도시스템자원이한가한새벽시간에운영된다. 지금까지 2회에걸쳐 Oracle Optimizer의원리이해를기반으로 SQL 과애플리케이션의튜닝방법에대해서설명하였다. 애플리케이션튜닝부분은자세히다루지는않았지만, 이번기회에 Oracle Optimizer의원리를이해하고, SQL 튜닝기법을활용하여시스템의안정적인개발및운영에도움이되었으면하는바람이다. 104 ORACLE KOREA MAGAZINE

歯sql_tuning2

歯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

Jerry Held

Jerry 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 information

SQL Tuning Business Development DB

SQL 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 Tuning Business Development DB SQL - -SQL -SQL

SQL 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 information

Microsoft Word - SQL튜닝_실습교재_.doc

Microsoft 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

Oracle Database 10g: Self-Managing Database DB TSC

Oracle 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 information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 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

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUERY 을실행하게된다면 BLOCK I/O 가많이발생하게된다. 이런이유로 QUERY 의성능은좋지못할것이다.

More information

Bind 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 의과정을통해데이터 Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL

More information

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

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 information

13주-14주proc.PDF

13주-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

결과보고서

결과보고서 오픈 소스 데이터베이스 시스템을 이용한 플래시 메모리 SSD 기반의 질의 최적화 기법 연구 A Study on Flash-based Query Optimizing in PostgreSQL 황다솜 1) ㆍ안미진 1) ㆍ이혜지 1) ㆍ김지민 2) ㆍ정세희 2) ㆍ이임경 3) ㆍ차시언 3) 성균관대학교 정보통신대학 1) ㆍ시흥매화고등학교 2) ㆍ용화여자고등학교 3)

More information

TECHNICAL WHITE PAPER Tibero Optimizer SQL Execution Plan October 2012

TECHNICAL 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

ePapyrus PDF Document

ePapyrus 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 information

Microsoft PowerPoint - Oracle Data Join Method.pptx [읽기 전용]

Microsoft PowerPoint - Oracle Data Join Method.pptx [읽기 전용] Special Key Note Oracle Data Join Method ( 주 ) 오픈메이드컨설팅 오동규수석컨설턴트 1 What is Join? JOIN is Multiply. 2 Why is the Join Method so important? 잘못사용하면큰재앙이따른다.( 위의그림처럼 ) 두개의집합을연결할수있는유일한수단. Join Method 는모든 DBMS

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

Query Process 단계처리내용 Parse 단계 Syntax, Security, Semantics의체크및Simple transformation 을수행한다 < 표 2>. Query Rewrite 단계서브질의와뷰의병합을수행하고, OR Expansion 작업을수행한다.

Query 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 information

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

단답형 (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 information

기술노트 49 회 SQL PLAN MANAGEMENT Author 윤병길과장 Creation Date Last Updated Version 1.0 Copyright(C) 2009 Goodus Inc. All Rights Reserved

기술노트 49 회 SQL PLAN MANAGEMENT Author 윤병길과장 Creation Date Last Updated Version 1.0 Copyright(C) 2009 Goodus Inc. All Rights Reserved 기술노트 49 회 SQL PLAN MANAGEMENT Author 윤병길과장 Creation Date 2010-06-01 Last Updated Version 1.0 Copyright(C) 2009 Goodus Inc. All Rights Reserved Contents 1. SQL PLAN MANAGEMENT OVERVIEW... 3 1.1. INTRODUCTION...

More information

PowerPoint Presentation

PowerPoint 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

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 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

Jerry Held

Jerry Held DB / TSC Oracle Database 10g (Self-Managing Database) (Common Infrastructure) (Automatic Workload Repository) (Server-generated Alerts) (Automated Maintenance Tasks) (Advisory Framework) (ADDM) (Self-Managing

More information

MS-SQL SERVER 대비 기능

MS-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 information

원장 차세대 필요성 검토

원장 차세대 필요성 검토 1. Application Architecture Layered Application 개념 Layered Application 개념도 구분 Presentation Layer Business Layer Data Layer Data Sources 내용설명 Business Layer 와 User 간 Interface 제공 Business Logic 구현 Data

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 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

OSR Analyzer Report

OSR Analyzer Report SQL 튜닝및개발가이드 1 목차 목차...2 OPTIMIZER 관련권장사항요약...4 SQL TUNING 을위한 GUIDE... 6 SQL Tuning 시주의점...6 Execution Plan 보기...7 Execution Plan 보기실행예 (9i)... 7 Instance level 에동적으로 SQL_TRACE Enable/Disable... 8 9iR2

More information

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

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 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 information

배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (

배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 ( 배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 ( 이후배치프로그램 ) 에대한성능문제를파악하기위해수행되는모든 SQL 에대한개별수행내역을정확히판단할수있어야한다.

More information

초보자를 위한 분산 캐시 활용 전략

초보자를 위한 분산 캐시 활용 전략 초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE 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 information

untitled

untitled PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 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

最即時的Sybase ASE Server資料庫診斷工具

最即時的Sybase ASE Server資料庫診斷工具 TOAD 9.5 Toad Oracle 料 SQL 料 行 理 SQLprofile Quest Software 了 Oracle -Toad Tools of Oracle Application Developers Toad 了 DBA DBA 理 易 度 Toad 料 SQL PL/SQL Toad Oracle PL/SQL Toad Schema Browser Schema Browser

More information

NLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해,

NLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해, NLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해, 사용자들이큰혼란을겪기는경우도발생된다. 그 대표적인예로는 GROUP BY 가 SORT GROUP

More information

SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 )

SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 ) SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 ) 이많기때문에, 실행계획생성시 SQL 의 Cost 를잘못계산하여최적의실행계획을세우지못하는경우가발생한다.

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & 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 information

MaxGauge( 맥스게이지 ) 를이용한 SQL 모니터링, 진단 / 분석및튜닝가이드 엑셈

MaxGauge( 맥스게이지 ) 를이용한 SQL 모니터링, 진단 / 분석및튜닝가이드 엑셈 MaxGauge( 맥스게이지 ) 를이용한 SQL 모니터링, 진단 / 분석및튜닝가이드 엑셈 I. MAXGAUGE 소개및기대효과 II. 개발단계에서의튜닝프로세스확립 III. 테스트 ( 단위 / 부하 ) 단계에서의악성 SQL 검출및진단방안 Ⅳ. 운영단계에서의 Top-SQL 검출및진단방안 Ⅰ. Maxgauge 소개및기대효과맥스게이지란? MaxGauge( 맥스게이지

More information

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따 Commit Wait Class 대기시간감소방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 Wait Class 중 Commit 카테고리에해당하는 Wait Event 에의한대기현상으로 DB 시스템의성능저하현상이발생하는것은종종경험할수있다. 그중대표적인 Wait Event 는 Log File Sync 이다. 실제로대부분의 DB 시스템의 Top 5 Wait Event

More information

DB 성능고도화핵심원리 비투엔컨설팅 수석컨설턴트 조시형

DB 성능고도화핵심원리 비투엔컨설팅 수석컨설턴트 조시형 DB 성능고도화핵심원리 비투엔컨설팅 수석컨설턴트 조시형 원리를알아야답이보인다!! SQL 개발자 (Developer) 데이터모델을통해업무를이해하고, SQL 을정확히구사하는능력 DB 성능고도화전문가양성 SQL 전문가 (Professional) 성능을고려한고급 SQL 작성능력 DB 성능고도화핵심원리실습문제 declare l_ 수납금액 number; begin for

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 information

슬라이드 1

슬라이드 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 information

The Self-Managing Database : Automatic Health Monitoring and Alerting

The Self-Managing Database : Automatic Health Monitoring and Alerting The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG

More information

62

62 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 information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

Microsoft Word - 04_EXCEPTION.doc

Microsoft Word - 04_EXCEPTION.doc ORACLE EXCEPTION INTRODUCTION PLSQL 블록이 PARSE 되는동안에발생되는에러를컴파일에러 (Compilation Error) 라고부르며, PLSQL 블록이실행되는동안에발생되는에러를런타임에러 (Run-Time Error) 라고부르는데, 이런타임에러를오라클에서는예외 (Exception) 라고부른다. 오라클의예외 (Exception) 는크게두가지로구분된다.

More information

(Microsoft PowerPoint - 5\300\345.\271\256 \303\263\270\256\(8\301\266\).ppt)

(Microsoft PowerPoint - 5\300\345.\271\256 \303\263\270\256\(8\301\266\).ppt) 이펙티브오라클 제 5 장문처리 1. 수정 DML의시작과끝 2. DDL 처리 3. 바인드변수의사용 4. 가능한한적게파싱하기 5. 요약 강정식 ( xsofter@empal.com ) 이문서는 Oracle Club 데이터베이스스터디모임에서작성하였습니다. 1 1. 수정 DML의시작과끝 Page 369 ~ 371 1.1 수정 DML 문 (INSERT, DELETE,

More information

Intra_DW_Ch4.PDF

Intra_DW_Ch4.PDF The Intranet Data Warehouse Richard Tanler Ch4 : Online Analytic Processing: From Data To Information 2000. 4. 14 All rights reserved OLAP OLAP OLAP OLAP OLAP OLAP is a label, rather than a technology

More information

JDBC 소개및설치 Database Laboratory

JDBC 소개및설치 Database Laboratory JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }

More information

대량의 DML 작업에대한성능개선방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 대량의데이터를변경해야하는작업은그자체만으로도큰부담으로다가온다. 하지만변경작업자체에만국한되는것이아니라변경되기전데이터와변경이후데이터를각각저장관리해야하는메커니즘이라면성능을개선해야하는입장에서는더욱큰부담

대량의 DML 작업에대한성능개선방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 대량의데이터를변경해야하는작업은그자체만으로도큰부담으로다가온다. 하지만변경작업자체에만국한되는것이아니라변경되기전데이터와변경이후데이터를각각저장관리해야하는메커니즘이라면성능을개선해야하는입장에서는더욱큰부담 대량의 DML 작업에대한성능개선방안 엑셈컨설팅본부 /DB 컨설팅팀박준연 개요 대량의데이터를변경해야하는작업은그자체만으로도큰부담으로다가온다. 하지만변경작업자체에만국한되는것이아니라변경되기전데이터와변경이후데이터를각각저장관리해야하는메커니즘이라면성능을개선해야하는입장에서는더욱큰부담일것이다. 말그대로대량의데이터를변경해야하는작업의특성상 SQL Tuning 만으로성능을개선할여지는많지않을뿐더러개선을한다하더라도극적인효과를기대하기는어렵다.

More information

untitled

untitled (shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,

More information

오라클옵티마이저의기본원리

오라클옵티마이저의기본원리 Oracle Technical Note 오라클옵티마이저의기본원리 현재모든관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 개발자나관리자들이이옵티마이저의기본동작원리를이해한다면, 여러면에서도움이되리라는생각에이글을쓰게되었다. 먼저, 옵티마이저에대한기본적인이해를구한다음, 오라클옵티마이저에대해알아보도록한다. 본론에앞서, 이글은관계형데이타베이스개념에일정정도익숙한독자들을대상으로작성되었기때문에,

More information

Oracle Wait Interface Seminar

Oracle Wait Interface Seminar 1 대용량 DBMS 의효율적인 모니터링및성능관리방안 Copyrights 2001~2007, EXEM Co., LTD. All rights reserved. 목차 2 1. 성능문제와 OWI 분석방법론 2. OWI 구성요소 3. Latch & LOCK 4. Oracle I/O 5. Cache Buffer 3 성능문제와 OWI 분석방법론 성능지연사례 1) 평소에

More information

ALTIBASE HDB Patch Notes

ALTIBASE 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 information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 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 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;

객관식 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 information

Microsoft PowerPoint - 1_3_DBA_SQL_tuning

Microsoft 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 information

그리고.. 엑셀에하나둘완료된쿼리가늘어날때마다... 희열을느낀다... 이글을보는당신은어떻게할것인가? A 군의판단이잘못된것인가? 잘못된판단이아니다최선의판단이다... 11g 전까지는... 11g New Feature 인 Pending Statistics 를 SPA 와함께사용

그리고.. 엑셀에하나둘완료된쿼리가늘어날때마다... 희열을느낀다... 이글을보는당신은어떻게할것인가? A 군의판단이잘못된것인가? 잘못된판단이아니다최선의판단이다... 11g 전까지는... 11g New Feature 인 Pending Statistics 를 SPA 와함께사용 SPA(SQL Performance Analyze) 를이용한통계정보 수집 엑셈컨설팅본부 /DB 컨설팅팀오경렬 1. SPA 란? SPA(SQL Performance Analyze) 는 RAT(Real Application Testing) 서비스의옵션중에하나 이다. 본문서는 SPA 를이용해좀더안정적으로통계정보를생성하는 Process 에대해다룬다. 2. 통계정보와

More information

Oracle9i Real Application Clusters

Oracle9i Real Application Clusters Senior Sales Consultant Oracle Corporation Oracle9i Real Application Clusters Agenda? ? (interconnect) (clusterware) Oracle9i Real Application Clusters computing is a breakthrough technology. The ability

More information

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 언어 변환 1.4. 기대 효과 4.4. 프로그램 Restructuring 4.5. 소스 모듈 관리 2. SeeMAGMA 적용 전략 2.1. SeeMAGMA

More information

PostgreSQL 2 Uniersity of California at Berkeley ( ) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1

PostgreSQL 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

Oracle Magazine 2003 summer

Oracle Magazine 2003 summer 관계형 DBMS 옵티마이저의 한계와해결방안 글 이상원 < 성균관대학교교수 > swlee@ex-em.com 030 ORACLE KOREA MAGAZINE :: TECHNOLOGY :: 관계형 DBMS의두뇌역할을담당하는비용기반옵티마이저 (Cost Based Optimizer : CBO) 의근본적인한계들을정확히아는것은필요한경우에 SQL의정확한튜닝을위해서반드시필요하다.

More information

Microsoft Word - 05_SUBPROGRAM.doc

Microsoft Word - 05_SUBPROGRAM.doc ORACLE SUBPROGRAM INTRODUCTION PLSQL 은오라클에서제공하는프로그래밍언어이다. 이는데이터베이스언어인 SQL 과함께효과적으로데이터베이스에접근할수있는방법을제공하고있다. Procedural LanguageSQL 의약자에서볼수있듯이절차적인기능을기본적으로가지는프로그래밍언어이다. PLSQL 은기본적으로블록 (BLOCK) 구조를가지고있다. 블록의기본적인구성은선언부

More information

PowerPoint Presentation

PowerPoint 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 information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

0. Intro ORACLE 社 Oracle, My SQL, Exadata IBM 社 DB2, Informix SAP 社 ASE, IQ, ASA Microsoft 社 SQL Server Teradata 社 Teradata 공통점은? Altibase 社 Altibase

0. 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

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Tablespace On-Offline 테이블스페이스 온라인/오프라인 2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

´ÙÁß Row °á°ú¸¦ ´ÜÀÏÇàÀ¸·Î Äĸ¶·Î ºÐ¸®ÇØ Ãâ·ÂÇÏ´Â ¹æ¹ý

´ÙÁß 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 information

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1

More information

<4D F736F F D203033C6C4C6BCBCC72DB8AEBFC0B1D7B9E6B9FD2E646F63>

<4D F736F F D203033C6C4C6BCBCC72DB8AEBFC0B1D7B9E6B9FD2E646F63> Reviewed by Oracle Certified Master Korea Community ( http:www.ocmkorea.com http:cafe.daum.netoraclemanager ) 1.1.1 파티션테이블에서사용할수있는리오그방법파티션 level 의 importexport 방법을이용해파티션테이블중특정파티션 ( 혹은서브파티션 ) 만을선택적으로리오그할수있다.

More information

Simplify your Job Automatic Storage Management DB TSC

Simplify your Job Automatic Storage Management DB TSC Simplify your Job Automatic Storage Management DB TSC 1. DBA Challenges 2. ASM Disk group 3. Mirroring/Striping/Rebalancing 4. Traditional vs. ASM 5. ASM administration 6. ASM Summary Capacity in Terabytes

More information

ETL_project_best_practice1.ppt

ETL_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

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

슬라이드 1

슬라이드 1 효율적인성능관리와품질강화전략 WareValley Database Audit and Protection [ DB 접근통제 ] Database Encryption [ DB 암호화 ] Database Vulnerability Assessment [ DB 취약점분석 ] Database SQL Query Approval [ DB 작업결재 ] Database Performance

More information

SQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을

SQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을 SQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을통해서수행된다. 데이터베이스운영시평소잘수행되던 SQL 이성능이슈를발생시키는때가있는데, 그원인이

More information

Portal_9iAS.ppt [읽기 전용]

Portal_9iAS.ppt [읽기 전용] Application Server iplatform Oracle9 A P P L I C A T I O N S E R V E R i Oracle9i Application Server e-business Portal Client Database Server e-business Portals B2C, B2B, B2E, WebsiteX B2Me GUI ID B2C

More information

USER GUIDE

USER 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 information

歯PLSQL10.PDF

歯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 information

ALTIBASE HDB Patch Notes

ALTIBASE 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 information

5장 SQL 언어 Part II

5장 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

슬라이드 1 2015( 제 8 회 ) 한국소프트웨어아키텍트대회 Database In-Memory 2015. 07. 16 한국오라클 김용한 Agenda 1 2 3 4 5 6 In-Memory Computing 개요주요요소기술 In-Memory의오해와실제적용시고려사항 12c In-Memory Option의소개결론 2 1. In-Memory Computing 개요 전통적인데이터처리방식

More information

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D> VHDL 프로그래밍 D. 논리합성및 Xilinx ISE 툴사용법 학습목표 Xilinx ISE Tool 을이용하여 Xilinx 사에서지원하는해당 FPGA Board 에맞는논리합성과정을숙지 논리합성이가능한코드와그렇지않은코드를구분 Xilinx Block Memory Generator를이용한 RAM/ ROM 생성하는과정을숙지 2/31 Content Xilinx ISE

More information

91 // 물리적으로닫지않고 cache에반환만한다. opstmt.close(); } opstmt.setint(3, lowerlimit); opstmt.setint(4, upperlimit); // Execute query rset = opstmt.executequery

91 // 물리적으로닫지않고 cache에반환만한다. opstmt.close(); } opstmt.setint(3, lowerlimit); opstmt.setint(4, upperlimit); // Execute query rset = opstmt.executequery 90 2007 Spring Oracle Korea Magazine *Technology & Developer Technical Tips Oracle JDBC 를이용한성능향상방법쉽게적용할수있는예제들 저자 _ 김정식 Oracle ACE(oramaster@empal.com) JAVA 기반의웹프로젝트를진행하다보면대부분의개발자분들이사용하는 JDBC API들은제한적인것같다.

More information

6주차.key

6주차.key 6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running

More information

ARMBOOT 1

ARMBOOT 1 100% 2003222 : : : () PGPnet 1 (Sniffer) 1, 2,,, (Sniffer), (Sniffer),, (Expert) 3, (Dashboard), (Host Table), (Matrix), (ART, Application Response Time), (History), (Protocol Distribution), 1 (Select

More information

세미나(장애와복구-수강생용).ppt

세미나(장애와복구-수강생용).ppt DB PLAN Consultant jina6678@yahoo.co.kr 011-864-1858 - - 1. 2. DB 3. - 4. - 5. 6. 1 INSTANCE MMAN RECO RFS MRP ORBn RBAL MMON Dnnn Snnn Data Buffer Cache SGA Stream Pool Shared pool Large Pool PGA Log

More information

PowerPoint Presentation

PowerPoint Presentation Toad for Oracle 추가옵션 - DB Admin Module - Quest Software Korea 2017. 토드커뮤니티 : www.toad.co.kr 토드 (Toad) 확장프로모션 추가비용없이토드확장모듈 (DB Admin Module) 제공 개발자, DBA, 데이터추출업무등모든사용자업무생산성향상 오라클데이터베이스활용능력향상 그동안사용하지못했던토드의고급유틸리티활용

More information

10.ppt

10.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

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc 특정 Column 통계정보갱신가이드 유니원아이앤씨 DB 사업부이대혁 2015 년 03 월 02 일 문서정보프로젝트명서브시스템명 버전 1.0 문서명 특정 Column 통계정보갱신가이드 작성일 2015-03-02 작성자 DB사업부이대혁사원 최종수정일 2015-03-02 문서번호 UNIONE-201503021500-LDH 재개정이력 일자내용수정인버전 문서배포이력

More information

PowerPoint Presentation

PowerPoint 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 information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770> 제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 CRM Fair 2004 Spring Copyright 2004 DaumSoft All rights reserved. INDEX Copyright 2004 DaumSoft All rights reserved. Copyright 2004 DaumSoft All rights reserved. Copyright 2004 DaumSoft All rights reserved.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Dell Software To ad 주요제품소개 Toad for Oracle Base Suit e DBA Edition DBA Edition + Spotlight 개발 Project License Base Edition Professional Edition Xpert Edition Development Suit e DBA Suit e DBA Suit e RAC

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information