pureQuery 클라이언트 최적화를 CLI 애플리케이션과 사용할 때의 제한사항

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 파일을 지원합니다. 버전 4 pureQueryXML 파일을 생성하거나 사용하는 일부 pureQuery 기능은 버전 3 pureQueryXML 파일과 호환 가능하지 않습니다. 다음 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 클라이언트 최적화는 32비트 UNIX® 및 LINUX 플랫폼에서 지원되지 않음
pureQuery 클라이언트 최적화에 사용 가능한 CLI 애플리케이션은 32비트 UNIX 및 Linux 플랫폼에서 지원되지 않음
SQL 데이터를 캡처할 때에나 SQL문을 정적으로 실행할 때 CLI 지연된 준비가 사용 불가능함
pureQuery 키워드 설정의 값이 captureMode=ON 또는 executionMode=STATIC이면 CLI 지연된 준비가 사용 불가능합니다.
SQL문의 정적 실행 및 SQL문 동시 캡처가 지원되지 않음
동일한 연결에 captureMode=ONexecutionMode=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 키워드가 설정됨) 데이터가 특수 레지스터의 값에 종속되면 리턴된 데이터가 다를 수 있습니다. 애플리케이션 코드가 변경되지 않은 경우에도 결과는 다를 수 있습니다.

피드백