앗리플이하나올라온것을보니글쓰기가두려워지는군요..
(틀리면마구비웃어주십시오.)
글구1편내용이수정이많이되었습니다.

아오래기다리셨습니다.

이제동남아순회공연을마치고돌아온곰탱이가

곧StaticSQL에대한강의를할생각입니다.

퍽~~~~컥~~~~~쨍그렁...

죄송합니다.

바로본론으로들어가겠습니다.

StaticSQL이왜빠를까?

우리가머리가아플때어떤두통약을먹는다고하면

그약이왜머리아픈데좋은지알고먹는사람은아주드물것입니다.

그러나,프로그래머는어떤것에대한궁금증이생기고그

궁금증을해결한정답을찾았을때그것이왜정답인지를반드시알고

지나가야합니다.

회상모드(@_@;;)(엔코아의장현호책임님의말씀중..)

저도회사다닌지1년만에이런것을깨달았답니다.

항상저도어떤문제를해결해도그것이왜어떻게해서

해결이되었는지정확하게집고넣어가지않았거든요..

그럼진짜본론으로왜StaticSQL이빠를까를알아보죠..

먼저SQL이DB로가서어떤과정을거치는지알아야합니다.

일반적인RDB의경우SQL이DB로전송되는순간OPTIMIZER라는놈이

(1)SQL을해석

(2)실행계획작성

(3)실행

(4)결과물추출이됩니다.

오라클의경우SQL을DB로전송하고나서Trace라는것을떠보면StaticSQL을효용성을알

수있습니다.

(참조:Trace라는것은SQL의행적을뒤쫓는것이라고생각하면아마도맞을듯
Trace가아마추적하다라는뜻이죠.)
->Trace에대해궁금하신분들은개인적으로메일을주시길
(특히여자분들은전화번호와함께쿨럭...-_-;;;)

Trace를살펴보면

SQL을먼저Parsing하고Execute하고Fetch합니다.

DynamicSQL이느린이유는항상이파싱하는시간이일어난다는겁니다.
(참고:DynamicSQL은Parameterbinding변수를사용하지않은강좌1의SQL1과SQL2를말하는겁니다.)

어떤SQL을파싱한다는것은DB의SharedPool에존재하지않는

SQL이DB로전송되었을때를의미하는것입니다.

만약우리가StaticSQL만을사용한다면우리가만든SQL이

SharedPool에저장되어서Parsing과Execute하는시간이전혀안걸리고

Fetch하는시간만걸리겠죠..
(왜냐구요.SQL이이미다Parsing되고Execute되어서SharedPool에저장되어있을테니까요)

SQL이Parsing,Execute,Fetch세단계를거치면서

가장시간이많이거리는부분은SQL을Parsing하는부분입니다.

이부분의시간이걸리지않는다면무척빠르겠죠.
(물론컨넥션타임에대한시간부하가가장크겠지만

MSODBC가풀링을잘해주니까쿨럭....)

SQL이DB에들어가서이런식으로분석되고결과를낸다는것을

아는Web프로그래머가몇명이나될지궁금합니다.

저역시몇개월전에는그런프로그래머들중에하나였죠..

자신이하고있는일에대해서어린아이처럼호기심을갖는것이

전문가가될수있는방법이아닐까요?

그럼다음시간에는실질적인StaticSQL코드에대해서알아보도록하겠습니다.

왜실제코드를빨리안보여주고이렇게설명만하느냐고그러시는분들이

많으실껍니다.

그러나기초가튼튼하면인사돌(?)쿨럭~~~~

기초가튼튼할수록다른지식들을배우기가수월한것을다들잘아실겁니다.

조금만더참아주시길...

참고자료출처
1.En-CoreWeb사이트
StaticSQL사용예제(VB에서ADO사용)작성자:김성준
2.En-CoreWeb사이트
OO4O를이용한VB에서StaticSql의사용작성자:이창수

참고서적
1.Wrox사ASP3.0
2.대용량데이터베이스
3.클릭하세요오라클8i<--이책에는틀린내용이좀많다는말을들었습니다.
주의하세요.

p.s.저데브칩쫌~~~~
(앗!데브칩으로책을살수없다니이런..)
퍽"너글쓰지마.!"-_-;;죄송

틀린내용에대해서는가차없이꾸짖어주십시오.

poo97@nownuri.net으로메일을보내주십시오.

이글을퍼가실때는저에게연락을주시길...
(모든저작권은곰탱이에게귀속되어있습니다.쿨럭~~~~~)
Posted by 퓨전마법사
,