제가 DB를 기본적인 것만 알고 있는데요...
물론 여기 계시는 분들에 비하면 그 기본이라는 것의 기준도 한참 아래겠지만요...;;
제가 ad hoc에 대해서 검색하던 중 모르던 게 나와서요.
----------------------------------------------------------------------------------------------------------------------------
임의의 질의(Ad hoc)는 매번 실행될 때마다
구문 분석(Parsing) > 표준화(Standardization) > 최적화(Optimization) > 컴파일(Compile)
단계를 거치게 됩니다.
다시말해 임의의 질의(Ad hoc)는 실행된 후에
메모리에 실행계획(execution plan)이 남아 있지 않습니다.
이에 비행 저장된 질의(Stored Procedure) 는 실행계획이 프로시저 캐쉬(Procedure Cache)에 저장됩니다.
당연히 성능상에는 저장된 질의(Stored Procedure) 이 월등히 좋습니다.
왜냐하면 syscomments 테이블(SQL Server2000)에 Query tree가 저장되어 있으므로
구문 분석부터 다시 시작할 필요가 없기 때문입니다.
----------------------------------------------------------------------------------------------------------------------------
제가 궁금한건
1. 저장된 질의(Stored Procedure)가 정확히 무엇을 의미하는지 궁금합니다. 예를 들어 그냥 일반적인 쿼리(select * from Client)같은 것도 저장 프로시저인가요??
2. 1번의 답이 [아니]라고 한다면, 쿼리를 저장프로시저로 만들기 위해서는 어떻게 해야하나요?? 제가 홈페이지를 만들고 있는데 DBBean에서 걍 쿼리를 날리고 있거든요..
3. 저장 프로시저는 저 4단계에서 컴파일만 수행하는건가요??
4. 메모리 실행계획이라는 것이 무엇인가요..?
질문 올리기전에 먼저 검색을 해보았는데 저장프로시저에 대해 상세한 설명이 나오지 않더라구요..
사실 프로시저가 있다는 것도 이번에 처음 알았구요;;; 답변좀 부탁드릴게요
참고로 옆에 [최강 mysql4 바이블] 이라는 책을 끼고 있으나 역시 제가 찾는 내용은 나오지 않군요 ㅠㅠ |