DB2® 데이터베이스의 경우, 특수 레지스터 값을 변경하면 애플리케이션 작동 방식에 영향을 미칠 수 있습니다. 예를 들어, 특수 레지스터 CURRENT DECFLOAT ROUNDING MODE는 SQL문이 리턴하는 데이터에 영향을 줍니다. SQL문을 캡처할 때 특수 레지스터의 값이 ROUND_CEILING으로 설정되었다고 가정하십시오. 그러면 pureQueryXML 파일의 SQL문을 동등 항목을 ROUND_FLOOR 값으로 설정하는 바인드 옵션을 사용하여 바인드합니다. 애플리케이션이 SQL문을 정적 모드로 실행할 경우 데이터가 특수 레지스터 값에 종속되어 있으면 리턴되는 데이터가 다를 수 있습니다. 애플리케이션 코드가 변경되지 않은 경우에도 결과는 다를 수 있습니다.
pureQuery 클라이언트 최적화는 애플리케이션이 실행되는 동안 SQL문을 캡처할 때 일부 특수 레지스터 값을 추적하여 기록합니다. 캡처된 SQL을 병합하고 구성할 때 SQL문과 함께 기록된 특수 레지스터 정보는 명령문과 함께 보존됩니다.
특수 레지스터의 pureQuery 범주는 다음과 같습니다.
기록된 특수 레지스터 정보는 pureQueryXML 파일에 특수 레지스터 값 세트로 저장됩니다. 이 정보는 Configure 유틸리티를 사용하여 pureQueryXML 파일을 구성할 때 명령문 세트를 작성하는 데 사용할 수 있습니다. 워크벤치의 pureQueryXML 편집기에서 pureQueryXML 파일을 볼 때 기록된 특수 레지스터 정보가 표시됩니다.
pureQuery Configure 유틸리티 옵션 -groupSQLBySpecialRegisters 및 -optionsFileForBind를 사용하면 SQL문을 정적으로 실행하는 데 도움이 됩니다. 이 옵션들을 따로 사용하거나 함께 사용할 수 있습니다.
-groupSQLBySpecialRegisters 옵션은 명령문을 캡처할 때 기록된 특수 레지스터 정보에 따라 SQL문을 명령문 세트로 그룹화합니다.
-optionsFileForBind 옵션은 StaticBinder 옵션 파일을 작성합니다. StaticBinder 옵션 파일에는 pureQueryXML 파일에 있는 명령문 세트에 대한 바인드 옵션이 포함되어 있습니다. 바인드 옵션은 SQL문과 함께 기록된 특수 레지스터 정보에 기반합니다. pureQueryXML 파일의 특수 레지스터 정보, 명령문 세트, SQL문에 대한 정보와 경고를 포함한 주석도 이 파일에 들어 있습니다.
Configure 유틸리티 옵션을 사용하여 특수 레지스터 정보에 따라 SQL문을 그룹화하고 바인드 옵션을 포함한 StaticBinder 옵션 파일을 생성할 수 있습니다. 파일에 있는 바인드 옵션 및 추가 정보를 통해 SQL문을 정적으로 실행할 때와 애플리케이션에서 발행하고 동적으로 실행할 때의 동작이 비슷하도록 바인드 옵션 세트를 지정하는 데 유용합니다. 바인드 옵션 세트가 있으면 StaticBinder 유틸리티, 옵션 및 pureQueryXML 파일을 사용하여 패키지를 데이터베이스에 바인드하십시오.
다음 표에는 pureQuery Runtime이 기록한 특수 레지스터 및 해당 특수 레지스터와 연관된 바인드 옵션을 나열됩니다.
특수 레지스터 | 바인드 옵션 | 참고 |
---|---|---|
CURRENT DECFLOAT ROUNDING MODE1 | z/OS®용 DB2 및 System i®용 DB2에 대해 ROUNDING. Linux®, UNIX® 및 Windows®용 DB2에 대해 바인드 옵션 없음 |
ROUNDING 바인드 옵션은 일부 DB2 데이터베이스에 사용할 수 없습니다. 이 바인드 옵션을 지원하지 않는 데이터베이스는 사용 시 경고를 보고합니다. |
CURRENT PATH | Linux, UNIX 및 Windows용 DB2에 대해 FUNCPATH z/OS용 DB2 및 System i용 DB2에 대해 PATH 또는 FUNCPATH |
StaticBinder 옵션 파일을 생성할 때 Configure 유틸리티가 FUNCPATH 바인드 옵션을 지정합니다. |
CURRENT PRECISION2 | DEC | CURRENT PRECISION 특수 레지스터
값은 정밀도 값 및 나누기 연산의 최소 나누기 비율 값을
포함할 수 있습니다. 바인드 옵션 값은 최소 나누기 비율
값을 포함할 수 없습니다. StaticBinder 옵션 파일을 생성할 때 CURRENT PRECISION 값에서 최소 나누기 비율 값을 찾으면 Configure 유틸리티가 경고 메시지를 생성합니다. |
CURRENT SCHEMA3 | QUALIFIER | |
CURRENT SQLID3 | Linux, UNIX용 DB2 및 System i용 DB2에 대해
QUALIFIER z/OS용 DB2에 대해 바인드 옵션 없음 |
StaticBinder 옵션 파일을 생성할 때
CURRENT SCHEMA 및 CURRENT SQLID 특수 레지스터의 값이
동일하지 않으면 Configure 유틸리티가 경고 메시지를
생성합니다. z/OS용 DB2의 경우 일부 상황에서 OWNER 바인드 옵션을 사용할 수 있습니다. |