Oracle Wait Event 모니터링 Oracle Wait Event 모니터링 순서 [1] Oracle Wait Event 모니터링 [2] Enqueue 와 Latch [3] Shared Pool 관련 Wait Event [4] buffer cache 관련 Wait
|
|
- 시영 애
- 2 years ago
- Views:
Transcription
1 Oracle Wait Event 모니터링 Oracle Wait Event 모니터링 순서 [1] Oracle Wait Event 모니터링 [2] Enqueue 와 Latch [3] Shared Pool 관련 Wait Event [4] buffer cache 관련 Wait Event [5] redo log 관련 Wait Event [6] Top SQL 튜닝 [1] Oracle Wait Event 모니터링 흔히 DBA 를 3D 업종이라고부르는이유가운데하나는몸은고달픈데반해그성과가별로티가나지않는다는사실때문일것이다. 실제로, DBA 가수행해야하는일상적인관리업무들은몸은다소피곤하게만들지몰라도어느정도경험이쌓이면그리부담을주는일은아니다. 우리가한단계업그레이드된전문가로서인정받는 DBA 가되기위해서는장애상황혹은유사장애상황에서 DB 모니터링작업을수행하고분석할수있어야한다. 시스템이갑자기느려지고업무가마비되는상황에맞닥뜨렸을때문제의원인이무엇인지를집어낼수있는능력이있어야하며최소한오라클의문제인지아닌지를판단할수는있어야몸으로야간작업이나때우는 DBA 가아니라조직에없어서는안될전문가로서의나의존재가치를인정받을수있을것이다. 이글에서는오라클 Wait Event 에대하여간단히알아보고일시적인성능저하상황에서 Wait Event 를모니터링하고그원인을찾아가는방법에대하여다루어보고자한다. 짧은지면위에다룰수있는내용도제한되어있고글쓴이의지식또한일천하지만오라클전문가가되기위해같은길을가고있는동료로서가진지식몇가지공유한다는취지로이글을쓴다. 오라클의 Wait Event 정보는 V$SYSTEM_EVENT, V$SESSION_EVENT, V$SESSION_WAIT 등이있는데, 이가운데 V$SESSION_WAIT 는각세션이현재 Waiting 하고있는 Event 나마지막으로 Wait 한 Event 정보를보관하고있으며, V$SYSTEM_EVENT 와 V$SESSION_EVENT 는시스템이 Startup 된이후각각시스템전체, 혹은세션별로발생한 Wait Event 정보를누적하여기록하고있다. 오라클의 Wait Event 는성격에따라 Network 교신이나 IO 를위해대기하는일상적인 Wait 와특정자원에대해여러프로세스가동시에액세스하고자할때발생하는 Wait, 별달리할일이없어대기하고있는 Idle Wait 등세가지유형으로구분할수있는데그유형에따라해석방법도달라진다. 일단, Idle Wait 는일반적인관심의대상에서제외되며 IO 나 Network 관련 Wait 는작업량이증가하면같이증가하는 Wait 이므로전체서비스시간 (CPU time) 과비교하여상대적으로평가해야하며총 Wait time 보다는평균 Wait Time 에관심을두고분석을해야할것이다. 시스템자원에대한 Wait 는데이터베이스서버튜닝시가장주된관심대상이되며이들 Wait 에대해서는평균 Wait Time 뿐만아니라총 Wait Time 에도관심을가지고분석해야할것이다. 유형별로대표적인 Wait Event 를살펴본다면아래와같다. [ 주요 Wait Event] 구분이벤트명설명
2 일상적인 Wait Event db file scattered read db file sequential read Full Scan 시 OS 에 I/O 를요청해놓고대기 Index Scan 시 OS 에 I/O 를요청해놓고대기 log file sync 변경 log buffer 를 log file 에반영하는동안대기 (IO, Network) DFS lock handle OPS 환경에서노드간분산 Lock 교환에따른대기 global cache cr request OPS 환경에서노드간 Buffer Block 교환에의한대기 enqueue Type 에따라세분화 (24 개의 enqueue type (9i)) latch free Name 에따라세분화 (239 개의 latch 가존재 (9i)) buffer busy waits 동일블록에대한동시액세스에따른경합 자원경합에따른 Wait Event free buffer waits free buffer 를할당위해 DBWR 의 Write 를대기 Log buffer space Log buffer 를할당받기위해 LGWR 의 write 를대기 library cache lock SGA 내의 library cache 를참조하기위한대기 ( 검색 ) row cache lock SGA 내의 dictionary cache 를참조하기위한대기 Idle Event SQL*Net message from client Pmon timer Client 로부터의작업요청을대기 PMON 이할일없을때대기하는 Event 업무시간대에시스템이갑자기느려졌다면서오라클서버에문제가없는지문의가들어오면글쓴이는우선아래의 SQL 을수행시켜본다. select /*+ ordered / distinct /* 속도를위해 v$sql 을조인할경우중복되는레코드제거 */ s.sid SID, s.username, s.program, p.spid "OS-Pid",w.seconds_in_wait as "W_time(Sec)", decode(w.wait_time,0,'wai-ting', 'Waited') Status, w.ename event, -- p1text ':' decode(event,'latch free',p1raw, to_char(p1)) ',' -- p2text ':' to_char(p2) ',' p3text ':' to_char(p3) "Additional Info", q.sql_text from ( select a.*, decode(a.event,'latch free', 'latch free (' b.name ')', 'row cache lock', 'row cache lock (' c.parameter ')', 'enqueue', 'enqueue (' chr(bitand(p1, )/ ) chr(bitand(p1, )/65535) ':'
3 decode(bitand(p1,65535), 1, 'N', 2, 'SS',3,'SX',4,'S',5,'SSX',6,'X') ')', a.event ) ename from v$session_wait a, v$latchname b, v$rowcache c where a.p2 = b.latch#(+) and a.p1 = c.cache#(+) and c.type(+) = 'PARENT' and a.event not in ('rdbms ipc message','smon timer','pmon timer','slave wait','pipe get','null event', 'SQL*Net message from client', 'SQL*Net message to client','px Idle Wait', 'PX Deq: Execution Msg', 'KXFQ: kxfqdeq - normal deqeue', 'ges remote message', 'wakeup time manager', /* idle event 적절히수정 */ 'lock manager wait for remote message', 'single-task message') ) w, v$session s, v$process p, v$sql q where w.sid = s.sid and s.paddr = p.addr and s.sql_hash_value = q.hash_value(+) and s.sql_address = q.address(+) order by w.ename; SQL 의구체적인내용이야필요한정보와개인적취향에따라달라지겠지만, 중요한것은일단 V$SESSION_WAIT 뷰로부터실시간 Wait Event 정보를얻어낸다는것이다. 위 SQL 을수행했을때나타나는결과가없다면일단오라클측면에서업무성능을심각하게마비시키는 Waiting 이발생하고있지않다고봐도큰무리가없을것이다. 일반적인상태에서는주로 'db file sequential read' 나 'db file scattered read' 가나타날텐데, 이러한 Wait Event 는보통짧은시간동안지속되며대상자원 ( 블록 ) 을바꿔가며 Wait 가반복되는형태로나타날것이다. 이는작업처리량이많을때일상적으로발생하는 IO 관련 Wait Event 이므로해당세션에서 IO 를제법많이유발하고있다는정도로이해하고넘어가면될것이다. 물론, Wait 의지속시간이길거나지나치게빈번히나타나는 SQL 에대해서는비효율적인실행계획을수립하고있지않은지검토해서튜닝해주어야한다. 성능저하의원인이오라클쪽에있는경우에는특정자원에대한 Waiting 이상당히오랫동안지속되어현재까지 Waiting 이진행중인세션들 (STATUS 가 'Wai-ting' (wait_time=0) 이며 'W_time(sec)' (seconds_in_wait) 값이상당히큰세션 ) 이존재할가능성이높다. 오라클의내부적인작업들은매우짧은기간에처리되어야하므로, Idle event(where 절에서 not in 으로처리한부분, 버전에따라달라질수있다.) 이외의특정 Wait Event 가눈에띌정도로검출된다는것은오라클내부적으로는훨씬더많은 Waiting 이발생하고있다고생각해야한다. 바로이런세션들이문제의범인들이며이제부터 DBA 는이들 Wait Event 에대한원인을파악하여조치하는작업을해주어야한다. 각각의 Wait Event 에따라원인을추적하고조치하는방법은달라질것이다. 다음호에서는, 자주경험하는몇가지대표적인 Wait Event 들에대하여 SGA 영역별로구분하여좀더자세히살펴보고, 그에앞서 Lock 또는 Latch Event 의이해를위해필요한 Enqueue 와 Latch 의개념을간단히알아보도록하겠다. [2] Enqueue 와 Latch 개념이해하기 DBMS 의가장주된기능중에하나는동일자원에대한동시액세스를관리하는것이며, 이를위해오라클이사용하는대표적인제어구조가 Enqueue 와 Latch 이다. Enqueue 와 Latch 는모두특정자원에대한접근을 serialize 하는것이목적이라는점에서는같은 Lock 의일종이지만관리방식이나용도에서차이가있다. Enqueue 는이름에서보듯 Queue 를통해관리된다. 대상자원에대한 Owner, Waiter, Converter Queue 를관리하면서먼저요청한순서대로 Lock 을획득하도록하는구조이며, Exclusive 모드뿐아니라다양한수준의공유를허용한다. 대표적인것이테이블데이터를 Update 할때사용되는 TM, TX enqueue 이다. 반면에, Latch 는 Enqueue 에비해훨씬단순한구조로서매우짧은시간내에획득되고해제된다. Queue 를
4 통해관리되지않으므로먼저 Request 한프로세스가먼저 latch 를획득한다는보장이없으며, 대부분의경우 Exclusive 모드로만획득된다. Latch 는주로 SGA 의특정메모리구조체에대한액세스 (library cache latch, cache buffers chains latch) 혹은메모리할당시 (shared pool latch) 사용되거나오라클의중요한코드가동시에수행되지않도록하기위한용도로 (redo writing latch) 사용된다. Latch 는 Enqueue 보다는하위 level 에서 Locking 자체의부하를최소화하며작동하는제어메커니즘이라고할수있으며, 실제로 Enqueue 역시내부적으로는 Latch (enqueues, enqueue hash chains latch ) 에의해운영된다는점을생각하면둘사이의차이를쉽게이해할수있을것이다. Enqueue Enqueue 정보는내부적으로 Enqueue Resource 배열과 Enqueue Lock 배열에저장된다. 특정자원에대한 Lock 이요청되면대상을하나의 Resource 로정의하여할당하고그 Resource 에대해관련 Lock 정보를 Owner, Waiter, Converter 가운데하나로서 Link 시키는방식으로운영되며, 이러한정보는 V$RESOURCE 와 V$LOCK 뷰를통해조회해볼수있다. V$RESOURCE 와 V$LOCK 은 1:M 관계로하나의 Resource 에대하여여러건의 Lock 레코드가 Owner (LMODE>0, REQUEST=0), Waiter (LMODE=0,REQUEST>0), Converter (LMODE>0, REQUEST>0) 중하나로서대응된다. Enqueue Wait 이발생하는것은다른세션이이미나보다먼저해당자원에대한 Lock 을잡고있으므로인해내가원하는모드로 Lock 을할당받을수없기때문이다. 자신이필요로하는 Lock 의획득에실패한세션은 Owner 가작업을완료하고자신을깨워줄때까지 ( 세마포어를포스트해줄때까지 ) Waiter 혹은 Converter Queue 에서대기하게되며, 기다려도소식이없으면 3 초간격으로 timeout 에의해일어나혹시 Deadlock 상황이아닌지점검해본후다시 Sleep 에빠져들기를반복하게된다. 튜닝관련자료를보다보면가끔 Enqueue 에대한 Wait 이많은경우에 Enqueue_resource 나 Enqueue_lock 파라미터를증가시켜주어야한다는가이드를보게되는경우가있는데이파라미터들은 Enqueue resource 와 lock 배열의크기를늘려줄뿐특정 Enqueue 자원에대한동시경합을해소시키는것과는상관이없다. Enqueue Wait 를해소하기위한구체적인방법은 Enqueue type 에따라달라지지만결국은 Enqueue 를불필요하게요청하는경우가없는지를살펴 Enqueue 에대한요청을최소화하고 Enqueue 를점유하는시간을최대한단축시키는것이다. TX Enqueue 에대한 Wait 은대상자원에대한 Lock 을소유하고있는세션과그세션이수행중인 SQL 을찾아트랜잭션이장시간지속되고있는이유가무엇인지애플리케이션측면에서조사해야하며, SQ enqueue 는 Sequence 값할당시발생하는경합이므로 cache 값을늘려줌으로써완화시킨다거나 ST Enqueue 의경합이존재할경우에는 Locally managed tablespace 를사용하거나 Initial, Next 등의 extent 크기를적당한값으로조정하여실시간공간할당을감소시켜주는등의방법들이 Enqueue Wait 에대처하는대표적인사례이다. 지난호에서소개한 Session Waiter 스크립트는 Enqueue Wait 이벤트에대해서 Enqueue type 과모드를함께표시하여주도록하고있으며, 참고로 Enqueue type 별누적 Wait 현황을확인하고자하면아래 SQL 을수행하면된다. select q.ksqsttyp type, q.ksqstget gets, q.ksqstwat waits, round(q.ksqstwat/q.ksqstget,3) waitratio from sys.x$ksqst q where q.inst_id = userenv('instance') and q.ksqstget > 0 order by waits desc / Latch 오라클운영시에하위레벨에서내부적으로처리되는다양한조작들이 latch 의관할하에수행되는데 V$LATCHNAME 을조회해보면 (9i 기준으로 ) 239 종류나되는 Latch 가존재하는것을확인할수있다. 이가운데우리가자주접하게되는 latch 는다음과같은정도이며각 Latch 의기능은관련 SGA 별 Wait 를다룰때간단하게나마소개하도록하겠다.
5 Shared pool library cache latch, shared pool latch, row cache objects Buffer Cache cache buffers chains latch, cache buffers lru latch, cache buffer handle Redo log redo allocation latch, redo copy latch, redo writing latch OPS dlm resource hash list Willing to wait 모드와 No-wait 모드 Latch 획득방식은 No-wait 과 Willing to wait 의두가지모드로구분할수있다. Willing to wait 모드는 Latch 의획득에실패하면좀더시간을끌면서해당 Latch 를잡을때까지재시도를해보는방식을말한다. 일차적으로는 CPU 를놓지않고정해진횟수만큼 Spinning 을한후재시도를해보다가그래도실패하면 CPU 를놓고 Sleep 하다가 timeout 되어재시도하는작업을반복하면서 Latch 의획득을노력하게된다. Latch 가 sleep 에들어가게되면 'latch free' wait event 대기가시작된다. sleep 의지속시간은 sleep 횟수가늘어갈수록점점길어지게되는데, 따라서 V$LATCH 의 Gets 와 Sleeps 의비율과함께 Sleep1~sleep4 항목에서몇차 Sleep 까지발생했는지여부도각 Latch Wait 의심각성을판단하는요소가운데하나가된다. No-wait 모드는 Willing to wait 과는달리더이상미련을두지않고해당 Latch 에대한획득을포기하는것이다. No-wait 모드가사용되는경우는두가지가있는데, 하나는동일한기능을하는 Latch 가여러개존재하여그중에하나만획득하면충분하여서특정 Latch 에미련을가질필요가없는경우이다. 물론, 이때에도같은기능의모든 Latch 에대한시도가실패로끝날경우에는 Willing to wait 모드로요청을할것이다. No-wait 모드가사용되는다른한가지경우는 dead lock 을피하기위해서이다. 오라클은기본적으로 latch dead lock 상황을피하기위하여모든 Latch 에 level 을부여하여정해진순서를따라서만 Latch 를획득하도록하고있는데, 필요에의해이규칙을어기고 Latch 를획득하고자할경우일단 No-wait 모드로시도를해보는것이다. 다행히 Latch 를잡으면좋은것이고비록 latch 를잡을수없더라도무한정기다림으로써 dead lock 상태에빠지는일은피할수있는것이다. No-wait 모드의 Latch 작업에서는당연히 Latch 관련 wait 이발생하지않으며, redo copy latch 를제외하고는 Willing to wait 모드로 Latch 를획득하는경우가훨씬많다. Parent latch 와 Child latch Latch 가운데에는동일기능을하는 Child latch 들의 set 으로운영되는 Latch 도있으며하나의 Latch 로만운영되는 Latch 도있다. 전자의대표적인예로는 cache buffers chains ( 버퍼캐쉬블록들을같은이름의다수의 Latch 가나누어담당 ) 가있으며, 후자의예로는 shared pool latch (shared pool 내에서메모리할당을위해획득해야하는 Latch 로시스템에하나만존재 ) 가있다. 이와같은 Latch 관련통계정보는 Parent latch 와 Child latch 의개념으로관리가되는데 Latch set 에서개별 Child latch 에대한통계정보는 V$LATCH_CHILDREN 뷰를통해조회할수있으며, 단일 Latch 혹은 Latch set 의마스터 Latch (parent) 에대한통계정보는 V$LATCH_PARENT 뷰를통해조회할수있다. 지금까지한회분량을할애하여 Enqueue 와 Latch 에대해요약해본이유는, 많은 Waiting 이 SGA 내의공유자원 (Block, Cursor 등 ) 에대한경합으로인해발생하며이러한경합은다시해당자원에대한동시액세스를제어하는 Enqueue 와 Latch 에대한경합으로흔히드러나게되므로오라클의 Wait Event 를모니터링하기위해서는 Enqueue 와 Latch 의구조와작동원리에대해이해하는것이필수적이기때문이다. [3] Shared Pool 관련 Wait
6 Share pool 과성능문제 오라클이공유메모리 (SGA) 를사용하는가장큰이유는기본적으로메모리사용을최소화하면서처리성능은최대화하기위한것이다. 한번액세스된블록을 Database buffer cache 에캐쉬함으로써비용이큰 Disk I/O 를최소화하는것처럼, 한번처리된 SQL 의실행정보를 Shared Pool 에공유함으로써파싱작업을위한 CPU, 메모리자원의사용을최소화하고 SQL 수행속도를증가시킬수있다. Shared Pool 에는 SQL 이나 PL/SQL 을수행하기위한각종정보 - SQL 구문및실행계획, PL/SQL 소스, 테이블, 뷰등의각종오브젝트와오브젝트상호간의의존관계, 권한관계등 - 가저장되어있다. 지면관계상이글에서 Shared Pool 의관리메커니즘을상세히기술할수는없지만몇가지내재적인특징으로인해 Shared Pool 은오라클의메모리영역가운데에서도가장성능문제의요소가많은곳이면서도효과적인튜닝이수월치않은영역이기도하다. 무엇보다, Shared Pool 에서가장문제가되는것은메모리의조각화 (Fragmentation) 이다. Shared Pool 에서라이브러리캐쉬오브젝트를위해할당되는메모리단위를 chunk 라고부르는데 chunk 의크기는수바이트에서수 K 바이트에이르기까지필요에의해다양하게할당된다. 새로운 chunk 의할당이필요하게되면, 프로세스는이미존재하는 chunk 로부터필요한만큼의크기만을떼어내어사용하므로시간이흐를수록점차메모리가조각화되는것을피할수없다. ( 이는, Pctincrease 가 0 가아닌테이블스페이스에서익스텐트의할당과해제가반복됨에따라공간의조각화가심해지는것을떠올리면이해가쉬울것이다. ). 어느정도정형화된패턴의애플리케이션이수행되는환경이아니라, 공유가불가능한다양한형태의 SQL( 대표적으로 Literal SQL) 이빈번히요청되는환경이라면 Shared Pool 메모리조각화에따른문제는더욱심각해진다. 또한, Shared Pool 은일반적인메모리캐쉬와는달리메모리에저장되었던정보를잠시기록해둘대응되는디스크공간이없으므로한번 flush 된라이브러리캐쉬오브젝트를 reload 하기위해서는해당정보를재생성해야만한다. 이과정에서관련오브젝트정보의검색및참조, locking, 메모리할당등의작업을위해많은비용이들기때문에결국 Shared Pool 관련튜닝의최대과제는 SQL 공유를최대화하여새로운파싱요청과메모리요청을최소화하는것이라고할수있다. 헌데, 이는애플리케이션의설계와연계되는영역으로서이미개발이완료된운영서버에서는변경작업이여의치않은것이현실이다. 앞서, Shared Pool 이 DBA 로서튜닝이수월치않은영역이라고표현한이유가운데하나가여기에있다. Shared Pool 관련오해바로잡기 Shared Pool 과관련하여판단이쉽지않은부분가운데하나가과연 shared_pool_size 를얼마나할당할것인가하는것이다. 오라클은 Shared Pool 메모리를최대한효율적으로활용하기위하여다양한기법을동원하고있는데, 이러한메모리관리메커니즘에대해정확히알지못하여 Shared Pool 크기를지나치게크게할당함으로써오히려문제를악화시키는경우도드물지않다. 이러한오해를바로잡기위해 Shared Pool 의메모리할당과정을간단하게나마살펴보도록하겠다. 새로운메모리 Chunk 가할당되는과정을살펴보면, 우선프로세스는 Free List 를검색하여자신이필요로하는크기의 Free Chunk 를찾고, 그러한 Free Chunk 가없으면원하는크기보다한단계큰 Free Chunk 를찾아서필요한크기만큼분할하여사용하게된다. 만약 Free List 에서충분한크기의 Free Chunk 를찾을수없다면, 이미사용되었으나현재는사용되고있지않는 (unpinned) Chunk 들의 LRU List 를검색하여오래된것부터 8 개씩 flush 시켜 Free Chunk 로만든후자신이필요한크기를할당하여사용하게된다. 만약이과정에서현재사용중인 (pinned) Chunk 가대부분이거나, 너무메모리조각화가많이일어나서기존 Chunk 를 Flush 시킨후인접한 Free Chunk 들을병합해보아도원하는크기의 Free Chunk 를얻어낼수없다면오라클은 ORA-4031 에러를발생시키는데, 그이전에한가지최후의비밀무기가더숨어있다. 바로 Spare Free 메모리라는것인데오라클은인스턴스기동후처음에는전체 Shared Pool 의 50% 가량은 Free List 에올려놓지않고아예숨겨두었다가앞서와같이도저히피할수없는순간이되면조금씩해제시켜사용하도록한다. 그야말로메모리의조각화를최소화하기위한오라클의눈물나는노력이라고할수있을것이다. 물론이영역까지다소모한후에 flush 를통해서도필요한 Chunk 를확보할수없는상황이되면결국 ORA-4031 에러가발생할것이다. 많은이들이 Shared Pool 의남아있는 Free memory 의크기가작으면 shared_pool_size 를증가시켜주어야한다고믿고있는데이는잘못된것이다. Shared Pool 은정보의재사용을위해운영하는것이므로 SQL 실행이끝났다고해서해당 Chunk 를 Free List 로반납하지않는다. 즉, Free Memory 가남아있는한계속소모시키는방식으로사용되므로오랜시간동안운영되어온시스템에서 Shared Pool 의 Free Memory 가매우적게남아있는
7 것은그자체로는문제가되지않으며, 오히려피크타임이지난후에도많은양의 Free Memory 가남아있다면이는 Spare Free 메모리도다소모하지않은상태로서불필요하게많은메모리가할당되어낭비되고있음을의미한다. 더구나, Shared Pool 크기가지나치게크면 Free Memory 를다사용할때까지의기간이연장되는효과는얻을수있겠지만, 시간이지날수록 Memory 의조각화가더욱심해지고 Free List 의길이가길어져 Free Chunk 의검색과할당에걸리는시간이지연되므로오히려성능이악화되는결과를초래할것이다. 또한, 메모리조각화에따른영향을줄이기위해오라클은 5000 bytes 가넘는큰사이즈의 Chunk 만을위해전체 Shared Pool 의 5% 정도를따로관리하는방법을사용하고있는데, 경험적으로보면이공간은거의사용되지않고버려지고있는경우가많다. 이는 V$SHARED_POOL_RESERVED 뷰의 USED_SPACE 값을확인해보면알수있으며, 5000 bytes 이상의 large chunk 가거의요구되지않는환경에서는오히려이크기를줄여주는것이나을것이다. Shared Pool 관련 wait Shared Pool 과관련하여흔히발생하는 Wait 은라이브러리캐쉬오브젝트에대한동시액세스와메모리할당에따른관련 Lock 또는 Latch 에대한경합이대부분이며, 구체적인이름은다음과같다. (Latch free 이벤트시괄호안의관련 latch 이름은 v$session_wait 의 p2 값과 v$latchname 의 latch# 를조인하여얻어낼수있다. 1 회 SQL 참조 ) Latch Lock latch free ( library cache ) latch free ( library cache load lock) library cache lock, library cache pin library cache load lock latch free ( row cache objects ) row cache lock latch free ( shared pool ) Library cache lock, library cache pin, library load lock 은각각특정라이브러리캐쉬오브젝트에대한검색이나변경및실행또는로드시에대상오브젝트에대해할당되며, 이러한 Locking 작업은 library cache latch 와 library cache load lock latch 의관할하에처리된다. Shared pool latch 는 Free List 나 LRU List 를검색하거나메모리를할당하는작업에사용되며, row cache lock 과 row cache objects latch 는 Data dictionary cache 오브젝트에대한동시액세스를제어하는데사용된다. Latch 의개수는시스템전체적으로하나또는제한된개수가존재하는것이고 Lock 은대상오브젝트각각대해할당되는것이므로, 엄밀하게말해서 Lock 에대한경합은직접적으로는특정라이브러리캐쉬오브젝트에대한동시액세스로인해유발되는것인반면에, Latch 에대한경합은시스템전체적으로관련오퍼레이션 ( 즉, SQL 파싱 ) 자체가지나치게많이발생하거나, 짧은시간내에처리되지못함으로인해유발되는것이라고구분해볼수있다. 그러나, 결국이모든경합은근본적으로 Shared Pool 의조각화 (Fragmentation) 에따른문제가주된원인이며다시이러한조각화는요청되는 SQL 들이공유되지못하고지속적으로새롭게파싱되고메모리가할당됨으로인해발생하는것이다. 따라서, 이러한문제를해결하는가장효과적인방법은 Literal SQL 을바인드변수를사용하도록수정하거나, SQL 작성표준을마련하고, HOLD_CURSOR/ RELEASE_CURSOR, SESSION_CACHED_CURSORS, CURSOR_SPACE_FOR_TIME, CURSOR_SHARING 등의파라미터를활용하는등의방법을통해 SQL 의공유도를높여주는것이며, 또한자주사용되는 PL/SQL 에대해서는 DBMS_SHARED_POOL 패키지를사용하여메모리에서 Flush 되지않도록보존하는등의조치를취해주면도움이될것이다. SQL 의수정이어려운환경이거나시스템에요청되는 SQL 의절대량이확보된메모리공간에비해많은상황이라면주기적으로피크타임을피해 Shared Pool 을직접 Flush(alter system flush shared_pool 명령을사용한다.) 시켜주는것도권장할만한관리방법이다. 많은이들이우려하는바와는달리 Shared Pool 을직접 flush 시키는것이심각한성능상문제를야기하지는않으며특히중요한패키지나 SQL cursor, Sequence 등이 keep 되어있는경우라면
8 더욱그러하다. 가끔버그를포함한특수한상황에서특정라이브러리캐쉬오브젝트에대한 lock 이장시간해제되지못하고있는경우도있는데이때는 X$KGLLK 뷰를조회하면 library cache lock 에대한 holder/waiter 를확인하여조치할수있다. 또한, Row cache lock 에대한경합은 Locally managed tablespace 를도입하거나, DML 이빈번한테이블에대한인덱스의개수를줄여주는등의조치를통해완화될수있을것이다. 부연하자면, Shared Pool 과관련된 Wait 는특정오브젝트자원에대한경합에의해발생하기보다는애플리케이션의설계, 보다단순화시켜표현하면 Literal SQL 에의한메모리조각화에의해발생하는경우가많다. 따라서, Shared Pool 관련 Wait 가많이발생하여오라클이그로인한성능상의문제를드러낼때눈에띄는하나의주범을찾아내려는노력은별효과를거두지못하는경우가많으며, 그러한시점에 DBA 가즉각적으로취할수있는조치로는직접 Shared Pool 을 Flush 시키는정도가있을것이다. 결국, 평소에꾸준한모니터링을통해 Shared Pool 의적절한크기와관련파라미터값을찾아가는것, 그리고무엇보다애플리케이션측면에서튜닝및수정작업을진행함으로써성능문제를사전에예방하는것이최선이다. [3] Buffer Cache 관련 Wait Buffer Cache 구조 Buffer Cache 의기본적인기능은여러프로세스에의해공통으로자주액세스되는데이터베이스블록을메모리에캐쉬하여물리적인디스크 IO 를최소화함으로써더빠른액세스속도를제공하기위한것이다. 복잡한설명은생략하고, Buffer Cache 의기본구조를이해하기위한몇가지핵심용어들을간단히정리해보도록하겠다. Buffer header 모든버퍼블록들은각자의 buffer header 를통해액세스되고관리된다. 즉, 메모리에캐쉬된특정데이터블록에대한액세스는먼저해쉬알고리즘을통해 cache chain 상의 buffer header 를찾고해당 buffer header 에기록된데이터블록의메모리상주소를찾아가원하는정보를읽는방식으로이루어진다. Buffer header 에기록되는주요정보는다음과같으며 Buffer header 의내용은 V$bh 뷰를통하여조회해볼수있다. - 메모리상에서의해당버퍼블록의주소 - 해당버퍼블록 ( 실제로는버퍼헤더 ) 가포함되어있는 hash chain - LRU, LRUW, CKPTQ 와같은리스트상에서의해당버퍼블록의위치 - 해당버퍼블록에대한 User, Waiter 와상태를나타내는각종 Flag Hash Buckets/ Hash Chains Buffer Cache 의모든블록은해쉬알고리즘을통해관리된다. 곧, 데이터블록의 DBA, Class 값으로 Hash Function 을적용하여해당블록이속하는 hash buckets 을할당하며, 동일한 hash buckets 에할당되는데이터블록의버퍼헤더들은 linked list 형태로 hash chain 을이루게된다. Hash buckets/hash chains 는특정데이터블록을찾아가기위한수단을제공한다. 각각의 hash buckets 에는자신에속한 hash chain 을보호하기위한 latch(cache buffers chains) 가할당된다. LRU LRU 는두개의리스트, 즉 LRUW 와 LRU 리스트의쌍으로구성된다. LRUW(LRU Write list) 는 dirty list 와같은말이며, 수정되어디스크에반영되어야할블록들의리스트이다. LRU(Least recently used list) 는 LRUW 에올라가지않은나머지버퍼블록들이등록되어있다. Buffer cache 상의버퍼블록은반드시 LRU 나 LRUW 둘중의하나에등록되며, 두리스트에동시에포함되는경우는없다. LRU 는 Free Buffer 를찾기위한수단을제공한다. 경합을피하기위해버퍼캐쉬블록들을여러개의 LRU 쌍으로나누어관리할수있으며, 각 LRU 리스트를보호하기위해 Latch(Cache buffers lru chain) 가하나씩할당된다.
9 Buffer Cache 운영규칙 메모리상의특정버퍼블록을찾아가거나, 특정블록이메모리에캐쉬되어있는지를확인하기위해서오라클은 hash bucket/hash chain 구조를사용한다. 새로운데이터블록을디스크로부터메모리로읽어들이기위한 free buffer 를확보하기위해오라클은 LRU 리스트를사용한다. 버퍼블록은 LRU 나 LRUW 둘가운데하나에등록된다. 하나의블록에대해시간대가다른여러개의복사본이존재할수있으며, 그가운데오직 CURRENT 버퍼만이변경될수있다. 하나의버퍼블록은한번에오직하나의프로세스에의해서만변경될수있다. Buffer Cache 관련 Waits 버퍼캐쉬와관련되어흔히발생하는대표적인 Wait 이벤트는다음과같다. buffer busy waits 여러세션이동시에같은블록을읽으려고하거나여러세션이같은블록에대한변경작업이완료되기를기다리고있는경우에발생하며, 특정블록에대한경합을해소하기위한조치는블록의유형에따라달라진다. Data block 에대한경합이많은경우는 Pct free 나 Pct used 값을사용하여블록당로우수를줄이거나, 특정블록에로우입력이몰리는구조의인덱스 (right-hand-index) 일경우는 reverse key index 의사용을검토하는등의방법이있으며, segment header 의경합이많은경우는 freelist 수를늘리거나 Extent 의크기를증가시키는등의방법이있고, undo header 나 undo block 에대한경합은롤백세그먼트의개수나크기를증가시키는것이전형적인조치방법이다. v$waitstat 과 x$kcbfwait 을이용하며 Class 또는 file 별로 wait 발생상황을판단할수있다. free buffer waits/write complete waits DBWR 가 dirty buffer 를 write 하는동안서버프로세스가대기하고있는경우발생한다. 곧, 너무나많은 dirty buffer 가생겨나거나 DBWR 의쓰기속도가충분히튜닝되지못한경우에발생한다. 점검포인트는물리적디스크의속성 (stripe size, layour, cache size) 최적화, Raw device 의활용, Async IO 나 multi- DBWR(db_writer_processes) 활용여부등이다. 위와같은버퍼블록에대한경합역시비효율적인실행계획을통해수행되는애플리케이션에의하여불필요하게많은블록이메모리로올라오는것이원인일경우가많으므로경합이빈번한블록이속하는테이블 / 인덱스명을찾아낼수있다면관련 SQL 을찾아내어보다효과적인튜닝작업이이루어질수있을것이다. v$session_wait 의 p1,p2 컬럼에각각 file#, block# 값을표시하여주므로이값을이용하여아래의 SQL 문으로현재어떤오브젝트에대하여해당 wait 가발생하고있는지를추적할수있다. ( 1 회에소개한 SQL 문에서는 Additional Info 값을참조. ) select segment_name, segment_type from dba_extents where file_id = :file# and :block# between block_id and block_id + blocks -1 cache buffers chains latch SGA 내에캐쉬된데이터블록을검색할때사용된다. 버퍼캐쉬는블록들의 chain 을이루고있으므로각각의
10 chain 은이 Latch 의 child 들에의해보호된다. 이 Latch 에대한경합은특정블록에대한대량의동시액세스가발생할때유발된다. 애플리케이션을검토해보아야한다. Ø cache buffers lru chain latch 버퍼캐쉬의버퍼를 LRU 정책에따라이동시켜야할필요가있는경우프로세스는이 Latch 획득하게된다. 이 Latch 에대한경합은 Multiple buffer pool 을사용하거나 DB_BLOCK_LRU_LATCHES 를증가시켜 LRU Latch 의개수를늘려서해소할수있다. SQL 문을튜닝하면해당프로세스에의해액세스될블록의수가줄어들것이므로당연히효과를거둘수있다. 위와같이버퍼캐쉬를관리하는 Latch 에대한경합은경합이집중되는특정 Child Latch 에의해관리되는버퍼블록을찾아해당블록이속한세그먼트정보를알아낸다면보다효과적인조치가가능할것인데, latch free wait 일경우 v$session_wait 의 p1raw 값이해당 Latch address 를의미한다. 이값을 x$bh 의 hladdr 값과조인하면관련오브젝트이름을추적해볼수있다. select file#, dbarfil, dbablk, obj, o.name from x$bh bh, obj$ o where bh.hladdr = :latch_address and bh.obj = o.obj#; [5] Redo buffer 관련 Wait Redo buffer 구조 오라클리두구조의핵심은모든트랜잭션정보를 OS 파일에기록해둠으로써시스템장애가발생해도트랜잭션단위의일관성을잃지않고데이터베이스를복구할수있도록하겠다는것이다. 리두버퍼 (redo buffer) 는이처럼데이터베이스에가해진모든변경내역을파일에기록하기위해잠시사용되는메모리영역이며리두버퍼에기록된리두정보는다시리두로그파일에기록되어짐으로써향후시스템복구작업이필요할때에사용하게된다. 오라클의리두구조를이해하기위한핵심적인개념을간단히정리해보면다음과같다. 데이터베이스에대한변경내역은블록단위로저장된다. 물론변경되는모든블록의복사본을통째로저장하는것은아니고블록별로어떠한오퍼레이션을수행하는가, 그리고그러한블록별오퍼레이션을어떠한순서로수행하는가를기록한다. 이러한블록별단위액션을 change vector 라고부르며 change vector 가순차적으로모여하나의의미있는 redo record 가된다. 리두로그는시스템내의모든프로세스들에의해생성되는 redo record 를 SCN 순서대로저장해놓은것이다. 이때리두로그에기록되는내용에는테이블이나인덱스등의데이터블록뿐만아니라 UNDO 블록또는 UNDO 세그먼트헤더블록에대한변경내용을포함하는모든버퍼캐쉬블록에대한변경내역이대상이된다. 리두정보는항상실제변경작업보다먼저보관되어야어떤상황에서도복구가가능해진다. 따라서트랜잭션을수행하는 ( 데이터베이스블록에변경을가하는 ) 프로세스는우선자신의메모리영역내에서수행하고자하는작업에대한리두레코드를만들며, 이를먼저로그버퍼에기록하고난후에실제버퍼블록에도리두레코드에담긴내용을따라적용하게된다. 또한같은이유로오라클은변경된버퍼캐쉬블록을디스크에기록하기전에먼저관련된로그버퍼를로그파일에기록하는작업을처리하게된다. 따라서, 리두버퍼또는리두파일 ( 아카이브파일을포함해서 ) 에대한쓰기작업에병목이생기면시스템에대한모든작업수행이대기상태로빠지게될것이다. 트랜잭션커밋을요청한프로세스는우선해당트랜잭션에대한로그버퍼가리두로그파일에기록되는작업이완료된후에야커밋완료메세지를받을수있다. 그렇게함으로써버퍼캐쉬변경내역을모두디스크에반영하지않고도시스템의비정상종료시리두파일에저장된리두레코드로부터커밋트랜잭션을보존할수있게된다. 리두버퍼관련 Wait 이벤트 일반적으로는로그버퍼관련해서심각한 Waiting 이발생하는경우는드물지만, 가끔볼수있는리두관련 Wait 이벤트로는다음과같은것들이있다.
11 Log file parallel write LGWR 가 OS 에리두버퍼를로그파일에기록하도록요청해둔상태에서대기하고있는이벤트이다. 이경우에는 DML 작업시 nologging 옵션등을사용하여시스템에서발생하는리두레코드의절대량을줄이거나하드웨어적으로 DISK IO 를개선시켜주는것이방안이다. Log buffer space 프로세스가로그버퍼를할당하기위해대기하는이벤트인데 LGWR 가로그버퍼를비우는것보다더빠른속도로프로세스들이리두레코드를생성하고있다는것을의미한다. 로그버퍼의크기를늘려주거나, DISK IO 의속도를개선시켜주어야할것이다. 로그버퍼는로그파일에대응되는블록이맵핑이된후에사용될수있으므로로그스위치발생시에도 log buffer space 이벤트에대한대기가발생할수있다. 로그스위치가너무잦다면리두로그파일의크기를증가시켜주는것이좋다. Log file sync 프로세스가커밋이나롤백을수행할경우우선 LGWR 에게해당트랜잭션까지의로그버퍼를 Write 하도록요청하게되는데이때사용자프로세스는 LGWR 가쓰기작업을완료할때까지 log file sync 이벤트를대기하게된다. 버전 8i 이전에서는 DBWR 가쓰기작업을수행하다가아직관련로그버퍼가파일에쓰여지지않을경우에도 LGWR 에쓰기를요청하고 log file sync 이벤트에대기하였으나 8i 이상에서는 log file sync 에대기하는대신 deferred write queue 에등록한다. 따라서버전 8i 이상에서 log file sync 이벤트는사용자프로세스에의해요청되는커밋, 롤백처리시에발생하며결국, 시스템전체적으로커밋, 롤백이지나치게자주수행되거나상대적으로 LGWR 의쓰기속도가느린것이원인일것이다. 또는, 로그버퍼가너무커서 LGWR 가백그라운드로 flush 시켜주기전 ( 보통 3 초간격및 1/3 이상의로그버퍼가찬경우 ) 에커밋에의한쓰기요청이이루어지므로커밋시점에써야할양이많아대기시간이길어지는경우도있는데이경우엔리두버퍼의크기를오히려줄여주어야할것이다. 또는, LGWR wait for redo copy 이벤트가많이나타난다면 redo copy latch 가너무많아 LGWR 이사용자프로세스가버퍼쓰기작업을마칠때까지기다리는일이잦은경우를뜻하며이경우엔 _LOG_SIMULTANEOUS_COPIES 파라미터를사용하여 copy latch 의수를줄여주는조치가필요할것이다. 시스템에따라서언급한외의다양한이벤트대기와원인이존재할수있고, 더구나버전에따라 redo copy latch 와 redo allocation latch 를포함한리두운영방식상상이한부분이많이존재하여그에따른추가적인튜닝요소가있으나이글에서는지면관계상 8i 를기준으로간략히정리해보았다. [6] Top SQL 튜닝하기 ( 맺음 ) Top SQL 튜닝의필요성 지난회까지실시간 Wait Event 모니터링과이벤트별원인분석에대해서간단히살펴보았다. 일시적성능장애시재빨리원인을찾아내는것도중요하지만보다바람직한것은이러한성능문제를사전에최대한예방하는것임은두말할필요도없다. 오라클성능문제를다루는데있어강조하고싶은한가지는시스템자원의배분을변경하거나증가를고려하기전에, 불필요한작업을최소화함으로써자원요구횟수와자원점유시간을줄여주는노력이선행되어야한다는점이다. Wait Event 에대한모니터링과분석이 DBMS 의자원에대한경합과관련된성능문제를파악하는데유용한방법임에틀림없지만, 이같은정보는데이터베이스혹은그하위레벨의구조적비효율성을드러내어줄뿐애플리케이션레벨의문제를직접적으로알려주지는않는다. 간단히말하자면, DBMS 튜닝을위해정성을쏟기이전에애플리케이션튜닝에더많은투자를하라는것이다. 이런관점에서 DBA 가비교적손쉽게수행할수있는것이오라클메모리로부터악성 SQL 을추출하여튜닝하는 Top SQL 튜닝이다. Top SQL 추출기준 사용자로부터요청되어오라클내에서처리되는모든 SQL 은오라클의공유메모리영역가운데 shared pool 내에캐쉬되어지며이렇게캐쉬되어있는 SQL 과관련통계정보는 V$SQL 또는 V$SQLAREA 뷰를통해서
12 조회할수있다. 이때, Top SQL 을추출하는데중요하게사용되는항목은 buffer_gets, disk_reads, executions, rows_processed 등이며일반적으로아래와같은기준으로 Top SQL 을추출한다. Buffer gets 수치가높은 SQL Buffer gets 은해당 SQL 이처리되는과정에서액세스한메모리블록의수 (Logical IO) 를의미한다. 물론이값이높다고해서무조건악성 SQL 임을의미하는것은아니다. 즉, 이러한 SQL 들중에는실제로요구되는작업량이많아서액세스블록수가많은 SQL 도있을것이며불필요한처리를수행하느라액세스블록수가많은 SQL 도있을것이다. 어느경우이든이 SQL 들이현재오라클서버에부하를많이유발하고있는 SQL 들이라는것만은분명하며사소한비효율적요소에의해서도서버에큰영향을미칠잠재적인가능성이있는 SQL 들이므로일차적으로점검해볼필요가있다. 악성 SQL 여부를판단하기위한 Buffer gets 의수치에절대적인기준은없으며시스템의데이터규모와트랜잭션량에따라다르다. buffer gets 값을기준으로역순으로정렬한후패턴을살펴적절한추출기준을선택하는것이좋을것이다. 만일, 상위몇개의 SQL 들과나머지 SQL 들간의 buffer gets 의편차가매우크게나타난다면상위몇개의 SQL 에대해서만튜닝을수행해주어도큰효과를볼수있을것이다. 일반적으로시스템에서수행되는 SQL 가운데심각한부하를야기하는 SQL 은소수에불과한경우가많으며뒤에기술될다른조건들과조합하여최대 Top 50 건정도를추출하여효율성을검증하고튜닝을통해개선하는작업을수행하여주면충분하다. Buffer gets/execution 수치가높은 SQL SQL 의단위수행당 buffer gets 수치를의미한다. 단위수행당 buffer gets 값이높다는것은해당 SQL 의처리가비효율적일가능성이높음을의미한다. 액세스블록수가비정상적으로많다는것은 rows_processed 값과비교하여상대적으로평가되어야할부분이다. 실제로반환하는로우수가매우많은배치성 SQL 이거나혹은반환되는로우수가 1 건이라도 Group Function 이사용된 Summary 성 SQL 이라면처리과정에서많은수의블록을액세스하는것은불가피하며이자체가문제가될수는없기때문이다. Execution 수치가높은 SQL Executions 는해당 SQL 이수행된횟수를의미한다. 수행횟수가잦은 SQL 은 buffer gets 가높을경우가많다. 일반적으로십만 ~ 백만회이상빈번하게수행되는 SQL 이라면 buffer gets/executions 값이 2 자리수이내의값을나타내어야정상이며단위수행당속도는 0.1 초이내로매우빨라야한다. 따라서, 이러한 SQL 의경우 SQL 단위로보면튜닝의효과를체감하기도어렵고필요성을느끼지못할수도있으나튜닝을통해아주적은차이라도개선을가져올수있다면시스템전체적인관점에서는매우큰효과를가져다줄수있다는점이중요하다. 하루에백만번수행되는 SQL 에대하여 0.01 초를개선한다면시스템시간으로하루에일만초를절약한셈이될것이다. 이러한 SQL 에대해서는현재빠르게수행되고있다고해도더빠르게처리할여지가없는지점검하고가능한모든방안을동원하여개선시키도록노력해야한다. disk_reads 수치가높은 SQL disk_reads 는 SQL 이처리되는과정에서물리적인 IO 를통해액세스한블록의수를의미한다. 물리적 IO 의발생여부는원하는블록이메모리에캐쉬되어있는지여부에따라달라지므로수행되는횟수와수행되는시간대의데이터베이스캐쉬상황에따라유동적이라고할수있다. 그러나, buffer gets 의값과비교하여 disk_reads 의비율이높은 SQL 은 Full Scan 을수행하는 SQL 일가능성이큰데그이유는 Full Scan 을통해액세스되는블록들은기본적으로 DB buffer Cache 의 LRU 알고리즘에의해관리되지않으므로작업후에곧바로메모리로부터밀려나버릴가능성이높기때문이다. 반면에인덱스를통하여액세스하는경우, 일상적으로액세스되는테이블에대해서는인덱스의 root block 과 branch block 은항상메모리에캐쉬되어있을확률이높으므로물리적 IO 를유발하는비율이낮을수밖에없다. Top SQL 추출기준 글을맺기전에마지막으로언급하고싶은것하나는, 문제가발생했을때문제의원인이 bug 로인한것일가능성을항상염두에두어야헛된고생을덜한다는것이다. 오라클도사람이만든프로그램이므로버그가없을
13 수없으나다행히오라클의버그및패치관리는매우훌륭한편이다. 오라클메타링크를활용하여유사한문제가보고된적은없는지관련버그에대한정보는없는지살펴보아야하며, 평소에정기적으로패치및버전관리를해주는것이바람직하다. 오라클시스템을운영하다보면현실에서는다양한문제가복잡하게얽혀나타나므로명백한원인을파악하기가쉽지않을때가많지만, 운영시자신의시스템에서자주발생하는 Wait 패턴또한분명히존재하므로굵은가지들부터하나씩이해하고해결해나가다보면오라클이우리가보인애정에보답해줄날이올것이라믿는다. 지면관계상 OPS(RAC) 관련 Wait 을비롯한기타 Wait 이벤트에대해다루지못한점, 그리고각 Wait 이벤트별로좀더친절한설명과사례를제시하지못한점이아쉬움으로남지만, 누구든아주작은것하나라도이글을통해새로이얻을수있었다면그이상바랄것은없다.
Oracle Wait Interface Seminar
1 대용량 DBMS 의효율적인 모니터링및성능관리방안 Copyrights 2001~2007, EXEM Co., LTD. All rights reserved. 목차 2 1. 성능문제와 OWI 분석방법론 2. OWI 구성요소 3. Latch & LOCK 4. Oracle I/O 5. Cache Buffer 3 성능문제와 OWI 분석방법론 성능지연사례 1) 평소에
More information62
2 instance database physical storage 2 1 62 63 tablespace datafiles 2 2 64 1 2 logical view control files datafiles redo log files 65 2 3 9i OMF Oracle Managed Files, OMF 9i 9i / / OMF 9i 66 8 1MB 8 10MB
More informationPowerPoint Presentation
Server I/O utilization System I/O utilization V$FILESTAT V$DATAFILE Data files Statspack Performance tools TABLESPACE FILE_NAME PHYRDS PHYBLKRD READTIM PHYWRTS PHYBLKWRT WRITETIM ------------- -----------------------
More informationMicrosoft Word - Oracle Wait 분석 테크닉.doc
Reviewed by Oracle Certified Master Korea Community ( http://www.ocmkorea.com http://cafe.daum.net/oraclemanager ) Oracle Wait 분석테크닉 (by Donald K. Burleson) 오라클은현재진행중인오라클트랜잭션의 wait상태에대한정보를자세히제공하는 v$session_wait와
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 informationTablespace On-Offline 테이블스페이스 온라인/오프라인
2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가
More informationCommit_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 informationThe 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 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (
배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 ( 이후배치프로그램 ) 에대한성능문제를파악하기위해수행되는모든 SQL 에대한개별수행내역을정확히판단할수있어야한다.
More informationMicrosoft Word - CNVZNGWAIYSE.docx
Print Date: 2010-12-12 Oracle Memory DATE : 2010-12-12 06:07 Writer : 박상수 License : 개인자료 CALMMASS.TISTORY.COM - 본문서는모든사람에게열람및수정모두가능합니다 - 버전 수정일 작성자 변경내역 1.0 2010/12/04 박상수 Oracle Memory(PGA, SGA) 개념및관리
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 information09.RAC_OWI_Part2
Practical OWI Seminar RAC &busy OWI gc buffer gc current request DFS lock handle gc cr/current multiblock request Event 정의 Request Node가 Remote Node에게 Multi Block I/O를 요청했음을 의미하는 독립 Event P1, P2, P3 의
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 informationJerry 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목차 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슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
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 informationTina Admin
Lock session 확인 2010 년 01 월 27 일 DB 기술지원팀 문서정보 프로젝트명 Lock session 확인 서브시스템명 버전 1.0 문서명 작성일 2011-01-31 작성자 최종수정일 2011-01-31 문서번호 재개정이력 일자내용수정인버전 문서배포이력 발신자수신자배포목적일자비고 유니원아이앤씨 기술문서. Table of Contents 1 오라클의
More informationSimplify 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 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 information[Brochure] KOR_TunA
LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /
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 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 informationMicrosoft 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歯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 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 information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information10:00-11:30 Memory part I & II 11:30-13:00 13:00-14:00 Memory part III 14:10-15:00 I/O Part I 15:10-16:00 I/O Part II
10:00-11:30 Memory part I & II 11:30-13:00 13:00-14:00 Memory part III 14:10-15:00 I/O Part I 15:10-16:00 I/O Part II I - Memory Part - DB Contents Shared pool Buffer cache Other SGA structures 4/100 Shared
More information<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초보자를 위한 분산 캐시 활용 전략
초보자를위한분산캐시활용전략 강대명 charsyam@naver.com 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 우리가꿈꾸는서비스 그러나현실은? 서비스에필요한것은? 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 핵심적인기능 서비스에필요한것은? 적절한기능 서비스안정성 트위터에매일고래만보이면? 트위터에매일고래만보이면?
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 informationPowerPoint Presentation
Toad for Oracle 추가옵션 - DB Admin Module - Quest Software Korea 2017. 토드커뮤니티 : www.toad.co.kr 토드 (Toad) 확장프로모션 추가비용없이토드확장모듈 (DB Admin Module) 제공 개발자, DBA, 데이터추출업무등모든사용자업무생산성향상 오라클데이터베이스활용능력향상 그동안사용하지못했던토드의고급유틸리티활용
More informationuntitled
(shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,
More informationPoison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3
Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow
More informationKEEP BUFFER 활용방안 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 Oracle 은유저가요청한작업을빠르게처리하기위해 Buffer Cache 라는것을사용한다. Buffer Cache 는 SGA 에위치하고있으며, 오라클인스턴스에접속하는모든프로세스에의해공유된다. 이 Bu
KEEP BUFFER 활용방안 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 Oracle 은유저가요청한작업을빠르게처리하기위해 Buffer Cache 라는것을사용한다. Buffer Cache 는 SGA 에위치하고있으며, 오라클인스턴스에접속하는모든프로세스에의해공유된다. 이 Buffer Cache 는오라클 I/O 관리의핵심으로자주사용하는데이터파일의블록들을메모리에상주시킴으로써물리적인
More informationSlide 1
1 EM Performance & Resource Management 최야벳 (yabet.choi@oracle.com) Sales Consultant Oracle Direct Agenda Intro 관리자의고민 기존시스템관리의문제점 About EM Case Demo Lock 경합 성능튜닝권고 ( 파라미터 ) Instance
More informationChapter #01 Subject
Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned
More informationMicrosoft PowerPoint - 30.ppt [호환 모드]
이중포트메모리의실제적인고장을고려한 Programmable Memory BIST 2010. 06. 29. 연세대학교전기전자공학과박영규, 박재석, 한태우, 강성호 hipyk@soc.yonsei.ac.kr Contents Introduction Proposed Programmable Memory BIST(PMBIST) Algorithm Instruction PMBIST
More informationWINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역
WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,
More informationPowerPoint Presentation
FORENSIC INSIGHT; DIGITAL FORENSICS COMMUNITY IN KOREA SQL Server Forensic AhnLab A-FIRST Rea10ne unused6@gmail.com Choi Jinwon Contents 1. SQL Server Forensic 2. SQL Server Artifacts 3. Database Files
More informationSQL 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<B3EDB9AEC0DBBCBAB9FD2E687770>
(1) 주제 의식의 원칙 논문은 주제 의식이 잘 드러나야 한다. 주제 의식은 논문을 쓰는 사람의 의도나 글의 목적 과 밀접한 관련이 있다. (2) 협력의 원칙 독자는 필자를 이해하려고 마음먹은 사람이다. 따라서 필자는 독자가 이해할 수 있는 말이 나 표현을 사용하여 독자의 노력에 협력해야 한다는 것이다. (3) 논리적 엄격성의 원칙 감정이나 독단적인 선언이
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 informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More information자연언어처리
제 7 장파싱 파싱의개요 파싱 (Parsing) 입력문장의구조를분석하는과정 문법 (grammar) 언어에서허용되는문장의구조를정의하는체계 파싱기법 (parsing techniques) 문장의구조를문법에따라분석하는과정 차트파싱 (Chart Parsing) 2 문장의구조와트리 문장 : John ate the apple. Tree Representation List
More information오라클 데이터베이스 10g 핵심 요약 노트
1 10g 10g SYSAUX 10g 22 Oracle Database 10g, 10g. 10g. (Grid), 10g.. 10g SYSAUX (ASM, Automatic Storage Management) 10g 10g. g. (DBA).,., 1).,..? 10g,.. (Larry Ellison).. (Leverage Components), (ASM) (
More informationI T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r
I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r -------------------------------------------------------------------- -- 1. : ts_cre_bonsa.sql -- 2. :
More informationMS-SQL SERVER 대비 기능
Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT
More 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 informationData Guard 기본개념.doc
Data Guard 개념 (9i R2 9.2.0.1) 김형일 HIKIM000@EMPAL.COM 1 목차 1. DataGuard 개념 3 1.1 Data Guard Architecture 3 1.2 DataGuard 장점 4 1.3 Switch over and Failover 5 1.4 Physical Standby 와 Logical Standby 5 2. Data
More informationMaxGauge( 맥스게이지 ) 를이용한 SQL 모니터링, 진단 / 분석및튜닝가이드 엑셈
MaxGauge( 맥스게이지 ) 를이용한 SQL 모니터링, 진단 / 분석및튜닝가이드 엑셈 I. MAXGAUGE 소개및기대효과 II. 개발단계에서의튜닝프로세스확립 III. 테스트 ( 단위 / 부하 ) 단계에서의악성 SQL 검출및진단방안 Ⅳ. 운영단계에서의 Top-SQL 검출및진단방안 Ⅰ. Maxgauge 소개및기대효과맥스게이지란? MaxGauge( 맥스게이지
More information슬라이드 1
마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***
More information7장. 교착상태(deadlock)
11 장. 파일시스템구현 목표 local 파일시스템및디렉토리구조의구현을설명 remote 파일시스템구현을설명 블록할당과자유블록알고리즘논의 2 11.1 File-System 구조 File system 은보조저장장치 ( 디스크 ) 에위치. 블록단위전송 I/O 효율성향상 block size: one or more sectors sector size: 32 4KB (usually
More information목차 1. Tibero RDBMS 소개 2. 데이터베이스로서의기본기능 3. 데이터베이스저장구조 (Database Storage Structure) 3.1. Logical Structure 3.2. Physical Storage Structure 4. 티베로프로세스 (T
TECHNICAL WHITE PAPER Tibero RDBMS Architecture 목차 1. Tibero RDBMS 소개 2. 데이터베이스로서의기본기능 3. 데이터베이스저장구조 (Database Storage Structure) 3.1. Logical Structure 3.2. Physical Storage Structure 4. 티베로프로세스 (Tibero
More informationOracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용
Oracle hacking 작성자 : 임동현 (ddongsbrk@naver.com) 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용 Skill List 1. Oracle For Pentest 1. Find TNS Listener (Default 1521 port) (with nmap or amap) 2. Get the
More informationIP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1
IP 심화 º 각 P 의게이트웨이는해당네트워크의마지막주소를사용한다. - P1 (210.220.10.1/26) 의게이트웨이 (5의 Fa0/0) : 210.220.10.63 /26 = 255.255.255.192 호스트비트수 : 32-26 = 6 비트 => = 64 그러므로 P1의 IP 210.220.10.1 중서브넷마스크에의거 26비트는변함이없고, 나머지 6비트가호스트비트로변하므로
More informationMicrosoft Word - ntasFrameBuilderInstallGuide2.5.doc
NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,
More information6주차.key
6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running
More 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 informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More information강의 개요
DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE
More informationPowerPoint Template
JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것
More information단계
본문서에서는 Tibero RDBMS 에서제공하는 Oracle DB Link 를위한 gateway 설치및설정방법과 Oracle DB Link 사용법을소개한다. Contents 1. TIBERO TO ORACLE DB LINK 개요... 3 1.1. GATEWAY 란... 3 1.2. ORACLE GATEWAY... 3 1.3. GATEWAY 디렉터리구조...
More information문서 템플릿
HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,
More information목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4
ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]
More informationPowerPoint Presentation
FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org
More information금오공대 컴퓨터공학전공 강의자료
데이터베이스및설계 Chap 1. 데이터베이스환경 (#2/2) 2013.03.04. 오병우 컴퓨터공학과 Database 용어 " 데이타베이스 용어의기원 1963.6 제 1 차 SDC 심포지움 컴퓨터중심의데이타베이스개발과관리 Development and Management of a Computer-centered Data Base 자기테이프장치에저장된데이터파일을의미
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 informationNLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해,
NLJ BATCH 과부분범위처리 엑셈컨설팅본부 / DB 컨설팅팀오수영 개요 오라클은새로운버전이출시될때마다한층업그레이드된기능들이추가된다. 이기능들은사용자에게편리함을제공함은물론이고, 기존의기능들이성능적으로업그레이드되어보다강력해지기도한다. 그러나때로는새롭게추가된기능으로인해, 사용자들이큰혼란을겪기는경우도발생된다. 그 대표적인예로는 GROUP BY 가 SORT GROUP
More informationOPCTalk for Hitachi Ethernet 1 2. Path. DCOMwindow NT/2000 network server. Winsock update win95. . . 3 Excel CSV. Update Background Thread Client Command Queue Size Client Dynamic Scan Block Block
More information강의 개요
정규화와 SELECT (II) 웹데이터베이스 학과 학생 과목 학과 지도교수 학과학번성명 수강과목 담당교수 A 김수정 A 0001 고길동 성질이론 김수정 B 허영만 A 0002 둘리 한식의멋 허영만 C 강풀 B 0003 희동이 심리학의이해 강풀 과목 _ 성적 학번 수강과목 성적 0001 성질이론 A 0001 한식의멋 C 0002 성질이론 A 0002 한식의멋
More informationadfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
More information<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세미나(장애와복구-수강생용).ppt
DB PLAN Consultant jina6678@yahoo.co.kr 011-864-1858 - - 1. 2. DB 3. - 4. - 5. 6. 1 INSTANCE MMAN RECO RFS MRP ORBn RBAL MMON Dnnn Snnn Data Buffer Cache SGA Stream Pool Shared pool Large Pool PGA Log
More 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 informationPCServerMgmt7
Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network
More informationTibero
Tibero 모니터링가이드 Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. Copyright Notice Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구황새울로 329 번길 5 티맥스빌딩우 ) 463-824 Restricted Rights
More information1217 WebTrafMon II
(1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network
More informationoracle9i_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이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다
이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,
More informationSQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을
SQL PLAN MANAGEMENT 활용 엑셈컨설팅본부 /DB 컨설팅팀장정민 개요 오라클은비롯한많은관계형 DBMS 에서는사용자의 SQL 질의를효율적으로처리하기위해옵티마이저를사용하고있다. 옵티마이저는유저가수행하는 SQL 을받아실행계획을생성하고, 실제 SQL 은이실행계획을통해서수행된다. 데이터베이스운영시평소잘수행되던 SQL 이성능이슈를발생시키는때가있는데, 그원인이
More informationMicrosoft PowerPoint - ch10_회복과 병행 제어.pptx
13-01 트랜잭션 장애와회복 병행제어 병행수행과병행제어 병행수행 (concurrency) 여러사용자가데이터베이스를동시공유할수있도록여러개의트랜잭션을동시에수행하는것을의미 여러트랜잭션들이차례로번갈아수행되는인터리빙 (interleaving) 방식으로진행됨 병행제어 (concurrency control) 또는동시성제어 병행수행시같은데이터에접근하여연산을실행해도문제가발생하지않고정확한수행결과를얻을수있도록트랜잭션의수행을제어하는것을의미
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationMicrosoft PowerPoint - 알고리즘_2주차_1차시.pptx
1.4 Blocking Block의정의 디스크와메모리사이에데이터전송의단위 물리적레코드라고도함 Sector, Block, Cluster의비교 Sector: Data transfer 의최소단위 Block = n개의 sector로구성 디스크와메모리사이에데이터전송의단위 Cluster: m 개의 sector 로구성되며, FAT 구성단위 Cluster Block 영남대학교데이터베이스연구실
More informationMicrosoft PowerPoint - chap02-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 학습목표 을 작성하면서 C 프로그램의
More information항목
Cloud 컴퓨팅기반분산파일시스템개요 개발실 UPDATE : 2012. 11 18 INDEX 1. 가용성 2. 확장성 3. PrismFS 4. Q&A 2 가용성 3 Gmail 장애 2011년 2월 27일 34000명의 Gmail 사용자들이일어나보니메일, 주소록, 채팅기록등이사라진것을발견 2011년 2월 28일 스토리지소프트웨어업데이트를진행하는중 Bug로인해발생했다고공지
More informationINSTRUCTIONS
2012.06.27 박희선대표 SAP Sybase 사용자를위한차세대전략세미나 데이터웍스 www.dataworks.co.kr 목차 Sybase DB Smart Operation? Smart Operation 을위한조건 Smart Operation 방안 ProActive DBA 소개 ProActive DBA 구성 Sybase ASE 지원상세 Sybase IQ 지원상세
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More information이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론
이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN
More informationDB 성능고도화핵심원리 비투엔컨설팅 수석컨설턴트 조시형
DB 성능고도화핵심원리 비투엔컨설팅 수석컨설턴트 조시형 원리를알아야답이보인다!! SQL 개발자 (Developer) 데이터모델을통해업무를이해하고, SQL 을정확히구사하는능력 DB 성능고도화전문가양성 SQL 전문가 (Professional) 성능을고려한고급 SQL 작성능력 DB 성능고도화핵심원리실습문제 declare l_ 수납금액 number; begin for
More information슬라이드 1
사례를통해본 ORACLE MAA (Maximum Availability Architecture) 2013. 02. Seungtaek Lee( 放浪 DBA) ORACLE MAA 최고의가용성을보장하기위해 Oracle( 사 ) 의여러솔루션을조합한 Oracle 권고아키텍처 2 ORACLE DB HA Solution Set RAC, Data Guard(ADG), ASM,
More information로거 자료실
redirection 매뉴얼 ( 개발자용 ) V1.5 Copyright 2002-2014 BizSpring Inc. All Rights Reserved. 본문서에대한저작권은 비즈스프링 에있습니다. - 1 - 목차 01 HTTP 표준 redirect 사용... 3 1.1 HTTP 표준 redirect 예시... 3 1.2 redirect 현상이여러번일어날경우예시...
More informationChapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
More informationSpotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA
Spotlight on Oracle V10.x DELL SOFTWARE KOREA 2016-11-15 Spotlight on Oracle 목차 1. 시스템요구사항... 2 1.1 지원하는데이터베이스...2 1.2 사용자설치홖경...2 2. 프로그램설치... 3 2.1 설치프로그램실행...3 2.2 라이선스사용관련내용확인및사용동의...3 2.3 프로그램설치경로지정...4
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 informationMicrosoft PowerPoint - 6.pptx
DB 암호화업데이트 2011. 3. 15 KIM SUNGJIN ( 주 ) 비에이솔루션즈 1 IBM iseries 암호화구현방안 목차 목 차 정부시책및방향 제정안특이사항 기술적보호조치기준고시 암호화구현방안 암호화적용구조 DB 암호화 Performance Test 결과 암호화적용구조제안 [ 하이브리드방식 ] 2 IBM iseries 암호화구현방안 정부시책및방향
More informationU.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형
AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형 언어 변환 1.4. 기대 효과 4.4. 프로그램 Restructuring 4.5. 소스 모듈 관리 2. SeeMAGMA 적용 전략 2.1. SeeMAGMA
More informationRHEV 2.2 인증서 만료 확인 및 갱신
2018/09/28 03:56 1/2 목차... 1 인증서 확인... 1 인증서 종류와 확인... 4 RHEVM CA... 5 FQDN 개인 인증서... 5 레드햇 인증서 - 코드 서명 인증서... 6 호스트 인증... 7 참고사항... 8 관련링크... 8 AllThatLinux! - http://allthatlinux.com/dokuwiki/ rhev_2.2_
More informationMicrosoft PowerPoint - CSharp-10-예외처리
10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.
More information11g - Serial direct read 동작원리 엑셈컨설팅본부 /DB 컨설팅팀임경석 개요 오라클 11g 에서처음소개된 Serial direct read 는대량의데이터를처리하는엑사데이타에서매우중요한기능이다. 스마트스캔을하기위해서는반드시테이블 full scan 과 d
11g - Serial direct read 동작원리 엑셈컨설팅본부 /DB 컨설팅팀임경석 개요 오라클 11g 에서처음소개된 Serial direct read 는대량의데이터를처리하는엑사데이타에서매우중요한기능이다. 스마트스캔을하기위해서는반드시테이블 full scan 과 direct path read 가선행되어야하기때문이다. 그러나, serial direct read
More information