CLI 애플리케이션이 pureQuery 클라이언트 최적화에 사용 가능한 경우
제한사항이 있습니다.
다음은 pureQuery 클라이언트 최적화를 CLI 애플리케이션과
사용할 때의 제한사항입니다.
- 동적 VALUES문 및 정적 VALUES문에 대한 지원
- 동적 SQL 실행 중 지원되는 일부 VALUES문을 정적 SQL 실행에서는 실행할 수
없습니다. 이 문제를 정정하려면
VALUES ( CURRENT TIME, CURRENT_TEMPERATURE()...
)와 같은 VALUES문을 SELECT CURRENT TIME, CURRENT_TEMPERATURE()...
FROM SYSIBM.SYSDUMMY1로 다시 작성할 수 있습니다.
- 정적 실행에 동적 XQuery문을 실행하려면 XMLQUERY 함수를
사용해야 함
- 정적 실행에서 실행하려면 동적 XQuery문을 DB2® SQL
스칼라 함수 XMLQUERY 내에 랩핑해야 합니다. XQuery문과
XMLQUERY 사용에 대한 자세한 정보는 DB2 XMLQUERY
함수를 참조하십시오.
XMLQUERY 함수를 사용하여 XQuery문을
정적으로 실행하지 않는 경우 allowDynamicSQL 키워드의 값을
db2cli.ini 또는 db2dsdriver.cfg에 TRUE로 설정하거나
키워드를 제거하여 기본값인 TRUE를 사용해야 합니다.
- 활성 데이터베이스 연결 중 pureQuery Runtime 특성을
변경할 수 없음
- 데이터베이스 연결이 설정된 후에는 특성 파일에 지정된 pureQuery Runtime
특성을 변경할 수 없습니다. pureQuery 특성을 변경하려면
데이터베이스 연결을 끊고, 특성 파일이나 연결 문자열을 업데이트한 후
다시 연결해야 합니다.
- pureQueryXML 파일의 CLI 애플리케이션 지원
- pureQuery 클라이언트 최적화에 사용 가능한 CLI 애플리케이션은 버전 3
pureQueryXML 파일을 지원합니다. 일부 pureQuery 기능은
버전 3 pureQueryXML 파일과 호환할 수 없는
버전 4 pureQueryXML 파일을 생성하거나 사용합니다. 버전 4 파일이 사용되는 경우
CLI 애플리케이션이 오류를 리턴합니다. 다음 pureQuery 기능은
버전 4 pureQueryXML 파일을 생성하거나 사용합니다.
- pureQuery 유틸리티 GeneratePureQueryXml은 버전 4
pureQueryXML 파일을 생성합니다.
- pureQuery Configure 유틸리티의 경우에는 -groupSQLBySpecialRegisters
및 -removeSQLInactiveForDays 옵션에 pureQueryXML 버전 4 파일에만 있는
정보가 필요합니다.
- pureQueryXML 파일 수정 시 예기치 않은 동작이 유발될 수 있음
- 파일을 직접 편집하면 예기치 않은 동작이 유발되거나 유효하지 않은
pureQueryXML 파일이 작성될 수 있습니다. 권장되는 유일한 수정사항은
선택적 튜닝 쿼리의 경우 pureQuery Runtime의 조정된 쿼리 대체를 사용하는 것입니다.
- 이름 지정된 매개변수 표시문자가 "?" 매개변수
표시문자로 대체됨
- SQL문의 이름 지정된 매개변수 표시문자는 DB2
버전 9.7에서 소개되었습니다. pureQuery Runtime은
이름 지정된 매개변수 표시문자를 지원하지 않습니다. 이름 지정된 매개변수 표시문자가 "?" 매개변수 표시문자에 대해서는 혼합될 수 없습니다.
- 애플리케이션이 실행 중일 때 작성된 pureQueryXML 파일에 대한 변경사항은
pureQuery Runtime에서 인식되지 않음
- pureQuery 클라이언트 최적화에 사용 가능한 애플리케이션이 시작되면
애플리케이션에 사용된 pureQueryXML 파일의 정보가
캐시됩니다. pureQueryXML 파일을 다시 로드하려면 애플리케이션을
다시 시작해야 합니다.
- pureQuery 클라이언트 최적화에 사용 가능한 CLI 애플리케이션이 동시에
SQL 데이터를 캡처 중일 때 각 애플리케이션은 다른 pureQueryXML 파일을
지정해야 함
- CLI 애플리케이션을 동시에 실행 중이며 애플리케이션이
SQL 데이터를 캡처할 때(pureQuery 키워드 captureMode의 값이
ON으로 설정됨) SQL 데이터를 캡처 중인 각 애플리케이션은
다른 pureQueryXML을 지정해야 합니다. 키워드
pureQueryXml 값에 지정된 파일이 달라야
합니다. 동일한 pureQueryXML 파일을 사용하려는 경우 애플리케이션을
동시에 실행할 수 없습니다. 동일한
pureQueryXML 캡처 파일을 사용한 동시 애플리케이션은 pureQueryXML 파일을
손상시킬 수 있습니다.
pureQuery
Java 유틸리티 Merge를 사용하여
다중 pureQueryXML 파일을 하나의 파일로 결합할 수 있습니다.
- SQL 데이터를 캡처할 때에나 SQL문을 정적으로 실행할 때
CLI 지연된 준비가 사용 불가능함
- pureQuery 키워드 설정의 값이 captureMode=ON 또는
executionMode=STATIC이면 CLI 지연된 준비가 사용 불가능합니다.
- SQL문의 정적 실행 및 SQL문 동시 캡처가 지원되지
않음
- 동일한 연결에 captureMode=ON 및 executionMode=STATIC을
동시에 설정하는 작업은 지원되지 않습니다.
- pureQuery Runtime은 위치 지정된 UPDATE 또는 DELETE문을
캡처하지 않음
- pureQuery 클라이언트 최적화에 사용 가능한 애플리케이션에서는
pureQuery Runtime이 위치 지정된 UPDATE 또는 DELETE문을 캡처하지 않습니다.
예를 들어, WHERE CURRENT OF절을 사용하는 UPDATE문이 있습니다. 이 SQL문은
allowDynamicSQL=TRUE 키워드가 설정되어 있을 때 executionMode=STATIC
키워드 설정을 통해 동적으로 실행됩니다.
- capturedOnly=TRUE 키워드가 설정되면 pureQuery Runtime이
statementType SET_METHOD를 제한함
- capturedOnly=TRUE 키워드가 설정되면 명령문이
pureQueryXML에 있지 않은 경우 statementType SET_METHOD의
명령문이 pureQuery Runtime에 의해 제한됩니다.
- SQL문을 실행할 때 DB2 특수 레지스터
설정을 변경하면 정적으로 실행되는 동일한 SQL문과 비교 시 실행 중인
SQL문이 다른 애플리케이션 동작을 야기할 수 있음
- DB2 데이터베이스의 경우
특수 레지스터 값을 변경하면 애플리케이션의 작동 방식이 변경될 수 있습니다.
다음 예는 특수 레지스터 CURRENT DECFLOAT ROUNDING MODE를
사용하며 SQL문이 캡처될 때 값이 ROUND_CEILING으로 설정된다고
가정합니다. pureQueryXML 파일의 SQL문을 바인드하고
애플리케이션을 실행해서 ROUND_FLOOR로 설정된 특수 레지스터 값으로 SQL문이
정적으로 실행되도록 하는 경우(executionMode=STATIC 키워드가 설정됨)
데이터가 특수 레지스터의 값에 종속되면 리턴된 데이터가
다를 수 있습니다. 애플리케이션 코드가
변경되지 않은 경우에도 결과는 다를 수 있습니다.
- 저장소를 작성 및 관리할 때 제한사항
- 저장소를 작성 및 관리하려면 Java 기반 pureQuery ManageRepository 유틸리티를 사용하십시오.
pureQuery 클라이언트 최적화를 사용하는 CLI 애플리케이션은 저장소에서
pureQueryXML 파일 데이터만 검색할 수 있습니다. pureQuery Runtime
구성 정보에 대한 검색이 지원되지 않습니다.
pureQuery 클라이언트 최적화를
사용하는 CLI 애플리케이션은 저장소에 저장된
pureQueryXML 파일 데이터를 업데이트할 수 없습니다.
SQL 데이터를
캡처하기 위해 값이 ON인 Capturemode 키워드를 지정하는 경우
키워드가 pureQueryXmlRepository 및 propertiesGroupId인
저장소 및 런타임 그룹을 지정할 수 없습니다.
pureQueryXmlRepository 및
propertiesGroupId 키워드가 지정되면 pureQueryXml 키워드를
지정할 수 없습니다.
repositoryRequired 키워드의 값이
atStartup으로 설정되고 pureQuery Runtime이 저장소에서 pureQueryXML 파일을
검색할 수 없는 경우 pureQuery Runtime이 오류를 표시합니다.