본문 바로가기
Professional Engineer/DB

정적 SQL, 동적 SQL

by 코드네임피터 2024. 8. 2.
반응형

정적 SQL:
컴파일 시 SQL 문이 고정되어 파싱, 검증, 최적화, 실행 계획이 미리 결정됩니다. 빠르고 효율적이며, 균일한 데이터 분포에 적합합니다. EXECUTE IMMEDIATE와 prepare 문은 사용되지 않으며, 유연성이 낮습니다.

동적 SQL:
실행 시 SQL 문이 생성되어 파싱, 검증, 최적화, 실행 계획이 런타임에 결정됩니다. 유연하지만 상대적으로 느리며, 불균일한 데이터 분포에 유용합니다. EXECUTE IMMEDIATE와 prepare 문을 사용하며, 더 많은 유연성을 제공합니다.

 

Embedded SQL:
호스트 언어(예: C, COBOL) 내에 직접 SQL 문을 삽입하는 기술입니다. 컴파일 시 전처리기가 SQL 문을 인식하고 데이터베이스 호출로 변환합니다. 응용 프로그램과 데이터베이스 간의 긴밀한 통합을 제공하며, 정적 SQL의 특성을 가집니다. 성능은 좋지만 유연성이 제한적입니다.

 

 항목   Dynamic SQL   Static SQL   Embedded SQL 
 SQL 생성 시점   실행 시간   컴파일 시간   컴파일 시간 
 성능   상대적으로 느림   빠름   빠름 
 유연성   매우 유연함   제한적   제한적 
 사용 상황   불균일한 데이터 분포, 복잡한 쿼리 필요 시   균일한 데이터 분포, 반복적인 쿼리   데이터베이스와 응용 프로그램의 긴밀한 통합 필요 시 
 구문 처리   실행 시 파싱 및 최적화   컴파일 시 파싱 및 최적화   전처리기가 컴파일 전 SQL 문을 처리 
반응형

댓글