반응형
정적 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 문을 처리 |
반응형
댓글