[설문조사 사이트 테스트]
이름 :
점넷(.Net)
분류 전체보기 (176)
점넷공간 (38)
COMPUTER (1)
.NET (29)
DB (36)
SCRIPT (3)
MarkUp & CSS (3)
OS (7)
IT Story (52)
Information (7)
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2007. 7. 20. 21:03
[DB]
실행계획을 재사용하기위해 cache 에서 실행한적이 있는지  비교하기위해 다음과같은 조건으로 비교를 한다.

1.adhoc
- 대개 클라이언트 코드상에서 문자열로 쿼리문을 만들어 실행을 하거나 동적쿼리를 만들어 exec 를 이용하여 실행하는 형식이다. 이는 문자열에서 빈공간 한칸만 달라도 새로운 실행계획을 세우게 된다. (권장하지는 않는다.)

2.prepared
- sp_executesql를 동적쿼리를 실행하는 방식이다. 이는 조건절(where) 이전까지를 비교하게된다.
* 유니코드를 사용해야함(문자열앞에 N을 붙여줘야함)
예) sp_executesql N'select * from table where a=1'


3.auto parametars
- ADO의 addparametars 와 같은형식이다. 이는 파라메타값을 제외한 부분을 비교하게된다.
   즉, prepared와 같은 방식으로 비교하게된다.

4.store adhoc
- 저장프로시저를(sp)를 이용하는 방식이다. 이는 저장프로시저명만 비교하여 실행계획을 재사용하게된다.(권장)
* 하지만 처음 실행계획을 세울때 잘못된 조건으로 인덱스를 사용하지 않게되면 이후 인덱스 사용이 가능한 조건이들어와도 잘못된 실행계획을 실행하게된다. 즉, 잘못된 실행계획을 재사용할 경우 AD HOC을 사용하는것보다 더 비효율적일수가 있다.



━━━━━━━━━━━━━━━
by 한상국(han3925)
MAIL  han3925@gmail.com
         han3925@hotmail.com
BLOG pointnet.tistory.com
━━━━━━━━━━━━━━━