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

Size: px
Start display at page:

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

Transcription

1 Oracle Optimizer 의원리이해및 SQL & 애플리케이션의튜닝 ( 상 ) 옵티마이저의원리와특징 글 최세훈 ( 한국오라클 Tech Sales Consulting 본부 DB Tech 팀 ) sehoon.choi@oracle.com 다수의데이타베이스튜닝과 SQL / 애플리케이션튜닝을통해튜닝의효과를확신하는필자가유익한튜닝정보를제공한다. 여기에서필자는 SQL 문장개별단위의튜닝보다는우선옵티마이저의원리를이해하고, 전체구조적인문제, 유형문제또한옵티마이저관련파라미터의설정이먼저최적으로설정된상황하에서 SQL 문장의단위플랜에대한튜닝이이루어져야한다고강조한다. 그런취지에서이글에서는옵티마이저의원리에대한이해를기반으로 SQL 및애플리케이션튜닝에필요한기본지식을개발자와 DBA가쉽게이해할수있도록 2회에걸쳐소개할예정이다. 옵티마이저의질의처리단계에대한이해오라클에서사용하는옵티마이저 (Optimizer) 는크게RBO(Rule Base Optimizer) 와 CBO(Cost Base Optimizer) 2개로구분된다. 1992년 Oracle 7에서처음 CBO가지원된이래새로운기능들이적용되면서 CBO가계속향상되고있는데반해, RBO는오라클이더이상은추구하지않는옵티마이저로서, 현재의 Oracle Database 10g에서도명맥은남아있지만향후는더이상지원되지않을것이다. 옵티마이저의입장에서질의 (query) 처리는 5단계로나눌수있는데, 옵티마이저는서브질의와뷰의병합 (merge) 등을수행하는 Query Rewrite 단계와 Query Optimization 단계에참여한다. 여기서옵티마이저는 데이타를어떠한방법으로액세스할것이며 올바른결과를어떻게제공할것이며 데이타를얼마나효과적으로액세스할것인가를결정한다. QEP Generation 단계는 Query Optimization 단계에서제공된정보를이용해서질의에대한최적의실행계획 (execution plan) 을만들어내는단계이다. CBO에서는질의실행계획 (QEP) 을구하기위하여 RBO보다복잡한단계를거치게된다 < 그림 1>, < 표 1>. 소프트파싱과하드파싱 < 그림 1> 질의처리단계와옵티마이저의역할 SQL 문장이옵티마이저에의해처리되고그결과물로서, SQL 문장이어떻게실행될것인지의정보, 즉, QEP가생기게된다. 이들정보는한번쓰고버리는것이아니라오라클의캐쉬 (cache) 영역인 SGA의공유풀 (shared pool) 에이들모든정보를캐쉬화해관리한다. 다음번에같은 SQL 문장이사용자에의해서실행되면, 이를재활용하게된다. SQL 문장이실행되면, 우선 SQL 문장텍스트의스트링을해쉬함수을통과시켜결과값에해당되는버킷 ( 어레이형구조 ) 에매달린체인정보에 098 ORACLE KOREA MAGAZINE

2 Query Process 단계처리내용 Parse 단계 Syntax, Security, Semantics의체크및Simple transformation 을수행한다 < 표 2>. Query Rewrite 단계서브질의와뷰의병합을수행하고, OR Expansion 작업을수행한다. 서브질의와뷰병합이란, 옵티마이저가더욱효과적인 QEP를찾기위하여더효과적인플랜이있는지그가능성을확인하는과정이다 < 표 3>. Optimization 단계질의에대한액세스경로를결정한다. QEP Generation 단계질의를실행하는데필요한상세한정보를만들며, 이를질의실행계획 (QEP : Query Execution Plan) 이라고한다. 질의실행계획 (QEP) QEP는시리얼플랜 (serial plan) 과패러렐플랜 (parallel plan) 이있다. 시리얼플랜이란질의에대해서병렬성이적용되지않은플랜이며, 패러렐플랜이란질의에대해서병렬로실행할정보를생성해내는것이다. 경우에따라서시리얼플랜만생성하거나, 시리얼과패러렐플랜을동시에생성하기도한다. 오라클의시리얼플랜은질의가병렬로수행할정보가없을경우, 즉테이블의 Degree이나힌트등이없는경우는시리얼플랜만만들게되며, 병렬성이적용될경우시리얼플랜과패러렐플랜을모두만들게된다. 오라클의시리얼플랜을 RSO(Row Source Operator) Tree라하며, 패러렐플랜을 DFO(Data Flow Operator) Tree라고한다. 이들 QEP로병렬로실행하려고하나실행시리소스의부족으로원하는 Degree으로병렬적으로실행할수없는경우RSO Tree를쓰기도한다. Query Exectution 단계 QEP에따라SQL 문장을실행한다. < 표 1> 질의처리단계별역할 Example Expression (from) Transformation (to) ename LIKE WARD ename= WARD ename IN ( KING, WARD ) ename= KING OR ename= WARD ename=any/some( KING, WARD ) ename= KING OR ename= WARD deptno!= ALL(10,20) deptno!= 10 AND deptno!= 20 sal BETWEEN 2000 and 3000 sal >= 2000 AND sal <= 3000 NOT(sal<1000 OR comm is null) sal >= 1000 and comm is not null < 표 2> 간단한변형 (simple transformations) 의예서같은SQL 문장이존재하는지찾는처리절차를수행하게된다. 또한같은 SQL 문장을찾았어도여러버전이존재할수있다. 여러버전이란, 같은 SQL 문장 ( 대 / 소문자, 화이트스페이스등이모두같아야함 ) 이지만서로다른스키마의테이블 ( 예, scott의 emp, sys의 emp) 이거나, 바인드변수를사용한경우는바인드변수의타입, 길이등에의해서도서로다른버전 뷰병합예 Example Expression (from) View Merging (to) create view emp_d10 as select empno from emp select * from emp where deptno=10; where deptno = 10 and empno > 11910; select empno from emp_d10 Where empno>11910 서브질의병합예 (Single Row Sub-Query) Example Expression (from) Sub-Query Merging (to) select... from dept where select... from dept deptno = (select deptno from emp where deptno = <evaluated_value>; where empno < 12501); < 표 3> 서브질의와뷰의병합예이된다는것이다. 이와같이같은 SQL 문장에같은버전을찾았다면이를 소프트파싱 (soft parsing) 이라고한다. 그렇지만, 체인을다찾았는데같은문장을발견하지못했다면, 해당 SQL 문장이 Parsing/Optimizing 단계를거친결과로나온정보를저장하기위해공유풀로부터메모리를확보받고, 기록한정보를체인에매달게된다. 이를 하드파싱 (hard parsing) 이라고한다. 당연히하드파싱의작업량이소프트파싱의작업량에비해월등히클것이다 < 그림 2>. 이와같은소프트파싱과하드파싱의과정을생각해볼때, 집중적인 SQL 문장이실행되는 OLTP( 초당수천 ~ 수만개이상 ) 에서하드파싱이많다면어떻게될까? 한정된메모리인캐쉬에새로운메모리를계속할당하고, LRU 알고리즘에의해제거하고, 체인에매달고끊는등의일들을반복해야할것이다. 또한하드파싱은복잡한처리과정을거치므로많은자원 (CPU) 을사용하게된다. 그러므로 OLTP 환경에서는이와같은하드파싱을가능한줄이도록해야한다. 특히 SQL 실행규모가큰 OLTP 업무는 1% 미만을권장한다. 애플리케이션을개발할때이러한하드파싱을줄이기위한방법으로거의대부분의데이타베이스접속방식 (JDBC, ODBC, ADO, PRO*C 등 ) 에서자주사용되는 SQL 문장들은바인드변수기법들을사용하여개발하는방법들을제공하고있다. 또한일부에서는소프트파싱자체도줄일수있는기법들을제공하고있다. 실제이러한기법을적용해서튜닝한결과, 시스템 CPU/ 메모리측면에서 40~50% 이상개선된사례가많이있다. 혹시현재운영중인시스템이사용자가많아지면서 CPU 리소스가급격히증가해, 라이브러리캐쉬, 공유풀경합현상이발생한다면, 이러한점을의심해볼수있다. < 표 4> 는 SQL 문장을바인드변수를사용한공유 SQL과, 상수를결합한형태로 SQL 문장을만들어실행시키는비공유 SQL을 9,999회실행시켜오라클의공유풀메모리사용현황과파싱시 CPU 사용시간을테스트한것이다 ( 단, 그결과치는실행서버별로차이가있다 ). 결론적으로보면, 비공유 SQL 방식의사용메모리와 CPU 사용률이 2005 WINTER 099

3 - 파싱타임을최소화하고 SQL 등이공유될수있도록바인드변수를사용해야한다. - 인덱스의사용률이높아야한다. - 정렬 (sorting) 을최소화해야한다. - Nested Loop Join(FIRST_ROWS_n) 방식으로많이유도한다. < 그림 2> SQL 문장의파싱된정보를찾기위한라이브러리캐쉬검색절차실행규모에비례해증가하고, 실행된 SQL 문장이기존에캐쉬화되어있는 SQL 문장들을밀어내는역할을한다는것을알수있다. 이와같은 SQL 문장을공유하기위해서오라클입장에서처리해주는 CURSOR_SHARING이라는파라미터를제공하기도한다. 그러나, CURSOR_SHARING은모든상수를다바인드변수로바꿔버리기때문에개발자가의도하지않은 Literal까지도바꾸게되므로, 애플리케이션을수정할수있다면가능한애플리케이션단에서바인드변수를사용하는것이효과적이다. 하드파싱을줄이기위해모든업무에바인드변수사용방법을적용하는것은잘못된생각이다. 옵티마이저의입장에서보면, 바인드변수기법보다는 Literal을사용한비공유 SQL 방식을좋아한다. Literal SQL 문장일경우는상수값에따라서범위를정확히알수있기때문에효과적인플랜을결정하는주요결정요소로작용하기때문이다. 즉바인드변수기법은옵티마이저의판단에는좋지않지만 SQL 문장이집중적으로실행되는 OLTP 환경에서하드파싱의비율을줄이기위한방법인것이다. 즉, 업무의특징에따라서다른적용방식이사용되어야한다. 다음은 OLTP와 DW 의특징에따라다르게고려되어야할사항이다. OLTP의특징 - 목표 : 신속한응답시간, 적은데이타처리량 DW의특징 - 목표 : 최고의처리량, 방대한데이타처리량 - 인덱스의참조는중요한사항이아니다. - 정렬또는 Aggregate함수등이중요한역할을한다. - Hash Join 등을많이사용하도록유도한다. - 파싱타임등은그리중요하지않으며, 바인드변수의사용이문제가될수있다. - 병렬질의등의사용률을높인다. Rule Base Optimizer 질의최적화 (query optimization) 에서 RBO(Rule Base Optimizer) 는정해진랭킹 (ranking) 에의해플랜을결정한다. 같은랭킹이라면 Where 절의뒤부터, From절뒤의객체가우선순위를갖는다. 한객체 ( 예 : 테이블 ) 에서같은랭킹의인덱스가있다면가장최근에만들어진인덱스를사용한다. 이는 CBO(Cost Base Optimizer) 에서도같이적용되는사항이다. 다분히 RBO는개발자들이프로그래밍단계에서 SQL 문장구조의인위적인조정등으로인덱스를사용못하게하는등개발자가코딩에신경을많이써야하는문제점이있다. 또한 RBO는해당질의에대한테이블의인덱스가존재한다면전체 90% 이상의대상이어도인덱스를선택한다는것이다. 즉, RBO는무조건다음과같은미리정해진룰을기준으로플랜을결정하게된다. 1992년 Oracle 7에서 CBO가지원되면서 CBO는계속적인신기능의적용으로발전해온반면, RBO는더이상의기능향상은없으며, 향후는 CBO만지원될계획이다. 그러므로 RBO에더이상의미련을갖지말기바라며, CBO의훌륭한기능들을적극활용하길바란다. 다음은 RBO의랭킹을정리한것이다. SQL 유형 공유풀의메모리사용 하드파싱수 실행수 파싱 CPU 사용률 공유 SQL select ename from emp where empno = :1 9, , sec 비공유 SQL select ename from emp where empno = 1 93,219,148(92MB) 9,999 9, sec select ename from emp where empno = 2 select ename from emp where empno = < 표 4> 공유 SQL과비공유 SQL의비교 100 ORACLE KOREA MAGAZINE

4 Path 1 : Single Row by Rowid Path 2 : Single Row by Cluster Join Path 3 : Single Row by Hash Cluster Key with Unique or Primary Key Path 4 : Single Row by Unique or Primary Key Path 5 : Clustered Join Path 6 : Hash Cluster Key Path 7 : Indexed Cluster Key Path 8 : Composite Index Path 9 : Single-Column Indexes Path 10 : Bounded Range Search on Indexed Columns Path 11 : Unbounded Range Search on Indexed Columns Path 12 : Sort-Merge Join Path 13 : MAX or MIN of Indexed Column Path 14 : ORDER BY on Indexed Column Path 15 : Full Table Scan 특히 Path 8, 9, 10에주의를해야한다. 예를들면, emp 테이블에 A 인덱스가 deptno 로구성되어있고, B 인덱스가 deptno + empno 로구성되어있다면, 다음과같은 SQL 문장은 A 인덱스를사용하게된다. 조건이 Bounded Range Search(Between) 로왔기때문에아래의 SQL 문장에서 (A) 와 (B) 의랭킹은 (A) ==> Rank 9, (B) ==> Rank 10 조건이되므로싱글칼럼인덱스를사용한다는것이다. select /*+ rule */ * from emp where deptno = 10 and empno between 7888 and 8888; A B 그러면, 이제 CBO에대해살펴보기전에, 참고로 RBO를 CBO로전환한사례를잠깐소개하겠다. 현재 RBO를사용하고있는상황에서마이그래이션시 CBO로전환하고싶으나, 막연히두려운부분도많을것이다. 실제 RBO에서 CBO로전환하고나서가장효과를보는부분은배치잡형태이다. 특히 Oracle9i Database 이상의 WORKAREA_SIZE_POLICY=AUTO로운영하는곳이라면더욱더그럴것이다. 그러나 OLTP의변화는조심해야한다. 아래의경우는, 이전하면서옵티마이저모드를 RBO에서 CBO로전환한것뿐만아니라, 블록사이즈와 CBO 옵티마이저에민감한 db_file_multi block_read_count 값도크게늘렸다. 특히 WORKAREA_SIZE_ POLICY=AUTO로필요한워킹메모리 (Sort, Hash, Bitmap 등 ) 를옵티마이저가판단하에가능한충분히사용하게하는방식을사용하였다. 그러다보니, CBO에영향을주는소트메모리와해쉬메모리가풍부하게되었고, 블록사이즈도커졌으며, 풀테이블스캔의정도를결정하는 db_file_multiblock_read_count 값도아주커진상태이다. 또한마이그래이션되면서데이타가재정리되어있는상태이므로, 풀테이블스캔과 Sort Merge Join, Hash Join의경향이커진상태이다. 그러므로배치잡의 경우는최적의조건이되었으나, 기존에주로 Nested Loop Join을선호하던 RBO 환경의 OLTP들은많은플랜의변화에직면하게된다. 그러면이러한부분을어떻게보정해줄것인가? optimizer_index_caching, optimizer_index_cost_adj의파라미터가그해답일것이다. 가능한 Nested Loop Join를선호하고, CBO의옵티마이저모드가인덱스에점수를더주어서인덱스의비중을키울수가있는것이다. 물론이러한전환형태말고옵티마이저모드를 FIRST_ROWS_n으로운영하거나, 아웃라인을이용하는방법등도있을것이다. 여러방법이있겠지만, 필자는아래와같은방법을선호한다. 다음은마이그래이션시 RBO에서 CBO로전환한사례이다. Oracle 7 --> Oracle 9 (RBO to CBO 전환사례 ) db_block_size : 2KB --> 8KB db_file_multiblock_read_count : 8 --> 32 optimizer_mode : RULE --> CHOOSE hash_join_enabled : FALSE --> TRUE workarea_size_policy : AUTO (New) optimizer_index_caching : 80 (New) optimizer_index_cost_adj : 20 (New) Cost Base Optimizer 질의최적화에서 CBO(Cost Base Optimizer) 는해당 SQL 문장이참조하고있는객체들 ( 테이블, 인덱스등 ) 에대한수집된통계정보 (statistics) 의값과데이타베이스파라미터 (init.ora) 설정값을기초로가장적은비용 (cost) 이발생되는플랜을결정하는옵티마이저방식이다. 여기서중요한사실은 RBO에서는전혀사용되지않았던통계정보를 CBO에서는이용한다는것이다. 이들통계정보는 DBA에의해서또는자동수집기능 (Oracle9i Database Release 2, Oracle Database10g) 에의해객체들의통계정보를관리하는시스템딕셔널리 (Dictionary) 에저장되고, 이정보를 CBO 옵티마이저가이용하는것이다. 이들정보는 SQL 문장을실행하는데얼마만큼의 I/O 횟수가발생할것인가를계산하기위한각종데이타를가지고있다. 여기서중요한사실은 I/O 크기는중요하지않으며 I/O 횟수가중요하다는것이다. 즉, CBO 옵티마이저는 SQL 문장에대한여러가지경우의수별로 I/O의횟수에비례한비용을산출해내고, 이들비용에서가장작은비용을갖는플랜을결정한다는것이다. 즉, 비용은 I/O 횟수에비례하는값이라고보면쉬울것이다. 그러나, Oracle Database 10g부터는비용의단위기준이 I/O에서처리시간으로바뀌었다 (time base). 또한 Oracle9i Database부터시스템통계정보 (CPU, 디스크액세스타임 ) 를이용해서 I/O로환산한방식을제공하였으나, 이것은단지옵션이었다. 그러나, Oracle Database 10g부터는 2005 WINTER 101

5 시스템통계정보 (CPU, 디스크액세스타임 ) 를이용해서처리시간으로환산한방식을디폴트로사용하므로상당히정확한플랜을만들어내며, 실행예측시간도상당히정확하다. 그러면, 여기서잠깐 CBO에서사용되는통계정보가저장된 Dictinary 정보예를참고로살펴보자. [USER ALL DBA]_TABLES : Table의통계정보 NUM_ROWS,BLOCKS,AVG_ROW_LEN,SAMPLE_SIZE,LAST_ANALYZED [USER ALL DBA]_INDEXES : Index의통계정보 BLEVEL,LEAF_BLOCKS,DISTINCT_KEYS,AVG_LEAF_BLOCKS_PER_KEY, AVG_DATA_BLOCKS_PER_KEY,CLUSTERING_FACTOR,NUM_ROWS,SAMPLE_SIZE, LAST_ANALYZED [USER ALL DBA]_TAB_COLUMNS : Column의통계정보 NUM_DISTINCT,LOW_VALUE,HIGH_VALUE,DENSITY,NUM_NULLS,NUM_BUCKETS, LAST_ANALYZED,SAMPLE_SIZE,AVG_COL_LEN [USER ALL DBA]_TAB_HISTOGRAMS : Column의Data 분포도정보 TABLE_NAME,COLUMN_NAME,ENDPOINT_NUMBER,ENDPOINT_VALUE, ENDPOINT_ACTUAL_VALUE 기타파티션 / 클러스터등에대한통계정보그러면 select * from dept where deptno = 10 과같은SQL 문장을실행해야한다고가정하자. 여기서 dept Table은 deptno에대한인덱스가있고, 테이블은전체 10 블록으로구성되어있으며, 풀테이블스캔일경우 I/O 단위를결정하는파라미터는 DBA가 db_file_multiblock_ read_count=8로지정하여운영하고있다고가정하자. 여기서 RBO라면무조건인덱스를타는플랜을결정하였을것이다. 그러나, CBO의경우는 deptno의인덱스를이용해실행하면, 3회 ( 인덱스는싱글블록단위 I/O) 의 I/O가발생한다고가정하고, 풀테이블스캔의경우는 2회 (8블록 + 2블록 ) 의 I/O가발생한다고가정하면, CBO에서는인덱스가있음에도 I/O 횟수측면에서더효과적인풀테이블스캔을선택한다는것이다. 그러므로 CBO는이와같이가능한정확한 ( 현실데이타와맞는 ) 통계정보와적절한데이타베이스의파라미터인 init.ora에의해플랜이결정되는것이다. CBO에서만가능한기능들 CBO는오라클의신기능을지원하도록지속적으로발전하고있으며, 다음의경우는반드시 CBO에서만플랜결정시검토되거나무조건 CBO로동작되는경우이다. 예를들어, 파티션테이블을사용한다면통계정보가없더라도무조건 CBO로동작된다는것이다. Partitioned tables (*) Index-organized tables Reverse key indexes Function-based indexes SAMPLE clauses in a SELECT statement (*) Parallel execution and parallel DML Star transformations Star joins Extensible optimizer Query rewrite (materialized views) Progress meter Hash joins Bitmap indexes Partition views (release 7.3) Hint (*) Parallel DEGREE & INSTANCES - DEFAULT 도해당 (*) CBO의옵티마이저에영향을줄수있는파라미터예옵티마이저가플랜을수립하는데영향을줄수있는파라미터값이무엇인지를알고있는것이무엇보다중요하다. 실제옵티마이저가참조하는파라미터는 Oracle9i Database 기준으로보더라도 60여개에이른다. 특히 DBA는이들옵티마이저의파라미터설정에신중해야한다. 또한이들파라미터의효과적인설정은개발중이거나, 마이그래이션중에업무의특징을판단한다음, 해당업무에가장효과적인것을설정해야한다. 기준이잘못되면개발자들은 SQL 문장마다힌트를넣기바쁠것이고, 많은인적자원을튜닝에소모해야할것이다. 그러므로대부분의업무들이최적화되어잘운영될수있는형태로이들파라미터를바꿔가면서기준을정하는것이중요하다. 물론이들값보다도 CBO에서사용되는통계정보가중요하다는것은당연한사실이다. 오라클에서는개발장비에도운영장비에있는통계정보와같게운영할수있도록 DBMS_STATS 패키지를제공한다. 다음은질의수행시옵티마이저가플랜을수립하기위해참조한파라미터중일부이다 ( 버전마다다르다 ). OPTIMIZER_PERCENT_PARALLEL (Default = 0) Optimizer_Percent_Parallel의 Parameter는 CBO가비용을계산하는데영향을주는파라미터이다. 즉수치가높을수록병렬성을이용하여풀테이블스캔으로테이블을액세스하려고한다. 이값이0인경우는최적의시리얼플랜이나패러렐플랜을사용하며, 1~100일경우는비용계산에서객체의등급을사용한다. OPTIMIZER_MODE (Default=Choose(Oracle7 ~ Oracle9i Database),ALL_ROWS) {Choose(<=9i) Rule(<=9i) First_rows First_rows_n(> 102 ORACLE KOREA MAGAZINE

6 =Oracle9i) All_rows} 기본적인옵티마이저모드를결정한다 ( 왼쪽상자기사 옵티마이저모드의종류및특징 참조 ). 옵티마이저모드의종류및특징 HASH_AREA_SIZE, HASH_JOIN_ENABLED (Oracle Database 10g : _ hash_join_enabled=true) 위의파라미터값에따라서 Hash Join으로유도할수있다. Hash Join이가능하고해쉬메모리가충분하다면, 플랜에 Hash Join의경향이커진다. OPTIMIZER_SEARCH_LIMIT (Default = 5) 옵티마이저에게조인비용을계산할경우, From절에나오는테이블의개수에따라서조인의경우의수가있을수있으며, 옵티마이저는이들각각의경우의수에대한조인비용을계산하게된다. 물론일부예외사항은있다. 예를들어, Cartesian Production Join 등은우선순위가낮으므로뒤로미뤄질것이다. 이파라미터의값이 5일경우From절에 5개의테이블에대해서모든조인의경우의수를가지고비용을계산하게되며, 그개수는 5!=120개의경우의수에대한조인비용을계산하게되므로옵티마이저가많은시간을소모하게되므로성능에영향을미칠수도있다. SORT_AREA_SIZE, SORT_MULTIBLOCK_READ_COUNT 위의파라미터의값에따라서 Sort Merge Join으로유도할수있다. 소트메모리가충분하다면, 플랜에 Sort Merge Join의경향이커진다. DB_FILE_MULTIBLOCK_READ_COUNT 이파라미터의수치가클수록인덱스스캔보다는풀테이블스캔의비중이높아진다. 이파라미터는옵티마이저의플랜결정에민감하게영향을주는값이다. 즉, 이값이커지면풀테이블스캔과병행해서 Sort Merge Join 또는 Hash Join의경향이커진다. 인스턴스레벨 : optimizer_mode = {Choose Rule First_rows First_rows_n All_rows} 세션레벨 : 인스턴스레벨에우선 ALTER SESSION SET optimizer_mode = {Choose Rule First_rows First_rows_n All_rows} 스테이트먼트레벨 : 힌트를사용하며, 인스턴스, 세션레벨에우선 Oracle9i Database에서 FIRST_ROWS_n 옵티마이저모드가추가되었음 (N : 1, 10, 100, 1000). Oracle Database 10g에서는 CHOOSE, RULE 모드는더이상지원되지않으나, 기능은남아있다. OPTIMIZER_MODE=CHOOSE 일경우통계정보가없다면기본적으로 RBO로플랜이결정된다. 그러나, RULE, DRIVING_SITE 힌트이외의힌트가왔다면 CBO로결정된다 ( 힌트는룰의규정을깨므로 CBO로동작됨 ). Parallel Degree, Partition Table, SAMPLE절등이있으면무조건 CBO OPTIMIZER_MODE=First_rows First_rows_n All_rows일경우통계정보의존재여부와관계없이무조건 CBO로처리하려고함. 통계정보가없다면 Heuristics Value를이용하거나, Oracle9i Database 이상일경우는다이나믹샘플링의레벨에따라테이블의데이타를샘플링해서 CBO로플랜이결정된다. 그러나, 플랜이비효율적일수있다. 통계정보가있으나옵티마이저모드가 RULE일경우, 다른힌트가오지않은경우와 Parallel Degree, Partition Table, SAMPLE절등이나오지않은경우는 RBO로처리된다. OPTIMIZER_INDEX_CACHING (Default = 0) CBO가 Nested Loop Join을선호하도록조절하는파라미터, Nested Loop Join시버퍼캐쉬내에이너테이블의인덱스를캐쉬화하는비율 (%) 을지정하므로 Nested Loop Join시성능이향상되며, 옵티마이저는비용계산시이비율을반영하여 Nested Loop Join을선호하도록플랜이선택된다 (0~100). 100에근접할수록인덱스액세스경로가결정될가능성이높다. 기존의 RBO 를 CBO로전환시옵티마이저를 RBO 성향으로보정하는데효과적이다. OPTIMIZER_INDEX_COST_ADJ (Default = 100) 옵티마이저가인덱스를사용하는위주의플랜으로풀릴것인지또는가능한사용하지않을쪽으로풀릴것인지의비중을지정한다. CBO는 RBO처럼인덱스를사용하도록플랜이주로만들어지게되나, 인덱스가있다고해서 RBO처럼인덱스를이용한플랜으로처리되는것은아니다. 인덱스를이용하는플랜위주로하고자한다면 100(%) 이하를, 가능한인덱스를사용하지않고자한다면 100 이상을지정한다 (1 ~ 10000). 이파라미터는기존의 RBO를 CBO로전환시옵티마이저를 RBO의인덱스위주성향으로보정하는데효과적이다. WORKAREA_SIZE_POLICY (AUTO MANUAL) 옵티마이저가 [HASH SORT BITMAP_MERGE CREATE_ BITMAP] *_AREA_SIZE를자동으로결정하는 PGA 자동관리방식으로, 인스턴스에속한모든 PGA의메모리의합이 PGA_AGGREGATE_TARGET에서설정된메모리를가능한넘지않는범위내에서 Workarea(Sort, Hash, Bitmap 등 ) 를충분히사용하고자하는방식이다. 플랜은할당된 Workarea를가지고플랜을결정하게되므로풍부한메모리에의해 Hash Join, Sort Merge Join등을선호하는경향이높다. 내부적으로히든파라미터로 *_AREA_SIZE의값을가지고플랜을결정할수도있으나인위적인설정없이는자동할당된메모리로플랜이결정된다 WINTER 103

7 OPTIMIZER_DYNAMIC_SAMPLING (Default = 1(Oracle9i Database), 2(Oracle Database 10g)) 더나은플랜을결정하기위한목적으로더정확한 Selectivity & Cardinality 를구하기위한방법으로 0 ~ 10 레벨이있으며, 레벨이높을수록 SQL 문장의실행시점에통계정보를만들기위해테이블의데이타를샘플링하기위한추가적인 Recursive SQL이발생된다. DYNAMIC_SAMPLING(0 ~ 10) 힌트를통해서도같은기능을할수있다. 그러나내부적으로추가적인테이블액세스의비용이발생하므로 OLTP에서는주로사용하지않는다. 특히 OLTP 환경에서레벨을디폴트값이상높여놓지않도록한다. Oracle Database 10g의경우통계정보가없다면 다이나믹샘플링 이적용된다. 다음은 Oracle Database 10g의플랜및다이나믹샘플링의예이다. SQL> analyze table dept delete statistics; 통계정보가없을경우, 다이나믹샘플링기능을확인하기위해서통계정보삭제 Table analyzed. SQL> analyze table bigemp delete statistics; Table analyzed. Explain Plan으로 SQL> explain plan for 파싱처리 select * from bigemp e, dept d where e.deptno = d.deptno and d.deptno = 10; Explained. 플랜을보기위한 SQL SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT Id Operation Name Rows Bytes Cost(%CPU) Time 0 SELECT STATEMENT K 176 (6) 00:00:02 1 MERGE JOIN CARTESIAN K 176 (6) 00:00:02 * 2 TABLE ACCESS FULL DEPT (0) 00:00:01 3 BUFFER SORT K 171 (6) 00:00:02 * 4 TABLE ACCESS FULL BIGEMP K 171 (6) 00:00:02 Oracle Database 10g부터는비용중 CPU 비중및 Predicate Information (identified by operation id): 예측실행시간을확인할수있다. 2- filter( D. DEPTNO =10) 4 - filter( E. DEPTNO =10) Note 다이나믹샘플링이사용된것을 - dynamic sampling used for this statement 확인할수있다. 20 rows selected. < Dynamic Sampling에의한Recursive SQL문장예 > SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE NO_PARALLEL(SAMPLESUB) NO_PARALLEL_INDEX(SAMPLESUB) */ NVL(SUM(C1),0), NVL(SUM(C2),0) FROM (SELECT /*+ IGNORE_WHERE_CLAUSE NO_PARALLEL( E ) FULL( E ) NO_PARALLEL_INDEX( E ) */ 1 AS C1, CASE WHEN E. DEPTNO =10 THEN 1 ELSE 0 END AS C2 FROM BIGEMP SAMPLE BLOCK ( , 1) SEED (1) E ) SAMPLESUB CBO를위한통계정보운영방법통계정보는 CBO의플랜결정에사용되는객체들의물리적인구성정보를나타낸다. 즉, 테이블이몇블록으로구성되어있으며, 몇건의로우들을가지고있으며, 평균로우길이는어느정도이며, 칼럼의 Min/Max 값의분포, Distinct 값, 인덱스의레벨, 키 (key) 당 Leaf Block 수등의정보들을나타낸다. 이들정보는 CBO의플랜결정의기초자료로사용된다. 이들통계정보를생성하기위해서는 ANALYZE 명령어를이용하거나 DBMS_STATS 패키지를이용하면된다. 그러나 2개의차이점에주의해야하며, DBMS_STATS를지원하는 Oracle8i Database 이상부터는 DBMS_STATS를사용하기를권장하고있다. Analyze 명령어와 DBMS_STATS의차이점 Analyze는 Serial Statistics Gathering 기능만있는반면, DBMS_STATS은 Parallel Gathering 기능이있다. Analyze는파티션의통계정보를각파티션테이블과인덱스에대해서수집하고, Global Statistics는파티션정보를가지고계산하므로, 비정확할수있다. 그러므로파티션또는서브파티션이있는객체에는 DBMS_STATS을사용하여야한다. DBMS_STATS은전체클러스터에대해서는통계정보를수집하지않는다. 그러므로 Analyze를사용한다. DBMS_STATS은 CBO와관련된통계정보만을수집한다. 즉, 테이블의 EMPTY_BLOCKS, AVG_SPACE,CHAIN_CNT 등은수집되지않는다. DBMS_STATS은사용자가지정한통계정보테이블에수집된통계정보를저장할수있고, 딕셔너리로각칼럼, 테이블, 인덱스, 스키마등을반영할수있다. DBMS_STATS은 IMPORT/EXPORT 기능및추가적인기능이많다. 이기능을이용하여운영 DB의통계정보를개발장비의통계정보로복사할수있으므 104 ORACLE KOREA MAGAZINE

8 로개발장비의플랜을운영장비와같게만들수있다 ( 매뉴얼참조 ). 다음은 Analyze 명령어에만있는기능이다. SQL> EXECUTE dbms_stats.gather_system_stats(gathering_mode => START ); PL/SQL procedure successfully completed. >>>> 이시기동안발생된워크로드를분석해서 aux_stats$ 에반영시킴. Structural Integrity Check 기능 analyze { index/table/cluster } (schema.){ index/table/cluster } validate structure (cascade) (into schema.table); SQL> EXECUTE dbms_stats.gather_system_stats(gathering_mode => STOP ); 시스템통계정보수집의시작과종료. 시스템이사용되는시기에일정시간수집한다. PL/SQL procedure successfully completed. Chained Rows 수집기능 ANALYZE TABLE order_hist LIST CHAINED ROWS INTO <user_tab>; 시스템통계정보 (>= Oracle9i Database) 시스템통계정보는객체의통계정보와같이사용되는정보로서, 기존의 Oracle8i Database까지의 I/O 중심의플랜방식에 CPU와디스크 I/O 속 도와같은시스템자원의효율을반영하여보다효율적인플랜을결정하기 위한방법으로, Oracle9i Database에서처음소개되었으며, 옵션기능으로 DBA에의해사용될수도있고사용하지않을수도있었다. Oracle Database 10g에서는시스템통계정보가기본적으로수집되고사용된다. 그 러므로기존의 I/O 횟수만가지고플랜을결정하던부분이 Oracle Database 10g에서는시스템의자원의성능도고려되어보다정확한플랜을 결정할수있게되었다. 이들시스템통계정보는 DBMS_STATS 패키지를이용해서수집된다. Oracle Database 10g에서는기본적으로수집되는값들이있으며, 또한 사용자가수집해야하는항목도있다. 다음은 Oracle Database 10g의시 스템통계정보의수집형태를보여주고있다. SQL> select * from aux_stats$; -- System통계정보확인 SNAME PNAME PVAL1 PVAL2 SYSSTATS_INFO STATUS COMPLETED SYSSTATS_INFO DSTART :23 SYSSTATS_INFO DSTOP :23 SYSSTATS_INFO FLAGS 0 CPUSPEEDNW <<< Default (NOWORKLOAD상태값 ) IOSEEKTIM 10 <<< Default (NOWORKLOAD상태값 ) IOTFRSPEED 4096 <<< Default (NOWORKLOAD상태값 ) SREADTIM MREADTIM 디폴트로수집된시스템통계정보. CPU Clock Speed, I/O Seek Time, I/O Transfer Time 등을확인할수있다. CPUSPEED MBRC MAXTHR SLAVETHR SQL> select * from aux_stats$; SNAME PNAME PVAL1 PVAL2 SYSSTATS_INFO STATUS COMPLETED SYSSTATS_INFO DSTART :02 SYSSTATS_INFO DSTOP :04 SYSSTATS_INFO FLAGS 1 CPUSPEEDNW IOSEEKTIM IOTFRSPEED 4096 SREADTIM MREADTIM CPUSPEED Dbms_stats의 gather_system_stats를통해수집된시스템통계정보가반영되었다. MBRC 15 MAXTHR SLAVETHR SQL> EXECUTE dbms_stats.delete_system_stats(); --- 수집된시스템통계정보삭제 PL/SQL procedure successfully completed. 옵티마이저원리에바탕한 SQL 튜닝 지금까지설명한바와같이개략적으로나마옵티마이저의원리를이해하 기위한부분에초점을맞춰설명하였다. 더자세한부분이필요하면오라 클매뉴얼인 [Database Performance Tuning Guide and Reference] 를 권장하고싶다. 다음호엔오라클이사용하는조인방법들와오라클이제 공하는 SQL 튜닝방법에대해알아보도록하자 WINTER 105

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

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

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

목 차

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

결과보고서

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

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

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

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

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

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

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

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

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

< 그림 1> Nested Loop Join - 이너테이블에인덱스가있을경우 < 그림 2> Nested Loop Join - 이너테이블에인덱스가없는경우 간은느리다. 즉첫번째로우를받을준비가되어있는단계까지를실행시간으로볼때실행시간은빠르나 Fetch 시간은느리다. NLJ는메모리 Oracle Optimizer 의원리이해및 SQL & 애플리케이션의튜닝 ( 하 ) 오라클튜닝기법의 100% 활용 글 최세훈 ( 한국오라클 DB Tech 팀 ) sehoon.choi@oracle.com 지난회에서는튜닝에들어가기위해먼저 Oracle Optimizer 의원리와특징에대해서설명했다. 이번회에서는조인메소드별특징과플랜보는법을이해하고, 실제오라클에서제공하는튜닝기법들을활용해보도록하자.

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

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

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

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

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

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

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

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

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

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

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

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

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

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역 WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,

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

RDB개요.ppt

RDB개요.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 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

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

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

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

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

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

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

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

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

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

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

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

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 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 Word - 04_EXCEPTION.doc

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

More information

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

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

More information

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

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

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

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

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

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

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

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

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 - 05_SUBPROGRAM.doc

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

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

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

SQL 실행계획을 이용한 패턴튜닝_ _최종.ppt [호환 모드]

SQL 실행계획을 이용한 패턴튜닝_ _최종.ppt [호환 모드] SQL 과실행계획을이용한튜팅 엔코아컨설팅 컨설팅사업본부본부장 김동훈이사 CONTENTS SQL 의개념실행계획패턴실행계획의최적화 SQL 의개념 - 수행단계 SQL 은데이터처리방법을기술한것이아니라단지필요한데이터를요구한것임 SQL Parser Parsed Query Query Transfrmer Transfrmed Query Estimatr Plan Generatr

More information

oracle9i_newfeatures.PDF

oracle9i_newfeatures.PDF Oracle 9i .?.?.? DB.? Language.?.?.? (DW,OLAP,MINING,OLTP ) DB.?.? Technology Evolution High Availability Scalability Manageability Development Platform Business Intelligence Technology Evolution Technology

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@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

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

最即時的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

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

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

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#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 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

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

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

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

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

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

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

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

Microsoft PowerPoint - CNVZNGWAIYSE.pptx

Microsoft PowerPoint - CNVZNGWAIYSE.pptx 대용량데이터처리를위한 Sharding 2013.1. 이동현 DBMS 개발랩 /NHN Business Platform SQL 기술전략세미나 2 대용량데이터를위한솔루션은 NoSQL 인가, RDBMS 인가? 모든경우에대해어떤하나의선택을하자는게아닙니다. SQL 기술전략세미나 3 언제, 그리고왜 RDBMS 를선택해야하는가? NoSQL 과다른 RDBMS 만의특징이필요할때

More information

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

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

TITLE

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

문서 템플릿

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

More information

Microsoft PowerPoint - 27.pptx

Microsoft 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

<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

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

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

Microsoft PowerPoint - o8.pptx

Microsoft PowerPoint - o8.pptx 메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 데이터베이스및설계 Chap 1. 데이터베이스환경 (#2/2) 2013.03.04. 오병우 컴퓨터공학과 Database 용어 " 데이타베이스 용어의기원 1963.6 제 1 차 SDC 심포지움 컴퓨터중심의데이타베이스개발과관리 Development and Management of a Computer-centered Data Base 자기테이프장치에저장된데이터파일을의미

More information

슬라이드 1

슬라이드 1 Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능

More information

MySQL-.. 1

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

ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들

ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들 ORACLE EXADATA HCC 압축방식이해하기 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 시간이지나면서데이터는급속하게증가하고있다. 데이터가증가함에따라 DBMS 에서관리되어지는정보도급속하게증가하고있다. 이로인해저장공간의부족으로하드웨어비용의증가와데이터처리성능에많은문제점들이나타나고있다. 이러한문제점들을해결하고자 ORACLE 에서는 EXADATA 라는시스템을통해스토리지공간부족현상과데이터처리성능을향상시키고자하였다.

More information

Microsoft PowerPoint - QVIZMVUMWURI.pptx

Microsoft PowerPoint - QVIZMVUMWURI.pptx 데이타베이스시스템 2011.03 충북대학교경영정보학과조완섭 (wscho@chungbuk.ac.kr) Chap. 4 SQL 질의어 C4 2 목차 - SQL2에서데이터정의, 제약조건및스키마변경 - SQL에서의기본질의 - 더복잡한 SQL 질의들 - SQL에서삽입, 삭제, 갱신구문 - SQL 뷰 - 주장으로추가적인제약조건명시 - SQL의부가적인기능들 Ch4 3 SQL

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

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

윈도우시스템프로그래밍

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

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

기술노트 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

ESQL/C

ESQL/C 20 장. PL/SQL 커서 주요내용 암시적커서 명시적커서선언 명시적커서열기및닫기 명시적커서에서데이터 Fetch 커서의속성 (%ISOPEN, %ROWCOUNT, %FOUND, %NOTFOUND) 커서 FOR 루프 PL/SQL 의커서 (Cursor) 커서 SQL 문과프로그램실행과정에서결과를저장할수있는오라클메모리구조 ( 개별 SQL 작업영역 ) 암시적커서 (Implicit

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

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

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

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

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

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

Cache_cny.ppt [읽기 전용]

Cache_cny.ppt [읽기 전용] Application Server iplatform Oracle9 A P P L I C A T I O N S E R V E R i Improving Performance and Scalability with Oracle9iAS Cache Oracle9i Application Server Cache... Oracle9i Application Server Web

More information

Microsoft Word - 03_SQL_CURSOR.doc

Microsoft Word - 03_SQL_CURSOR.doc SQL Cursor SQL 커서소개오라클서버에서는 SQL 문을실행할때마다처리 (Parse, Execution) 를위한메모리공간, 즉 SQL 커서를사용하게된다. 이메모리공간은 Private SQL Area 라고도불리우며, 오라클의작업환경이 Dedicated Server 환경이냐또는 MTS(Multi- Threaded Server) 환경이냐에따라서버내에위치되는곳이다르다.

More information