콘텐츠로 이동

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.