DDL문은 실행될 때 DDL문이 작성, 변경 또는 삭제(drop)하는 오브젝트를 참조하는 모든 정적 SQL DML문의 액세스 플랜을 무효화합니다. 액세스 플랜이 무효화되어도 DML문은 계속 실행될 수 있습니다. DML문 실행은 경고 또는 오류 메시지를 생성하지 않습니다.
액세스 플랜이 무효화되는 경우 두 가지 결과가 가능합니다.
두 경우 모두에서 pureQuery가 아닌 API 응용프로그램은 정적 SQL의 기본 이점 중 두 가지(액세스 경로가 변경되지 않는 것과 가능한 성능 이점)를 상실합니다.
IBM®은 클라이언트 최적화에 사용하는 응용프로그램에서 DDL문을 실행하지 않도록 권장합니다.
응용프로그램이 바인드된 DDL문을 사용하고 executionMode 값이 STATIC인 경우, pureQuery는 DDL문을 실행합니다.
또한 응용프로그램이 바인드되지 않은 DDL문을 사용하고 executionMode 값이 STATIC이며 allowDynamicSQL 값이 TRUE인 경우, pureQuery는 DDL문을 실행합니다. 그러나 응용프로그램이 바인드되지 않은 DDL문을 사용하고 executionMode 값이 STATIC이지만 allowDynamicSQL 값이 FALSE인 경우 pureQuery는 DDL문을 실행하지만 "정적 명령문을 찾을 수 없음" 예외가 발생합니다.