PREPARE SQL문 수행
PREPARE SQL문 수행#
Prepared SQL문 수행과 Direct SQL문 수행의 차이#
iSQL상에서 SQL문을 수행하면 기본적으로 Direct Execution 방법으로 수행된다. Direct Execution 이란 질의에 대한 구문 분석, 정당성 검사, 최적화 및 수행을 한번에 수행하는 것을 의미한다.
Prepared Execution 방법은 prepare를 할 때 질의에 대한 구문 분석, 정당성 검사, 최적화까지만 수행하여 질의의 실행 계획을 미리 수립한다. 그 후 클라이언트로부터 실행을 요청받으면 수행한다. ODBC를 사용한 응용프로그램 작성의 경우 Prepared Execution 방법이 일반적으로 사용되며, 호스트 변수 바인딩이 된 SQL문에 대한 반복적인 수행이 필요한 경우에 속도의 이점을 볼 수 있다.
두 가지 수행 방법 사이에는 iSQL 상에서 변수 사용 여부의 차이가 존재하지만, 속도의 차이는 없다. 단, Prepared Execution 방법으로 수행하는 경우, 출력되는 그래프 정보와 실행 계획 정보가 다를 수 있다. 그래프 정보는 최적화까지의 중간 계획을 나타내고, 실행 계획은 변수에 실제 값이 적용된 이후의 계획을 나타내기 때문이다.
Prepared SQL문#
구문#
PREPARE SQL_statement;
예제#
다음은 PREPARE 명령어를 사용한 SQL문 수행 예제이다.
iSQL> VAR t1 INTEGER;
iSQL> EXEC :t1 := 1;
Execute success.
iSQL> PREPARE SELECT eno, e_firstname, e_lastname, sex
FROM employees WHERE eno=:t1;
ENO E_FIRSTNAME E_LASTNAME SEX
------------------------------------------------------------------
1 Chan-seung Moon M
1 row selected.