오라클옵티마이저의기본원리
|
|
- 재은 문
- 5 years ago
- Views:
Transcription
1 Oracle Technical Note 오라클옵티마이저의기본원리 현재모든관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 개발자나관리자들이이옵티마이저의기본동작원리를이해한다면, 여러면에서도움이되리라는생각에이글을쓰게되었다. 먼저, 옵티마이저에대한기본적인이해를구한다음, 오라클옵티마이저에대해알아보도록한다. 본론에앞서, 이글은관계형데이타베이스개념에일정정도익숙한독자들을대상으로작성되었기때문에, 초보자는이해하기가난해할수도있다는점과오라클옵티마이저가워낙광범위한기술이라모든세부적인내용을다다룰수는없으며, 필자도오라클옵티마이저의모든내부동작원리를완전히이해하고있지는못하다는점에양해를바란다. 미진하고잘못된부분은모두필자의책임임을밝혀둔다. 글 : 이상원 ( 주 ) 엑셈연구소장겸성균관대학교교수 swlee@ex-em.com
2 관계형 DBMS와옵티마이저 21 세기에들어서도여전히관계형 DBMS 가데이타베이스시장을지배하고있다. 그리고, 관계형 DBMS 에서사용되는핵심언어는 SQL(Structured Query Language) 이다. 이 SQL 언어의가장큰특징은사용자가데이타베이스에서자신이원하는데이타 (What) 만지정하면, 그데이타를어떻게구하는가 (How) 는 DBMS가자동적으로결정해서처리해준다는점이다. 이런면에서 SQL 을선언적 (declarative) 언어 ( 주 1) 라고부르며, 사용자는데이타베이스의물리적구조의변경에상관없이항상원하는정확한결과데이타를구할수있다. 이러한물리적데이타독립성 (physical data independence) 이관계형 DBMS를상업적성공으로이끈가장큰이유중의하나이다. 아무리 SQL 이이와같은장점을갖고있더라도, DBMS가내부적으로질의를처리하는방식이비효율적이라면관계형 DBMS 는누구도사용하지않을것이다. 다행히도현재의모든관계형 DBMS는사용자의 SQL 질의를효율적으로수행하는방법을찾아내는옵티마이저 (Query Optimizer : 혹자는 질의최적화기 라고도부르는데이글에서는 옵티마이저 라부르겠다.) 를제공하고있다. 예를들어, 다음과같은간단한 SQL 문을보자. Q1 : select ename, sal from emp e, dept d where e.deptno = d.deptno and d.loc = SEOUL emp와 dept 는각각 deptno와 loc 칼럼에대해 B 트리인덱스가있다고가정한다. 이같은단순한질의 Q1 의경우에도질의결과를구하는방법, 즉실행계획 (execution plan) 은다양할수있다. < 그림 1 > 은두가지실행계획 P1과 P2를보여주고있다. P1은우선 loc = SEOUL 조건을만족하는 dept 레코드를인덱스를이용해서찾고, 각 dept 레코드에대해 deptno 값이일치하는 emp 의레코드를인덱스를이용해서찾아값을출력한다 (Nested Loop 조인방법이용 ). [ 그림 1 ] 질의 Q1 에대한두가지실행계획의예 오라클옵티마이저의기본원리 2
3 한편, P2는 emp/dept 테이블을 Full Table Scan해서이들을 Sort Merge 조인방식으로조인해서질의처리를수행한다. 주목할점은, 이두실행계획모두정확한질의결과를구하지만, 두방식의수행시간에는차이가많이날수도있다는점이다. 예를들어, P1 방식은 1초에원하는결과를구하는반면, P2 방식은 1시간이걸릴수도있다. P1, P2 이외에도질의 Q1 을수행할수있는많은실행계획이있을수있다. 실행계획이란, 여러개테이블들의조인에대해, 특정한 1) 조인순서 (join ordering), 2) 조인방법 (join method), 그리고 3) 테이블액세스방법 (access method) 을선택하는것이다. 옵티마이저는가능한실행계획들을모두검토하고, 이중에서가장효과적으로, 즉가장빨리, Q1의결과를구할수있는실행계획을결정한다. 이글에서는, 옵티마이저가최적의실행계획을찾는과정을 질의최적화 (Query Optimization) 또는단순히 최적화 라고부르겠다. 관계형 DBMS 옵티마이저의핵심기능 관계형 DBMS 옵티마이저의핵심기능은다음과같다. 실행계획탐색 (Search Space Enumeration) : 주어진 SQL 질의를처리할수있는실행계획들을나열 (P1,.., Pn)? 비용산정 (Cost Estimation) : 각실행계획의예상비용을계산 많은실행계획들중에서최종적으로가장비용이적게드는실행계획 Pi 를선택해서 SQL 을실행하고결과를사용자에게보여준다. 실행계획탐색예를들어, 3개의테이블, T1, T2, T3에대해조인을수행하는 SQL 문이있다고가정하자. 그럼이질의를수행할수있는가능한실행계획은몇가지일까? 우리는앞에서조인순서, 조인방법, 그리고테이블액세스방법에따라서로다른실행계획이만들어진다고했다. 그렇다면, 3개의테이블 T1, T2, T3에대한조인순서는 3!, 즉 6개의조인순서가있다. (T1 _T2) _T3, (T1 _T3) _T2, (T2 _T1) _T3, (T2 _T3) _T1, (T3 _T1) _T2, (T3 _T2) _T1 그리고, 하나의조인순서에는 2개의조인을포함하는데, 이용가능한조인방법이 Nested Loop, Sort Merge, Hash Join의세가지가있다면, 각조인순서에대해총 32, 즉 9개의조합이가능하다. 그리고, 이각각의경우테이블을접근하는액세스방법이 Full Table Scan과 Index Scan의두가지가있다면 23, 즉 8개의서로다른조합이가능하다. 따라서, 3! x 32 x 23 = 432가지의실행계획이가능하다. 그런데, 옵티마이저가고려해야할실행계획의개수는 SQL 에포함된테이블의개수가증가함에따라기하급수적으로늘어나게된다. 만일 from 절의테이블의개수가 5개인경우, 5! x 35 x 25 = 933,120개가가능해진다. < 주 1> 엄밀하게는 SQL 은절차적 (procedural) 언어의요소를포함하고있다. SQL 은이론적으로관계대수 (relational algebra) 와관계해석 (relational calculus) 의두요소를모두포함하고있고, 관계대수는절차적언어이다. 따라서, SQL 은 상대적으로 (relatively) 선언적언어라불러야한다고본다. 오라클옵티마이저의기본원리 3
4 그리고, 여기서각실행계획의예상비용을계산하는데걸리는시간이 0.01초라고가정했을때, 모든실행계획의예상비용을구하는데약 9,300초 ( 약 2시간 36 분 ) 이걸린다. 만일테이블의개수가 10 개라고가정하면, 아마도모든실행계획의예상비용을계산하는데만도몇년이걸릴지도모른다. 21 세기 IT 환경에서는하나의 SQL 문에 5 ~ 10개정도의테이블이포함되는경우가일반적이다. 그런데, 옵티마이저가실행계획을선정하는데걸리는시간이이와같다면, 옵티마이저는차라리없는것이더나을지도모른다. 따라서, 옵티마이저는모든가능한실행계획을다고려할수는없다. 즉, 질의최적화에걸리는시간을줄이기위해어떤실행계획들은아예비용계산에서제외해야할필요도있다. 옵티마이저는모든가능한실행계획조합들을탐색하는방법 - 즉어떤실행계획을먼저고려하고, 어떤순서로다음실행계획을찾고, 어떤실행계획은제외할것인가? - 을갖고있어야한다. 비용산정앞의실행계획탐색단계에서만들어내는각각의실행계획에대해, 그실행계획을실제로수행할때비용 - 단순하게는시간이얼마나걸릴지? - 을예측해서, 가장비용이적은실행계획을선택해야한다. 이를위해서옵티마이저는데이타베이스내의데이타들에대해갖고있는통계정보와비용을예측하는다양한모델을사용해서각실행계획의비용을계산할수있어야한다. 여기서주목할점은, 옵티마이저가실행계획들을비교할때사용하는기준은 예상비용 이라는점이다. 앞의예에서 P1 과 P2 방법을실제로수행해보고더좋은방법을결정하는것이아니라, 옵티마이저가갖고있는통계정보를활용해서 P1 과 P2 로수행했을때어느실행계획의예상비용이작은가를보고서이를실제로수행하게되는것이다. Selinger 스타일의옵티마이저필자가아는한에서, 현재의모든상용관계형 DBMS의옵티마이저는 IBM DB2의모태인 System-R 프로토타입시스템을개발할당시에고안된아키텍처에기반하고있다 < 참고자료 4>. 이아키텍처를주도적으로제안한 IBM 의여성전산학자 Pat. Selinger의이름을따서, Selinger 스타일옵티마이저 라부른다. 참고로 Pat. Selinger의논문은아직까지도데이타베이스분야에서가장많이인용되는논문중의하나이고, Pat. Selinger는이한편의논문으로데이타베이스연구분야에서슈퍼스타의반열에올라섰다. 이 Selinger 스타일옵티마이저아키텍처의가장큰두가지특징은 1) 동적프로그래밍기반에의한실행계획탐색 (Search Space Pruning based on Dynamic Programming) 과 2) 비용기반최적화 (Cost-Based Optimization) 인데, 각각위에서나열한옵티마이저핵심기능의첫째, 둘째기능에해당된다. 오라클옵티마이저의기본원리 4
5 옵티마이저의이상과현실가장이상적인옵티마이저는, 모든질의에대해옵티마이저가선택한실행계획이실제로수행될때도가장좋은수행속도를보장하는경우이다. 그러나, 현재의옵티마이저는비록대부분의경우에상대적으로아주좋은실행계획 < 주 2> 을선택하지만, 실제로는아주나쁜실행계획을선택하는경우도있다. 현재의옵티마이저의한계, 원인그리고앞으로의개선방향에대해서는뒤에서자세히설명하겠다. 옵티마이저는 30 년이상축적된기술을포함하고있는, 인간의지능이가장많이녹아있는복잡한소프트웨어이다. 이세상의어떤누구도상용관계형 DBMS 옵티마이저의복잡한내부동작원리를완전히이해하고있는사람은없다고단언할수있다. 실제로필자도이글에서주로설명할오라클옵티마이저에대해서어쩌면기본적인지식밖에없다고할것이다. 다만, 많은오라클개발자나관리자들이현대의옵티마이저의가장기본적인동작원리를쉽게이해했으면하는마음으로이글을썼다. 옵티마이저의아키텍쳐이제까지는현재보편적으로사용되고있는관계형 DBMS 옵티마이저의기능, 간단한역사적배경, 그리고동작원리에대해간략히알아보았다. 이제부터는이러한배경지식을바탕으로 Oracle DBMS의옵티마이저의기본구조와동작원리에대해알아보겠다. 오라클은 RBO(Rule-Based Optimization : 규칙기반최적화 ) 와 CBO(Cost- Based Optimization : 비용기반최적화 ) 를모두지원하고있다. CBO의경우, 1992년 Oracle 버전 7부터도입되었는데, 향후이글에서오라클옵티마이저라함은 CBO 를지칭하는것이다. RBO 는간단한규칙위주로최적화를수행하는방법으로, 앞으로는널리사용되지않을것이며, 오라클도공식적으로 CBO 사용을권장하고있다. 그림 2 는오라클옵티마이저의아키텍처를보여주고있는데, 사용자의 SQL 질의는크게다음 4단계를거쳐서수행된다. 1. 파싱 (Parser) 2. 옵티마이저 (Query Optimizer) 3. 로우소스생성 (Row Source Generator) 4. SQL 실행 (SQL Execution Engine) 파싱 (Parser) 단계는 SQL은구문 (syntax) 과의미 (semantics) 검사를수행한다. 예를들어, SQL 구문이정확한지를검사하고, 참조된테이블에대해사용자의접근권한등을검사한다. 이단계가끝나면, SQL 문은파싱트리 (parsed tree) 형태로변형되어옵티마이저에게넘겨진다. < 주 2> 어떤실험에서는 80% 정도의경우, 옵티마이저가선택하는실행계획이실제수행했을때도결과가가장좋았다. 나머지 20% 의경우에, 옵티마이저가선택한실행계획은평균적으로세번째로시간이많이걸렸다. 이실험전체에걸쳐서가장빠른실행계획과옵티마이저가선택한실행계획의수행시간은 1.33 배정도였다. 오라클옵티마이저의기본원리 5
6 옵티마이저 (Query Optimizer) 단계는앞에서넘겨받은파싱트리를이용해서최적의실행계획을고른다. 그림 2 에서점선형태의사각형으로표시된부분이옵티마이저의주요구성요소를보여주고있는데, 뒤에서각구성요소의역할에대해자세히설명하겠다. [ 그림 2 ] Oracle Query Optimizer 의아키텍처 로우소스생성 (Row Source Generator) 단계는옵티마이저에서넘겨받은실행계획을내부적으로처리하는자세한방법을생성하는단계이다. 로우소스 란실행계획을실제로구현하는인터페이스각각을지칭하는말로, 테이블액세스방법, 조인방법, 그리고정렬 (sorting) 등을위한다양한로우소스가제공된다. 따라서, 이단계에서는실행계획에해당하는트리구조의로우소스들이생성된다. 마지막으로, SQL 실행 (SQL Execution Engine) 단계는위에서생성된로우소스를 SQL 수행엔진에서수행해서결과를사용자에게돌려주는과정이다. 여기서한가지주목할점은, 소프트파싱 (soft parsing) 과하드파싱 (hard parsing) 은크게옵티마이저단계의포함여부에따른차이이다. 즉, 소프트파싱은이미최적화를한번수행한 SQL 질의에대해옵티마이저단계와로우소스생성단계를생략하는것이고, 하드파싱은이두단계를새로수행하는것이다. 따라서, 하드파싱은통계정보접근과실행계획탐색때문에시간이많이걸린다. 이차이가주로 SQL 튜닝전문가들이가급적이면하드파싱을피하라고권하는이유이다. 오라클옵티마이저의동작원리이제부터는오라클옵티마이저의각구성요소의기능에대해좀더자세히알아보자. 그림 2 에서보듯이, 오라클옵티마이저는크게다음 3가지모듈로구성된다. 질의변환 (Query Rewriter) 실행계획생성 (Plan Generator) 비용산정 (Estimator) 오라클옵티마이저의기본원리 6
7 질의변환모듈질의변환 (Query Rewriter 또는 Transformer) 단계는파싱트리 (parsed tree) 를받아들여서질의변환을수행한다. 이변환과정을통해서의미적으로같은결과를수행하지만, 더나은실행계획을찾을수있는 SQL 문으로변환함으로써질의의수행처리속도를높이는데그목적이있다. 오라클옵티마이저가수행하는질의변환은크게다음두종류로구분할수있다. 휴리스틱 (Heuristic based) 질의변환 : 이변환의종류로는크게 View Merging, Subquery Unnesting, Predicate Push Down, Partition Pruning 등이있는데, 이들변환은가능한경우에항상질의변환을수행한다. 왜냐하면, 이와같은변환은경험적으로거의항상원래질의보다더빠른수행속도를보장하기때문이다. 비용기반 (Cost based) 질의변환 : 이변환의예로는, MV Rewrite, Star Query Transformation, OR-expansion 등을들수있다. 그런데, 이방법을사용해서변환된 SQL 문이원래 SQL 문보다속도가더빠르다는보장이없다. 따라서, 변환전 / 후의두 SQL 문에대해각각최선의실행계획을구하고, 이들의비용을비교해서더효율적인실행계획을최종적으로선택한다. 오라클의질의변환모듈에서지원하는다양한변환의종류와내용에대해서는 < 참고자료 2, 3> 을참고하기바란다. 질의변환단계가끝나면, 오라클옵티마이저는실행계획생성과비용산정모듈을수행하기앞서, 질의에서사용된모든테이블들과각테이블에정의된인덱스들에관한기본적인통계정보들 ( 예를들어, 테이블의블록개수, 로우평균길이, 인덱스의높이, 인덱스리프블록의개수등 ) 과각테이블에대한다양한액세스경로 ( 예를들어, Full Table Scan, Index Scan 등 ) 에대한비용정보를미리구해둔다. 오라클옵티마이저의기본원리 7
8 옵티마이저의아키텍쳐실행계획생성모듈이모듈은옵티마이저가새로운실행계획을만드는것이다. 오라클옵티마이저는제일먼저각테이블의레코드수를기준으로오름차순으로결정한다. 예를들어, SQL 질의의 from 절에서 T1, T2, T3 순서로참조한경우, 각테이블의카디널러티 (cardinality : 테이블의튜플수 ) 가 T1 > T2 > T3 순이라면제일처음고려하는조인순서는 (T3 _T2) _T1 이된다. 이조인순서에대해서다음단계인비용산정모듈을호출해서이조인순서에따르는실행계획들과각실행계획의비용을구한다. 그리고, 더이상의새로운조인순서가없을때까지계속새로운조인순서를만들어서비용을계산한다. 이모듈은지금까지찾아낸가장좋은실행계획과그비용을저장하고있다. 이단계는최종적으로구해진최적의실행계획을 그림 2 의로우소스생성단계에넘겨준다. [ 그림 2 ] Oracle Query Optimizer 의아키텍처 오라클의실행계획생성모듈은테이블개수가정해진값 ( 디폴트 5) 보다작은경우에는모든조인순서에대해고려하지만, 테이블개수가이값을넘어서면 where 절에명시적으로조인조건이테이블들을앞에포함하는조인순서만고려한다. 예를들어, 6개의테이블 T1, T2,..., T6에대한조인을수행하는 SQL 문에서조인조건이 T1, T2, T5, T6에대해서만주어졌다면, T1, T2, T5, T6가먼저조인되고, T3, T4는항상나중에조인되는조인순서만고려한다. 그런데, 이런경우에도, 앞에서언급한것처럼, 테이블의개수가많으면가능한조인순서의조합이기하급수적으로늘어나게된다. 이렇게되면옵티마이저시간이너무많이걸리기때문에, 옵티마이저는일정한수 ( 디폴트로는최대 80,000) 의조인순서에대해서만비용을계산하고, 이중에서가장최선의실행계획을찾게된다. 즉, 모든가능한조인순서조합들중에서일부분만비용을계산하고, 나머지는고려하지않는것이다. 이를실행계획탐색에대한 가지치기 (pruning) 또는 컷오프 (cutoff) 라부른다. 그런데, 고려되지않은조인순서중에서실제로최선의실행계획이포함되어있을 오라클옵티마이저의기본원리 8
9 수있다. 옵티마이저가제일처음고려하는조인순서를테이블의레코드수의오름차순순서로정하는이유는경험적으로이순서근처에실제로최적의실행계획이존재하기때문이다. 이와같이초기조인순서를선택하는휴리스틱 (heuristic) 을사용함으로써임의로조인순서를시작했을때최적의좋은실행계획이컷오프되는것을막을수있다. 오라클옵티마이저실행계획생성모듈 (Oracle9i부터도입된 ) 의또다른특징은, 조인순서를바꾸어가면서지금까지구한최적의실행계획의예상비용이그리크지않은경우, 최적화단계를일찍끝내버린다. 예를들어, 어떤질의에대해 10 초동안최적화를수행해서찾은최적실행계획의예상수행시간이 1분이면, 남은조인순서가더있더라도옵티마이저단계를종료한다. 반면에, 지금까지구한최적예상수행시간이 2시간이면, 더나은실행계획을찾기위해새로운조인순서에대해계속탐색할필요가있다. 이를 적응적탐색전략 (adaptive search strategy) 이라부른다. 비용산정모듈자, 그럼다음으로비용산정모듈에대해알아보자. 실행계획생성모듈에서넘겨받은특정조인순서의각조인에대해 Nested Loop, Sort Merge, Hash Join 방식과각테이블의다양한액세스방법을반복적용하면서각단계별로비용을계산해서궁극적으로해당조인순서에서찾을수있는최선의실행계획과그예상비용을구해서실행계획생성모듈에게넘겨준다. 현재의조인순서에대해중간단계까지의수행비용이실행계획생성모듈에서지금까지구한최선의예상비용보다더크다면, 해당조인순서에대해서는더이상비용산정을수행하지않고끝낸다. 예를들어, T1, T2, T3에대해 (T1 _T2) _T3 순서에대해비용이 1000이었는데, (T _T3) _T2 순서의 (T1 _T3) 비용이 1200이었다면더이상비용을계산할필요가없다. 그림 2 에나와있는것처럼, 옵티마이저는실행계획의비용을계산하기위한비용모델 (Cost Model) 을갖고있고, 이비용모델은 Oracle Data Dictionary에서관리하는다양한통계정보를기반으로크게다음과같은세가지값 (measure) 의예상치를계산한다. [ 그림 2 ] Oracle Query Optimizer 의아키텍처 오라클옵티마이저의기본원리 9
10 선택도 (Selectivity) : Where 절에있는다양한조건들의선택도계산 카디널러티 (Cardinality) : 실행계획상의각각의연산의결과카디널러티수계산 비용 (Cost) : 실행계획상의각각의연산을수행하는데소요되는시간비용계산이비용산정을위한통계정보를저장하는 Data Dictionary 테이블들은 DBA_TABLES, DBA_INDEXES, DBA_TAB_COL_STATISTICS, DBA_ HISTOGRAMS 등이다. 이통계정보는앞에서언급한테이블의액세스경로의비용정보를결정하는데도사용된다. 이들테이블의정보는사용자가 ANALYZE 명령어나 DBMS_STATS 패키지를이용해서관리하게되는데, 이들테이블에서관리하는통계정보의종류와통계정보를수집 / 관리하고, 통계정보를확인하는자세한방법은이글에서는설명하지않겠다 < 참고자료 5>. 만일에테이블과인덱스에대한통계정보가존재하지않는경우, 옵티마이저는해당테이블과인덱스에대해디폴트로가정하는값들이있다 < 참고자료 5>. 선택도우선선택도 (selectivity) 의개념을예로들자. 앞에서예로든질의 Q1 에서 d.loc = SEOUL 이라는조건의선택도는 dept 테이블전체중에서 loc 의값이 SEOUL 인레코드의비율을일컫는다. 옵티마이저는선택도계산을통해서해당조건을만족하는레코드가몇건정도가되는지를예측하게된다. 옵티마이저는만일 DBA_TABLES에 dept 테이블의 loc 칼럼의 distinct column values가 10 이라면옵티마이저는선택도가 0.1 이라고판단하게된다. 이때선택도를이와같이정하는이유는 dept 테이블이 loc 칼럼들에골고루분포되어있다고가정할때성립한다. 그러나, 실제로 loc 칼럼의값들이 skew되어서분포할수도있다. 예를들어, 전체레코드의 50% 가 loc 값으로 SEOUL 을갖는다면잘못된선택도값을얻게된다. 이와같이데이타분포가 skew되어있는경우, 해당칼럼에대한히스토그램정보를 DBA_HISTOGRAM 테이블에만들어주어야정확한선택도값을계산할수있다 ( 이경우는 0.5). 오라클옵티마이저는다양한조건식의종류에대해선택도를통계정보에기반해서계산하는수식을내부적으로갖고있다. 그렇지만, 만일 dept 테이블이아직분석되지않아서통계정보가없는경우, 옵티마이저는내부적으로갖고있는디폴트값을선택도로지정한다 ( 예를들어, 0.01). 카디널러티앞의 dept 테이블의전체레코드건수가 1000일때, 앞에서설명한 loc = SEOUL 의선택도가 0.1 로계산되었을때, 조건을만족하는레코드건수는 1000 x 0.1, 즉 100 개로예상할수있다. 이와같이어떤연산을수행한결과로나오는레코드건수를 카디널러티 (cardinality) 라하는데, 정확한카디널러티를계산하는것은좋은실행계획을만드는데굉장히중요하다. 오라클옵티마이저의기본원리 10
11 예를들어, (T1 _T2) _T3 순서로테이블을조인할때 (T1 _T2) 의결과와 T3 를조인할때어떤조인방법을선택하는것이좋을지를결정하기위해서는 (T1 _T2) 의크기를정확하게알아야한다. 이를위해서는 (T1 _T2) 조인의결과레코드가몇개인지를예상할수있어야한다. 이를위해오라클옵티마이저는다양한연산의결과레코드의카디널러티를통계정보와수식에의해서계산한다. T1과 T2의조인조건이 T1.c1 = T2.c2( 이를 P 라표기 ) 라했을때, 앞에서설명한선택도계산공식에의해이조건식의선택도 Sel(P) 를먼저계산한후, 이조인의결과카디널러티는 Card(T1) x Card(T2) x Sel(P) 가된다. 예를들어, T1, T2의튜플수가각각 1000, 5000이고 Sel(P) 가 0.01이면, 조인의결과로생기는튜플수는 1000 x 5000 x 0.01 = 5000이된다. 그런데, Sel(P) 가조금이라도틀리면이후의전체적인비용산정이잘못되게된다. 오라클옵티마이저는다양한종류의연산에대해내부공식을사용해카디널러티를계산한다. 비용비용 (cost) 은테이블액세스, 조인등을수행하는데걸리는시간을의미하는데, 시간은주로디스크 I/O 수와 CPU 사용시간을고려한다. 비용은앞에서계산한통계정보와내부계산식에의해계산된다. 예를들어, T1 _T2를 Nested Loop 방식으로조인할경우조인비용은 (T1 의데이타블록수 ) + ((T1의레코드건수 )*(T2의액세스비용 )) 이된다. 이처럼오라클옵티마이저는모든연산에대해소요되는비용을계산하는수식을갖고있다. 오라클옵티마이저는이세가지예상값 (measure) 을기반으로, 현재의실행계획의예상비용을구한다. 오라클옵티마이저와관련한몇가지유용한기능이상에서오라클옵티마이저의내부동작원리를살펴보았다. 옵티마이저와관련해서오라클에서제공하는몇가지유용한기능들에대해서간단히알아보자 ( 이들기능에대한자세한설명은 < 참고자료 3> 을보기바란다 ). 이기능들은크게두가지 - 즉, 옵티마이저가사용할통계정보를수집 / 관리하는기능과옵티마이저의활동을자세히추적할수있는기능 - 로구분할수있다. 먼저, 통계정보수집 / 관리기능으로는 ANALYZE 명령과 DBMS_ STATS 패키지를들수있다. 비용계산이최적의실행계획을구하는데중요한역할을하기때문에, 이기능을사용해서 1) 어떤테이블이나칼럼에변경사항이많이발생해서새로통계정보를분석해야하는지, 2) 어떤칼럼에대해히스토그램을만들어야하는지에대한도움을받을수있다. 다음으로옵티마이저의활동추적과관련해서, 1) 주어진질의에대해서어떠한최적화과정을거쳤는지, 2) 최종적으로어떤실행계획을선택했는지, 그리고, 선택된실행계획대로수행했을때걸리는시간과자원이얼마나소요되었는지를확인하는기능들이제공된다. 우선옵티마이저의최적화과정을확인하려면, Event 을이용하면된다. 이를위해서는 SQL*Plus에서다음 alter 명령을수행하면된다. 오라클옵티마이저의기본원리 11
12 SQL> alter session set events trace name context forever ; 이명령을수행하고나면, 현재세션에서수행하는모든질의에대해옵티마이저의최적화과정의모든정보가 $ora_home/admin/udump /xxx.trc 파일에기록된다. 이트레이스파일은오라클옵티마이저가고려한모든조인순서, 조인방법, 테이블액세스방법, 선택도, 카디널러티, 비용정보등을포함하고있다. 다음으로, 단순히옵티마이저가최종적으로선택한실행계획만확인하고싶으면, EXPLAIN 명령어나 SQL*Plus에서제공되는 Autotrace 기능을이용하면된다. 그리고, 옵티마이저가선택해서수행한실행계획의자세한성능정보를알고싶으면, SQL Trace, TKPROF 등의기능을이용하면된다. 오라클옵티마이저의한계와그원인오라클옵티마이저를포함한현재의관계형 DBMS 의옵티마이저는항상최적의실행계획을고르지는못한다. 옵티마이저의한계는실행계획생성모듈과비용산정모듈의동작원리에그원인이숨어있다. 실행계획생성모듈의제약우선, 실행계획생성모듈에서최적화를위해사용할수있는시간이제한적이라는점이다. 앞서살펴보았지만, 10개이상의테이블조인을포함하는질의의경우최적의실행계획을구하기위해옵티마이저가고려해야할탐색공간이너무많기때문에다양한형태의컷오프를수행한다. 이과정에서실제로최적의실행계획이고려되지않고잘려나갈수있다. 비용산정모듈의불완전성비용산정모듈에서는특정실행계획의비용을통계정보와내부적인비용산정모델을사용해서계산한다. 그런데, 옵티마이저에서사용하는통계정보와비용산정모델이불완전하다. 따라서, 옵티마이저는불완전한정보를바탕으로일종의추측 ( 또는가정 ) 을하는것이다. 예를들어, d.loc = SEOUL 의선택도를구하는과정을보자. d.loc에대한히스토그램통계정보가없으면, 옵티마이저는 모든값들이골고루분포되어있다 는가정하에 d.loc 칼럼의 distinct value 개수 ( 이를 NDV 라하자 ) 를기준으로해당조건의선택도를 1/NDV로계산한다. 그러나, 실제로는 d.loc에대해 skew된분포를보이면옵티마이저의실행계획비용산정이틀려지게된다. 비용산정모듈이한계를갖게되는또다른예로, SQL 에서바인드변수 (bind variables) 의사용을들수있다. 질의 Q1 에서 d.loc = SEOUL 대신에 d.loc = :loc_name 조건이사용되었으면, 데이타베이스에 loc 칼럼에아무리정확한통계치를갖고있어도선택도에대해서는일정한비율을가정할수밖에없다. 다른예로서, 다음질의를살펴보자. Q2: select * from emp where job_title = vice_president and salary < 데이타베이스에는 job_title, salary 칼럼모두에대해정확한히스토그램정보를유 오라클옵티마이저의기본원리 12
13 지하고있고, job_title = vice_president 의선택도가 0.05이고, salary < 의선택도는 0.4 였다. 이때옵티마이저는 emp 테이블에서 where 절의조건의전체선택도를 0.05 x 0.4, 즉 0.02로계산한다. 이는 각칼럼의값들의분포는서로독립적이다 는가정에기반하다. 그러나, 부사장이면서연봉이 40,000 이하인경우는거의없기때문에실제선택도는 0에가까울것이다. 결국앞의가정은이와같이서로밀접한상관관계가있는두칼럼에대한선택도를구할때문제가되는것이다. 마지막예로, 조인연산에대한비용을예측할때, 이조인을수행할수있는메모리공간을고정크기로가정하고, Nested Loop, Sort Merge, Hash Join의비용을산정한다. 그러나, 질의를수행할때실제비용은이용가능한메모리의양에따라크게차이가날수있다. 결론적으로, 옵티마이저의정확도는비용계산의정확도에따라좌우되는데, 참고하는통계정보가부족하거나계산과정의몇가지가정들이실제데이타분포와실행계획의런타임환경과차이가있기때문에정확도에문제가발생하는것이다. 힌트기능을이용한옵티마이저동작제어이와같은현재의옵티마이저의한계를보완하기위해, 오라클에서는 SQL 에힌트 (hint) 를추가해서사용자가옵티마이저가선택하는실행계획에영향을줄수있도록하고있다. 옵티마이저가최선이아니차선의실행계획을선택하는경우, 사용자가 SQL 에힌트를주어서실행계획을베스트플랜으로만들도록하는것이목적이다. 힌트를제공하는것이옵티마이저의기능이떨어지는것을의미하는것은아니다. 어떤 DBMS의옵티마이저도완전할수는없기때문에, 힌트기능의제공은반드시필요하다. 옵티마이저의실행계획은결국조인순서, 조인방법, 테이블액세스경로를결정하는것이기때문에, 힌트의종류도크게이세가지를제어하는것으로구분할수있다. 다음예는 Q1 에대해힌트를사용한예를보여주고있는데, 처음 ordered 는 from 절에나와있는순서대로조인순서를정하는것이고, use_nl 의경우dept 테이블을 inner table로사용할때 Nested Loop 방식만을사용하도록지정하고, full(e) 는 emp 테이블은항상 Full Table Scan을통해서액세스하도록지정하는것이다. 오라클에서제공하는다양한힌트의종류와자세한의미에대한설명은 < 참고자료 5> 를보기바란다. Q1 : select /*+ ordered use_nl(d) full(e) */ ename, sal : Oracle 힌트기능사용예 from emp e, dept d where e.deptno = d.deptno and d.loc = SEOUL 오라클 SQL 에서힌트를제공하는또다른목적은, 사용자가다양한실행계획을수행해봄으로써어떤데이타액세스경로가도움이되는지를테스트해볼수도있다. 힌트의사용은아주불가결한경우말고는사용을조심해야한다. 실제로이힌트기능이남용되는경우가많다. 오라클옵티마이저의기본원리 13
14 힌트를사용하게됨으로써데이타베이스환경의변화 ( 예를들어, 테이블의크기변화, 인덱스의추가 / 삭제 ) 가발생할때옵티마이저가더나은실행계획을선택하는것을방해할수도있다. 실제로 Oracle E-Business Suite 11i의경우포함된 27 만개의 SQL 중에서 0.3% 만이힌트를포함하고있다고한다. SQL 튜닝과옵티마이저의관계 SQL 튜닝은특정 SQL 질의의수행시간을단축하기위해사용자가취하는다양한방법을통칭한다. SQL 튜닝의범위는굉장히포괄적인데, 옵티마이저와관련한방법으로는 SQL 재작성, 힌트사용, 새로운인덱스추가, 통계데이타의추가 / 갱신등을통해서옵티마이저가더욱더효율적인실행계획을생성하도록하는것이다. SQL 재작성사용자가원하는데이타를질의하는방법은실제로매우다양할수있다. 극단적인예로, C. J. Date는한 SQL 문을 50 가지이상의다른 SQL 문으로표현이가능함을보여준다 ( 참조 ). SQL 재작성을통한 SQL 튜닝은원래의 SQL 문을, 같은결과를내지만, 옵티마이저가더효과적인실행계획을생성할수있는 SQL 문으로바꾸는방법이다. 힌트사용앞에서언급한것처럼, 힌트기능을사용해서옵티마이저가선택하는실행계획을바꾸는방법이다. 새로운인덱스추가 SQL 문의효율적인처리를위해서는특정테이블의특정칼럼값을이용해서해당데이타를빨리찾아야하는데, 인덱스가없기때문에옵티마이저가어떤실행계획을선택하더라도그 SQL 문은느릴수밖에없는경우가있다. 이와같은상황에서는새로운인덱스생성을통해서옵티마이저가해당인덱스를이용하는새로운실행계획을선택하도록할수있다. 통계데이타의추가 / 갱신앞에서설명한것처럼, 오라클옵티마이저의비용산정모듈에서는테이블, 칼럼, 인덱스등에대한통계정보를이용해서선택도, 카디널러티등을구하고이를통해서궁극적으로실행계획의비용을계산한다. 그런데, 만일특정테이블 / 칼럼에대한통계정보가없거나, 오래전에만들어진경우는비용계산이부정확하게되고, 따라서옵티마이저가선택하는실행계획이실제로는안좋은실행계획일수가있다. 이를해결하기위해서는특정통계정보를추가하거나새로갱신해주어서옵티마이저가정확한비용산정을통해서더나은실행계획을선택하도록해주는방법이다. 옵티마이저기술의발달은궁극적으로 SQL 튜닝관련직종을없앨수도있다. 그러나, 다행인지불행인지몰라도, 향후 10년사이에이런일이벌어지지는않을것같다. 오라클옵티마이저의기본원리 14
15 향후옵티마이저의기술의발전방향비록옵티마이저기술은지난 30 년간꾸준히발전해오면서인간이만든가장지능적인소프트웨어이지만, 앞으로도끊임없이기술발전이필요한분야이다. 사용자가사용하는 SQL 질의가점점더복잡해지고, 데이타베이스에서다루는데이타양이엄청난속도로늘어나고, 새로운데이타의종류를데이타베이스에서다루어야하기때문에, 옵티마이저기술의중요성은더욱더커질것이다. 향후옵티마이저기술의주요발전방향은다음의분야가될것이다. 여기서나열한분야는주로학계에서연구가활발히진행중이거나많은진전이있는분야를중심으로판단한필자의개인적인의견이다. 질의변환오라클옵티마이저와관련해서간략히설명했지만, 현재의옵티마이저가처리하는질의변환의형태는상대적으로정형화되고단순한형태의질의변환만을주로수행한다. 단일 SQL 블록 (Select-From-Where) 에대한질의변환이외에, 복잡한중첩질의 (nested query) 를단일질의로변환하는방법, 중첩질의내의각 SQL 블록을결합한효과적인실행계획생성이가능해질것이다. 비용산정을위한정확한통계정보관리실행계획에대한정확한비용산정이옵티마이저기술의핵심이다. 따라서, 지금옵티마이저가참고하는통계정보보다더정교하고복잡한통계정보의관리 / 유지기법들이도입될것이다. 예를들어, 애트리뷰트값들의분포가서로독립적이라는가정대신에상호연관성이깊은칼럼들에대한히스토그램정보를효과적으로수집 / 활용하는기술이도입될수도있다. 런타임시동적질의최적화현재의옵티마이저기술은, 질의수행환경에상관없이옵티마이저가선택한실행계획을그대로실행한다는측면에서정적 (static) 질의최적화방법이다. 앞으로는고정된실행계획을그대로수행하는것이아니라, SQL 실행단계의상황에따라실행계획을융통성있게바꾸는기술이개발될것이다. 실제로 Oracle9i의경우초보적인형태의동적질의최적화기능을제공하고있다. 학습하는옵티마이저현재의옵티마이저기술은통계정보의변화나사용자의힌트가없다면, 같은 SQL 질의에대해서는항상똑같은실행계획을선택할것이다. 옵티마이저가특정질의에대해생성한실행계획을실제수행했을때, 예상과달리좋지않은성능을보이면, 옵티마이저가다음번에최적화를수행할때는이전의실행계획을제외한다른대안을찾게되는것이다. 오라클옵티마이저의기본원리 15
16 참고자료 1. Ken Jacobs, Query Optimization, Oracle Magazine 2002 July/August ( /o42dba.html) 2. Oracle Corp., Query Optimization in Oracle9i, Technical White Paper ( 3. Oracle Corp., Oracle9i Performance Tuning Guide and Reference Release 2(9.2) ( 4. Patricia Selinger 외다수, Access Path Selection in a Relational Database System, ACM SIGMOD Surajit Chaudhuri, An Overview of Query Optimization in Relational Systems, AMM PODS Tutorial 1998v 6. Yannis E. Ioannidis, Query Optimization, Handbook for Computer Science(Chapter 45), CRC Press 7. Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom, Database Systems: The Complete Book, Prentice Hall, Raghu Ramakrishnan and Johannes Gehrke, Database Management Systems(2nd Edition), McGraw-Hill, Abraham Silberschatz, Henry F. Korth and S. Sudarshan, Database System Concepts(4th edition), McGraw-Hill, 2001 오라클옵티마이저의기본원리 16
17 한국오라클 ( 주 ) 서울특별시강남구삼성동 삼화빌딩대표전화 : FAX : 한국오라클교육센타서울특별시영등포구여의도동 28-1 전경련회관 5 층, 7 층대표전화 : ~4 FAX : ~1 대전사무소대전광역시서구둔산동 929 번지대전둔산사학연금회관 18 층대표전화 : (042) ~2 FAX : (042) 대구사무소대구광역시동구신천동 111 번지영남타워빌딩 9 층대표전화 : (053) ~4 FAX : (053) 부산사무소부산광역시동구초량동 1211~7 정암빌딩 8 층대표전화 : (051) FAX : (051) 울산사무소울산광역시남구달동 번지정우빌딩 3 층대표전화 : (052) FAX : (052) 광주사무소광주광역시서구양동 금호생명빌딩 8 층대표전화 : (062) FAX : (062) 고객에게완전하고효과적인정보관리솔루션을제공하기위하여오라클사는전세계 145 개국에서제품, 기술지원, 교육및컨설팅서비스를제공하고있습니다.
Oracle Magazine 2003 summer
관계형 DBMS 옵티마이저의 한계와해결방안 글 이상원 < 성균관대학교교수 > swlee@ex-em.com 030 ORACLE KOREA MAGAZINE :: TECHNOLOGY :: 관계형 DBMS의두뇌역할을담당하는비용기반옵티마이저 (Cost Based Optimizer : CBO) 의근본적인한계들을정확히아는것은필요한경우에 SQL의정확한튜닝을위해서반드시필요하다.
More informationBind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터
Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL
More informationJerry Held
,, - - - : DELETE : ROW (ROWID) row ROWID : I/O Full Table Scan I/O Index Scan ROWID I/O Fast Full Index Scan scan scan scan I/O scan scan Unique, nonunique. (Concatenated Index) B* Tree Bitmap Reverse
More informationSQL Tuning Business Development DB
SQL Tuning Business Development DB Oracle Optimizer 4.1 Optimizer SQL SQL.. SQL Optimizer :.. Rule-Based Optimization (RBO), Cost-Based Optimization (CBO) SQL Optimizer SQL Query Parser Dictionary Rule-Based
More information,, - - - : 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 informationOracle Application Server: SPECjAppServer 벤치마크 결과
Oracle Application Server: SPECjAppServer 벤치마크결과 오라클백서 2003 년 11 월 Oracle Application Server: SPECjAppServer 벤치마크결과 요약 3 소개 3 SPECjAppServer2002 벤치마크 3 SPECjAppServer2002란무엇인가? 3 SPECjAppServer2002 결과
More informationSQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 )
SQL Server 에서 SQL 튜닝시알아야할힌트와사용 방법 엑셈컨설팅본부 /DB 컨설팅팀박성호 Optimizer 가 SQL 을해석할때항상최적의실행계획을생성하지는못한다. 복잡한 SQL 일수록최적의실행계획을생성하기위해고려해야할대상 (Table, Index 가많은경우 ) 이많기때문에, 실행계획생성시 SQL 의 Cost 를잘못계산하여최적의실행계획을세우지못하는경우가발생한다.
More information다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 4 장 JOIN 을배웁니다 1 2 1. Cartesian Product ( 카티션곱, CROSS Join) - Oracle Join 문법 SQL> SELECT e.ename, d.dname 2 FROM emp e, dept d ; - ANSI Join 문법 SQL> SELECT e.ename, d.dname
More informationMicrosoft Word - SQL튜닝_실습교재_.doc
* 실습환경 * 1. 오라클데이터베이스의튜닝실습을하기위해서는기본적인테이블과데이터가필요합니다. 다음과같은절차에의해환경설정을하십시오. 1) 강사가제공하는 Export 된파일 (scott.dmp) 을자신의 ORACLE 경로에저장하십시오. [C: ] cd C: ORACLE ORA92 BIN [C: ] dir scott.dmp scott.dmp 2) SYSTEM 사용자로접속하여
More information歯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 informationWINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역
WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,
More information결과보고서
오픈 소스 데이터베이스 시스템을 이용한 플래시 메모리 SSD 기반의 질의 최적화 기법 연구 A Study on Flash-based Query Optimizing in PostgreSQL 황다솜 1) ㆍ안미진 1) ㆍ이혜지 1) ㆍ김지민 2) ㆍ정세희 2) ㆍ이임경 3) ㆍ차시언 3) 성균관대학교 정보통신대학 1) ㆍ시흥매화고등학교 2) ㆍ용화여자고등학교 3)
More informationResult Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER
Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUERY 을실행하게된다면 BLOCK I/O 가많이발생하게된다. 이런이유로 QUERY 의성능은좋지못할것이다.
More informationDBMS & SQL Server Installation Database Laboratory
DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.
More information<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>
제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요
More informationInsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins
Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.
More information<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>
25 강. 수열의극한참거짓 2 두수열 { }, {b n } 의극한에대한 < 보기 > 의설명중옳은것을모두고르면? Ⅰ. < b n 이고 lim = 이면 lim b n =이다. Ⅱ. 두수열 { }, {b n } 이수렴할때 < b n 이면 lim < lim b n 이다. Ⅲ. lim b n =0이면 lim =0또는 lim b n =0이다. Ⅰ 2Ⅱ 3Ⅲ 4Ⅰ,Ⅱ 5Ⅰ,Ⅲ
More informationMicrosoft PowerPoint - 27.pptx
이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)
More information5장 SQL 언어 Part II
5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26 데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26 SELECT
More informationMicrosoft 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 informationQuery Process 단계처리내용 Parse 단계 Syntax, Security, Semantics의체크및Simple transformation 을수행한다 < 표 2>. Query Rewrite 단계서브질의와뷰의병합을수행하고, OR Expansion 작업을수행한다.
Oracle Optimizer 의원리이해및 SQL & 애플리케이션의튜닝 ( 상 ) 옵티마이저의원리와특징 글 최세훈 ( 한국오라클 Tech Sales Consulting 본부 DB Tech 팀 ) sehoon.choi@oracle.com 다수의데이타베이스튜닝과 SQL / 애플리케이션튜닝을통해튜닝의효과를확신하는필자가유익한튜닝정보를제공한다. 여기에서필자는 SQL
More information다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 9 장인덱스를배웁니다 1 1. 인덱스란무엇인가? 2 - ROWID ( 주소 ) 조회하기 SCOTT>SELECT ROWID, empno, ename 2 FROM emp 3 WHERE empno=7902 ; ROWID EMPNO ENAME --------------------------------- ----------
More information다양한 예제로 쉽게 배우는 오라클 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 informationMicrosoft 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 informationMicrosoft 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 informationePapyrus PDF Document
Goodus 기술노트 [38 회 ] Author 윤병길, 이은정 Creation Date 2009-02-27 Last Updated Version 1.0 Copyright(C) 2004 Goodus Inc. All Rights Reserved Version 변경일자변경자 ( 작성자 ) 주요내용 1 2009-02-27 윤병길, 이은정문서최초작성 Contents
More information....2012-2....0713
URL : www.kyoborealco.com OFFICE MARKET REPORT Company Overview Contents 02 04 08 10 15 16 17 20 28 Economic Investment Development 02 Office Hotel & Retail Policy 03 104.9 3.25 3.25 3.25 1,982 106.2 106.1
More information문서 템플릿
HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,
More informationSQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을
SQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을통해서수행된다. 데이터베이스운영시평소잘수행되던 SQL 이성능이슈를발생시키는때가있는데, 그원인이
More information데이터베이스-4부0816
04 269 270 2012 Database White Paper 271 272 2012 Database White Paper 273 274 2012 Database White Paper 275 276 2012 Database White Paper 277 278 2012 Database White Paper 279 280 2012 Database White
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More information±³º¸¸®¾óÄÚ-¾Ö´º¾ó-0121-55
URL : www.kyoborealco.com 서울특별시 성동구 도선동 286번지 교보생명빌딩 Tel. 02 2290 4048 Fax. 02 2290 4099 URL : www.kyoborealco.com ANNUAL MARKET REPORT 2011년 전망 및 2010년 결산 회사 개요 상 호 교보리얼코 주식회사 대표이사 장덕영 설립일 1979년 11월 15일
More information단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT
Study Room Doc.03 : SQLD 예상문제 ( 단답형 ) 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 26,25,24,21 회기출문제를바탕으로작성 작성자 : 월야루 도움 : 빙수민외카페댓글 2017-11-30 단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL
More information슬라이드 제목 없음
4.2 SQL 개요 SQL 개요 SQL은현재 DBMS 시장에서관계 DBMS가압도적인우위를차지하는데중요한요인의하나 SQL은 IBM 연구소에서 1974년에 System R이라는관계 DBMS 시제품을연구할때관계대수와관계해석을기반으로, 집단함수, 그룹화, 갱신연산등을추가하여개발된언어 1986년에 ANSI( 미국표준기구 ) 에서 SQL 표준을채택함으로써 SQL이널리사용되는데기여
More informationMicrosoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]
MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS보다가격이매우저렴한편이고,
More informationMicrosoft PowerPoint - QVIZMVUMWURI.pptx
데이타베이스시스템 2011.03 충북대학교경영정보학과조완섭 (wscho@chungbuk.ac.kr) Chap. 4 SQL 질의어 C4 2 목차 - SQL2에서데이터정의, 제약조건및스키마변경 - SQL에서의기본질의 - 더복잡한 SQL 질의들 - SQL에서삽입, 삭제, 갱신구문 - SQL 뷰 - 주장으로추가적인제약조건명시 - SQL의부가적인기능들 Ch4 3 SQL
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More informationuntitled
(shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,
More informationJDBC 소개및설치 Database Laboratory
JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }
More information슬라이드 1
{ Query Optimizing } 김정선 DB 사업부수석컨설턴트필라넷 (Feel@NET) Microsoft SQL Server MVP 김정선 (Jungsun Kim) Email: jskim@feelanet.com Blog: http://blog.naver.com/visualdb ( 현재소속 ) 필라넷, DB 사업부수석컨설턴트 SQL Server Academy/
More informationC# 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강의 개요
정규화와 SELECT (II) 웹데이터베이스 학과 학생 과목 학과 지도교수 학과학번성명 수강과목 담당교수 A 김수정 A 0001 고길동 성질이론 김수정 B 허영만 A 0002 둘리 한식의멋 허영만 C 강풀 B 0003 희동이 심리학의이해 강풀 과목 _ 성적 학번 수강과목 성적 0001 성질이론 A 0001 한식의멋 C 0002 성질이론 A 0002 한식의멋
More informationOracle Database 10g: Self-Managing Database DB TSC
Oracle Database 10g: Self-Managing Database DB TSC Agenda Overview System Resource Application & SQL Storage Space Backup & Recovery ½ Cost ? 6% 12 % 6% 6% 55% : IOUG 2001 DBA Survey ? 6% & 12 % 6% 6%
More information쉽게 풀어쓴 C 프로그래밊
Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.
More information0. Intro ORACLE 社 Oracle, My SQL, Exadata IBM 社 DB2, Informix SAP 社 ASE, IQ, ASA Microsoft 社 SQL Server Teradata 社 Teradata 공통점은? Altibase 社 Altibase
목 차 SQL 기본과활용 2010. 09. 29 삼성 S D S 정성철수석 ( D A / T A ) 1. RDBMS 2. SQL 3. SELECT 4. INDEX 5. MODELING 6. JOIN 7. DRIVING TABLE 8. SUBQUERY 9. OPTIMIZER 10. 과목2. ERD 11. 과목2. 목차 0. Intro ORACLE 社 Oracle,
More information< 그림 1> Nested Loop Join - 이너테이블에인덱스가있을경우 < 그림 2> Nested Loop Join - 이너테이블에인덱스가없는경우 간은느리다. 즉첫번째로우를받을준비가되어있는단계까지를실행시간으로볼때실행시간은빠르나 Fetch 시간은느리다. NLJ는메모리
Oracle Optimizer 의원리이해및 SQL & 애플리케이션의튜닝 ( 하 ) 오라클튜닝기법의 100% 활용 글 최세훈 ( 한국오라클 DB Tech 팀 ) sehoon.choi@oracle.com 지난회에서는튜닝에들어가기위해먼저 Oracle Optimizer 의원리와특징에대해서설명했다. 이번회에서는조인메소드별특징과플랜보는법을이해하고, 실제오라클에서제공하는튜닝기법들을활용해보도록하자.
More information슬라이드 1
CHAP 2: 순환 (Recursion) 순환 (recursion) 이란? 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로 되어있는경우에적합한방법 순환 (recursion) 의예 팩토리얼값구하기 피보나치수열 1 n! n*( n 1)! fib( n) 0 1 fib( n 2) n n 0 ` 1 fib( n 1) if n 0 if
More information슬라이드 제목 없음
뷰와시스템카탈로그 관계데이터베이스시스템의뷰 (view) 는다른릴레이션으로부터유도된릴레이션 (derived relation) 으로서 ANSI/SPARC 3단계아키텍처의외부뷰와다름 뷰는관계데이터베이스시스템에서데이터베이스의보안메카니즘으로서, 복잡한질의를간단하게표현하는수단으로서, 데이터독립성을높이기위해서사용됨 시스템카탈로그는시스템내의객체 ( 기본릴레이션, 뷰, 인덱스,
More information빅데이터분산컴퓨팅-5-수정
Apache Hive 빅데이터분산컴퓨팅 박영택 Apache Hive 개요 Apache Hive 는 MapReduce 기반의 High-level abstraction HiveQL은 SQL-like 언어를사용 Hadoop 클러스터에서 MapReduce 잡을생성함 Facebook 에서데이터웨어하우스를위해개발되었음 현재는오픈소스인 Apache 프로젝트 Hive 유저를위한
More informationPowerPoint 프레젠테이션
Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More informationSQL
데이터베이스및 SQL 언어의기초 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 1 / 36 Part I 데이터베이스 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 2 / 36 데이터의구성및표현 개체 (entity): DB가표현하려는유형 / 무형적정보의대상속성 (attribute): 개체가갖는특성도메인
More informationRDB개요.ppt
1 2 3 < > 1 SQL SQL 2 SQL 3 column DEPT DEPT# DNAME BUDGET D1 D2 D3 Marketing Development Research 10M 12M 5M tuple EMP EMP# ENAME DEPT# SALARY D1 40 D1 45 E1 E2 E3 Lopez Cheng Finzi D2 30 E4 Satio D2
More informationTablespace On-Offline 테이블스페이스 온라인/오프라인
2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가
More information041~084 ¹®È�Çö»óÀбâ
1998 60 1 1 200 2 6 4 7 29 1975 30 2 78 35 1 4 2001 2009 79 2 9 2 200 3 1 6 1 600 13 6 2 8 21 6 7 1 9 1 7 4 1 2 2 80 4 300 2 200 8 22 200 2140 2 195 3 1 2 1 2 52 3 7 400 60 81 80 80 12 34 4 4 7 12 80 50
More informationSNU =10100 =minusby by1000 ÇÁto0.03exÇÁto0.03exÇÁ=10100 =minusby by1000 ·Îto0.03ex·Îto0.03ex·Î=10100 =minusby by1000
SNU 4190.210 프로그래밍 원리 (Principles of Programming) Part III Prof. Kwangkeun Yi 차례 1 값중심 vs 물건중심프로그래밍 (applicative vs imperative programming) 2 프로그램의이해 : 환경과메모리 (environment & memory) 다음 1 값중심 vs 물건중심프로그래밍
More informationLevel 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력
CLD 모듈 계획서 Unix Systems 운영관리기법 교과목 코드 모듈명 Unix Systems Administration 코디네이터 김두연 개설 시기 2015. 5 th term 학점/시수 3 수강 대상 1~3학년 분반 POL Type TOL Type SOS Type 유형 소프트웨어 개발 컴퓨팅 플랫폼 관리 개발 역량 분석/설계 프로그래밍
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 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@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목차 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 informationChapter ...
Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준
More informationNLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해,
NLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해, 사용자들이큰혼란을겪기는경우도발생된다. 그 대표적인예로는 GROUP BY 가 SORT GROUP
More information슬라이드 1
O F F I C E M a r k e t R e p o r t R2Korea Real Estate Investment Advisory Inc. 2005. 1 st Quarter www.r2korea.co.kr O F F I C E M a r k e t R e p o r t 2005. 1 st Quarter R2-ORP Model) 8.0 7.0 6.0 (
More informationuntitled
Oracle DBMS 로그인의접근제어우회 취약점분석 2006. 2. 9 인터넷침해사고대응지원센터 (KISC) 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 룰명시하여주시기바랍니다. 개요 o 2005년이후 Oracle Critical Patch Update(CPU) 는 Oracle사제품대상으로다수의보안패치및보안패치와관련된일반패치를발표하는주요수단임
More information슬라이드 제목 없음
MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,
More information목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate
ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition
More information배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (
배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 ( 이후배치프로그램 ) 에대한성능문제를파악하기위해수행되는모든 SQL 에대한개별수행내역을정확히판단할수있어야한다.
More informationORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O
Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration
More information<C1A4BAB8C3B3B8AE5FBBEABEF7B1E2BBE75FC7CAB1E25F E687770>
3.2 관계데이터언어 0709 (1) 관계대수 0703 0705 0703 1) 관계대수정의 1 원하는정보와그정보를어떻게유도하는가를기술하는절차적인방법 0503 2 주어진관계로부터원하는관계를얻기위해연산자와연산규칙을제공하는언어 0503 3 릴레이션조작을위한연산의집합으로피연산자와결과가모두릴레이션이라는특성을가짐 2) 순수관계연산자 0305 관계데이터베이스에적용할수있도록특별히개발된관계연산자
More informationAltibase Administrator's Manual
ALTIBASE HDB TM Administration Performance Tuning Guide Release 6.5.1 (January 2, 2017) ------------------ ALTIBASE Administration Performance Tunning Guide Release 6.5.1 Copyright c 2001~2017 ALTIBASE
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More informationSQL Tuning Business Development DB SQL - -SQL -SQL
0:00-0:50 SQL :00-2:00 2:00-3:30 3:30-4:20 SQL 4:30-5:20 5:30-7:20 SQL Tuning Business Development DB SQL - -SQL -SQL SQL () H/W( ) CPU, Memory, Network ( ) SQL I/O ( ) SQL (2) ( ) ( ) SQL SQL SQL SQL
More informationHitachi Content Platform 클라우드 & 소프트웨어정의클라우드오브젝트플랫폼 Hitachi Content Platform Hitachi Data Ingestor Hitachi Content Platform Anywhere REVISION NO
클라우드 & 소프트웨어정의클라우드오브젝트플랫폼 Ingestor Anywhere REVISION NO.3 2018 / 04 www.his21.co.kr blog.his21.co.kr www.facebook.com/hyosunginfo 가상화 및 멀티테넌시 구성 데이터 암호화 및 접근제어 클라우드 오브젝트 스토리지 다양한 프로토콜을 통한 데이터 액세스 (REST,
More information금오공대 컴퓨터공학전공 강의자료
데이터베이스및설계 Chap 1. 데이터베이스환경 (#2/2) 2013.03.04. 오병우 컴퓨터공학과 Database 용어 " 데이타베이스 용어의기원 1963.6 제 1 차 SDC 심포지움 컴퓨터중심의데이타베이스개발과관리 Development and Management of a Computer-centered Data Base 자기테이프장치에저장된데이터파일을의미
More informationPowerPoint 프레젠테이션
MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령
More informationMicrosoft Word - 04_EXCEPTION.doc
ORACLE EXCEPTION INTRODUCTION PLSQL 블록이 PARSE 되는동안에발생되는에러를컴파일에러 (Compilation Error) 라고부르며, PLSQL 블록이실행되는동안에발생되는에러를런타임에러 (Run-Time Error) 라고부르는데, 이런타임에러를오라클에서는예외 (Exception) 라고부른다. 오라클의예외 (Exception) 는크게두가지로구분된다.
More information最即時的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 informationAltibase Administrator's Manual
ALTIBASE HDB Administration Performance Tuning Guide Release 6.3.1 (August 19, 2015) ----------------------------------------------------------- ALTIBASE Administration Performance Tunning Guide Release
More information슬라이드 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 informationMicrosoft Word - PLSQL.doc
PL/SQL 2008 DB system and programming 보충자료 PL/SQL의실행절 BEGIN 절에서의몇가지규칙 - 실행문은여러라인에걸쳐사용할수있다. - 변수명의명명규칙은오라클의일반적인명명규칙과동일하다. PL/SQL 블록내에서 SQL 문을사용할때에는컬럼명과같은변수명은피해야한다. - SQL에서와마찬가지로날짜와문자는홑따옴표 ( ) 를사용하여인용하여야한다.
More information<4D F736F F F696E74202D20BFC0B6F3C5AC2D38C0E52DBAE4BFCD20BDC3BDBAC5DB20C4ABC5BBB7CEB1D72DBFC0B6F3C5AC2E BC8A3C8AF20B8F0B
8 제장오라클 81 8.1 뷰 8.2 관계 DBMS의시스템카탈로그 8.3 오라클의시스템카탈로그연습문제 뷰와시스템카탈로그 관계데이터베이스시스템의뷰 (view) 는다른릴레이션으로부터유도된릴레이션 (derived relation) 으로서 ANSI/SPARC 3단계아키텍처의외부 뷰와다름 뷰는관계데이터베이스시스템에서데이터베이스의보안메카니즘으로서, 복잡한질의를간단하게표현하는수단으로서,
More information완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에
1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >
More information금오공대 컴퓨터공학전공 강의자료
데이터베이스및설계 Chap 2. 데이터베이스관리시스템 2013.03.11. 오병우 컴퓨터공학과 Inconsistency of file system File System Each application has its own private files Widely dispersed and difficult to control File 중심자료처리시스템의한계 i. 응용프로그램의논리적파일구조는직접물리적파일구조로구현
More informationList Manual
2009. 12 SINAMICS S120/S150 SINAMICS 3 3.1 3-1522 3.2 3-1532 3-1521 3-1522 3-1523 PROFI d-riive (p1300 = 20, 21), DC. DC (p1232, p1233, p1234). ENCODER p0491.. : P0491=0 Encoder OFF2. : p0491,. 3-1524
More informationMicrosoft PowerPoint - 2장 (DBConcepts) [호환 모드]
제 2 장 데이타베이스시스템개념과아키텍처 Fundamentals of Database Systems R. A. Elmasri and S. B. Navathe Copyright 2002 황규영홍의경음두헌박영철김진호조완섭 목차 2.1 데이타모델, 스키마, 인스턴스 2.2 DBMS 아키텍처와데이타독립성 2.3 데이타베이스언어와인터페이스 2.4 데이타베이스시스템환경
More informationMicrosoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information13주-14주proc.PDF
12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float
More informationMySQL-.. 1
MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition
More informationSQL 실행계획을 이용한 패턴튜닝_ _최종.ppt [호환 모드]
SQL 과실행계획을이용한튜팅 엔코아컨설팅 컨설팅사업본부본부장 김동훈이사 CONTENTS SQL 의개념실행계획패턴실행계획의최적화 SQL 의개념 - 수행단계 SQL 은데이터처리방법을기술한것이아니라단지필요한데이터를요구한것임 SQL Parser Parsed Query Query Transfrmer Transfrmed Query Estimatr Plan Generatr
More informationMicrosoft PowerPoint - 1_3_DBA_SQL_tuning
아주특별한 SQL 튜닝 씨퀄로 김정선 아주특별한 Level 400 100 개념및소개수준 200 중간수준 300 고급수준 400 전문가수준 선수지식불필요 100 에더하여기술적세부사항설명 200 에더하여능숙한사용경험, 아키텍처지식필요 SINCE 2002 SQL Server Specialist Member & Leading PASS Korea Member Microsoft
More informationPowerPoint 프레젠테이션
실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3
More informationTECHNICAL WHITE PAPER Tibero Optimizer SQL Execution Plan October 2012
Tibero Optimizer SQL Execution Plan 목차 1. Introduction 2. Watching SQL Plan 2.1. SQL Plan 이란? 2.2. SQL Plan 확인하기 2.3. Understanding SQL Plan 3. Conclusion Optimizer 에의해만들어진 SQL 플랜을확인한는여러방법들을소개하고플랜에서보여주는정보의의미에대해알아본다.
More information된테이블은파티션되지않은테이블과아무런차이가없습니다. 그러므로애플리케이션변경작업은요구되지않습니다. 테이블은 파티셔닝키 (partitioning key) 을통해분할됩니다. 파티셔닝키란특정로우가어떤파티션에위치하는지정의하는일련의컬럼을말합니다. Oracle Database 11g
참고 : 본문서는정보제공만을목적으로제공됩니다. 본문서는일체의자료, 코드, 또는기능을보장하지않으며, 본문서의정보에의존하여구매결정을내려서도안됩니다. 본문서에서설명된오라클제품또는기능의개발, 출시, 기능제공시점등은전적으로오라클의재량에의해결정됩니다. ORACLE PARTITIONING ORACLE PARTITIONING 8 세대에걸쳐검증된기능 업계에서가장광범위하고포괄적인솔루션
More informationVer 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권
마감하루전 Category Partitioning Testing Tool Project Team T1 Date 2017-05-12 Team Information 201111334 김강욱 201211339 김진욱 201312243 김동권 201510411 이소영 [ 마감하루전 ] T1 1 INDEX Activity 2041. Design Real Use Cases
More informationBY-FDP-4-70.hwp
RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,
More informationMicrosoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx
OOPT Stage 2040 - Design Feesual CPT Tool Project Team T8 Date 2017-05-24 T8 Team Information 201211347 박성근 201211376 임제현 201411270 김태홍 2017 Team 8 1 Table of Contents 1. Activity 2041. Design Real Use
More information리눅스 프로세스 관리
프로세스 (Process) Process 프로그램이나명령어를실행하면메모리에적재되어실제로실행되고있는상태를의미 이러한프로세스들은프로세스가시작하면서할당받는프로세스식별번호인 PID(Process ID), 해당프로세스를실행한부모프로세스를나타내는 PPID(Parent Process ID), UID 와 GID 정보를통해해당프로세스가어느사용자에속해있는지, 프로세스가파일에대해갖는권한및프로세스가실행된터미널,
More information객관식 1. 아래의쿼리를만족하는결과를가장잘설명한것은? SELECT A.* FROM HR.EMPLOYEES A, HR.EMPLOYEES B WHERE 1=1 AND A.MANAGER_ID = B.EMPLOYEE_ID AND B.SALARY >= ANY A.SALARY;
Study Room Doc.02 : SQLD 예상문제 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 21 회기출문제를바탕으로작성 작성자 : 월야루 2016-09-04 객관식 1. 아래의쿼리를만족하는결과를가장잘설명한것은? SELECT A.* FROM HR.EMPLOYEES A, HR.EMPLOYEES
More information