eunzae's develog

[SQL] 바인드 변수(Bind Variable) 본문

Language/SQL

[SQL] 바인드 변수(Bind Variable)

eunzae 2022. 12. 29. 14:00

바인드 변수(Bind Variable)

쿼리의 재사용성을 높이기 위해 변수를 설정하고 값을 할당하는 기능

VAR V1 NUMBER; -- 변수선언
EXEC :V1 := 2; -- 값 할당
SELECT :V1 AS C1 
FROM DUAL; -- C1 열에 2가 입력된 결과가 출력됨

- VAR 명령어로 변수를 선언

- EXEC 명령어로 값을 할당

- 변수를 선언하고 사용할 때에는 : 구분자를 변수명 앞에 추가해서 사용

 

 

Parsing 부하 감소를 위해 재사용 가능한 Static SQL 문장의 작성

- SQL 문에 상수 값을 사용하여 작성 할 떄 서로 다른 상수 값은 Parsing 시 다른 SQL 문으로 인식하여 재 Parsing 하므로 Bind Variable을 사용하여 같은 SQL이 공유될 수 있도록 함

- Parsing은 CPU를 많이 소모하므로 Parsing을 피할 수 있도록 SQL이 공유되게 작성함

 

<바인드변수 미사용: 다른 SQL문으로 인식되어 재 Parsing 됨>

SELECT NAME
FROM EMP
WHERE NUM = 9;

SELECT NAME
FROM EMP
WHERE NUM = 10;

 

<바인드변수 사용>

SELECT NAME
FROM EMP
WHERE NUM = :num;

 

'Language > SQL' 카테고리의 다른 글

[SQL] 그룹함수  (0) 2022.12.16
[SQL]윈도우 함수  (0) 2022.12.16
[SQL] VIEW  (0) 2022.12.16
[SQL] 서브쿼리 심화  (0) 2022.12.16
[SQL] JOIN 심화  (0) 2022.12.15