Informix용 데이터 공급자
플랫폼 호환성
코드 페이지 변환
데이터 공급자는 SBCS(싱글 바이트 문자 집합), MBCS(혼합 바이트 문자 집합), DBCS(더블 바이트 문자 집합) 및 8비트 유니코드 변환 형식인 Unicode - UTF8 [1208]의 조합을 지원합니다.
호스트 CCSID
데이터 공급자는 호스트 CCSID(Coded Character Set Identifier)의 값이 있어야 문자열 데이터에서 코드 페이지 변환을 수행할 수 있습니다. 기본 호스트 CCSID 값은 유니코드 - UTF8[1208]입니다. 일반적으로 IBM Informix 데이터베이스 서버는 유니코드를 활용합니다.
PC 코드 페이지
데이터 공급자는 PC 코드 페이지의 값이 있어야 문자열 데이터에서 코드 페이지 변환을 수행할 수 있습니다. 기본 PC 코드 페이지는 유니코드 UTF8 - [1208]입니다. 일반적으로 IBM Informix 데이터베이스 서버는 유니코드를 활용합니다.
바이너리를 문자로 처리
데이터 공급자는 Informix 데이터 형식 및 Windows 소비자 데이터 형식에 따라 이진(CCSID 65535) 및 문자열 데이터 형식으로(형식에서) 자동 변환됩니다. Informix 인코딩은 호스트 CCSID에 의해 결정됩니다. Windows 인코딩은 PC 코드 페이지에 의해 결정됩니다.
데이터 형식 매핑
이 항목에서는 OLE DB 데이터 형식에 대한 모든 데이터 형식 매핑을 설명합니다.
Informix에서 OLE DB 데이터 형식에 대한 매핑
다음 표에서는 OLE DB 데이터 형식에 대한 Informix 데이터 형식 매핑에 관해 설명합니다.
OLE DB 데이터 형식 | Informix 데이터 형식 | 설명 |
---|---|---|
DBTYPE_I8 | bigint | 큰 정수는 8바이트 이진 정수입니다. |
DBTYPE_UI8 | bigserial | 부호 없는 8바이트 이진 정수입니다. |
DBTYPE_Bytes | blob | 이진 대형 개체는 텍스트가 아닌 데이터 또는 이진 데이터를 저장하는 데 사용되는 가변 길이의 문자열입니다. |
DBTYPE_BOOL | boolean | 부울은 True 또는 False 값을 저장하는 단일 바이트 이진입니다. |
DBTYPE_Bytes | byte | 이진 대형 개체는 텍스트가 아닌 데이터 또는 이진 데이터를 저장하는 데 사용되는 가변 길이의 문자열입니다. |
DBTYPE_STR | char | character는 고정 길이의 SBCS 또는 MBCS 문자열입니다. |
DBTYPE_STR | CLOB | 가변 길이의 문자 대형 개체는 가변 길이의 문자열입니다. |
DBTYPE_DBDate | date | date는 10바이트 문자열입니다. |
DBTYPE_DBTimesStamp | Datetime | 타임스탬프는 날짜, 시간, 마이크로초를 나타내는 32바이트 문자열입니다. |
DBTYPE_Decimal | decimal | 10진수입니다. |
DBTYPE_R8 | float | float는 8바이트 배정밀도 부동 소수점 수입니다. |
DBTYPE_I8 | int8 | 정수 8은 8바이트 이진 정수입니다. |
DBTYPE_I4 | 정수 | integer는 4바이트 바이너리 정수입니다. |
DBTYPE_DBTimesStamp | interval | 타임스탬프는 날짜, 시간, 마이크로초를 나타내는 32바이트 문자열입니다. |
DBTYPE_STR | lvarchar | 가변 문자는 가변 길이의 문자열입니다. |
DBTYPE_WSTR | nchar | 고정 길이 유니코드 문자열. |
DBTYPE_WSTR | nvarchar | 다양한 길이의 유니코드 문자열입니다. |
DBTYPE_R4 | real | float는 4바이트 배정밀도 부동 소수점 숫자입니다. |
DBTYPE_UI4 | serial | 부호 없는 4바이트 이진 정수입니다. |
DBTYPE_UI8 | serial8 | 부호 없는 8바이트 이진 정수입니다. |
DBTYPE_R4 | smallfloat | real은 4바이트 단정밀도 부동 소수점 수입니다. |
DBTYPE_I2 | smallint | 2바이트 이진 정수입니다. |
DBTYPE_STR | text | 가변 길이의 문자 대형 개체는 가변 길이의 문자열입니다. |
DBTYPE_STR | varchar | 가변 문자는 가변 길이의 문자열입니다. |
OLE DB의 스키마 정보는 IDBSchemaRowset::GetRowset이 포함된 미리 정의된 스키마 행 집합을 사용하여 검색됩니다. 데이터 공급자는 IBM Informix 버전을 기반으로 Informix-OLE DB 데이터 형식 지원(형식, 매핑, 제한 사항)을 나타내기 위해 PROVIDER_TYPES 행 세트를 노출했습니다.
Informix V11
데이터 공급자는 Informix V11에 연결되어 있을 때 해당 데이터 형식에 대한 액세스를 지원합니다.
Informix Type_name | OLE DB data_type | Column_size | Minimum_scale | Maximum_scale |
---|---|---|---|---|
bigint | DBTYPE_I8 | 20 | ||
INT8 | DBTYPE_I8 | 20 | ||
SERIAL8 | DBTYPE_UI8 | 20 | ||
BIGSERIAL | DBTYPE_UI8 | 20 | ||
BOOLEAN | DBTYPE_BOOL | 1 | ||
BYTE | DBTYPE_BYTES | 2147483647 | ||
BLOB | DBTYPE_BYTES | 2147483647 | ||
CHAR | DBTYPE_STR | 32767 | ||
TEXT | DBTYPE_STR | 2147483647 | ||
CLOB | DBTYPE_STR | 2147483647 | ||
DATE | DBTYPE_DBDATE | 10 | ||
DECIMAL | DBTYPE_DECIMAL | 32 | 0 | 32 |
FLOAT | DBTYPE_R8 | 53 | ||
NCHAR | DBTYPE_WSTR | 32767 | ||
INTEGER | DBTYPE_I4 | 10 | ||
일련 번호 | DBTYPE_UI4 | 10 | ||
SMALLFLOAT | DBTYPE_R4 | 24 | ||
real | DBTYPE_R4 | 24 | ||
SMALLINT | DBTYPE_I2 | 5 | ||
DATETIME | DBTYPE_DBTIMESTAMP | 32 | 0 | 12 |
INTERVAL | DBTYPE_DBTIMESTAMP | 32 | 0 | 12 |
VARCHAR | DBTYPE_STR | 255 | ||
LVARCHAR | DBTYPE_STR | 32739 | ||
NVARCHAR | DBTYPE_WSTR | 255 |
성능
이 항목에는 Informix용 데이터 공급자를 사용할 때 성능을 최대화하는 데 도움이 되는 다음과 같은 섹션이 포함되어 있습니다.
성능을 위한 구성
성능을 개선하려면 다음 방식으로 공급자를 구성하십시오.
공급자 리소스를 풀링하여 연결 시작 시간 단축
연결 풀링은 클라이언트 컴퓨터의 메모리 사용률을 줄이고 연결 시작 시간을 줄이는 클라이언트측 최적화입니다. OLE DB 공급자는 연결 풀링을 지원합니다. OLE DB 데이터 원본 초기화 문자열()을 사용하여 풀링을 지정할 수 있습니다. 또한 데이터 원본 마법사의 고급 대화 상자와 데이터 연결의 모두 대화 상자를 사용하여 풀링을 구성할 수 있습니다.
공급자는 최대 풀 크기 속성에 따라 연결 캐시를 유지합니다. 기본 풀 크기는 100개의 연결(최대 풀 크기=100)이고 이 값은 데이터 원본 마법사 또는 데이터 연결의 모두 대화 상자를 사용하여 조정할 수 있습니다. 최대 풀 크기 속성에는 상한값이 없습니다. 최대 풀 크기 속성에 0보다 작은 값을 구성하면 기본값인 100이 사용됩니다.
원하는 경우 시간(초)을 지정하여 데이터 공급자에게 클라이언트측 풀링을 사용하는 연결이 설정될 때까지 대기하도록 지시할 수 있습니다. 풀의 모든 연결이 사용 중이고 제한 시간이 만료되면 데이터 공급자는 데이터 소비자에게 오류("연결할 수 없습니다.")를 반환합니다. 기본값은 15초(연결 제한 시간=15)이고 이 값은 데이터 원본 마법사 또는 데이터 연결의 모두 대화 상자를 사용하여 조정할 수 있습니다. 연결 제한 시간 속성에는 상한값이 없습니다. -1을 지정하여 데이터 공급자에게 클라이언트측 연결 풀의 열린 연결을 무기한 대기하도록 지시합니다.
데이터를 가져올 때 행 집합 캐시 최적화
RowsetCacheSize 속성은 행을 처리하여 데이터 소비자에게 반환하는 동안 데이터 공급자에 Informix에서 행을 미리 가져오도록 지시합니다. 이 기능을 사용하면 다중 프로세서 또는 다중 코어 컴퓨터에서 대량 읽기 전용 작업의 성능이 향상될 수 있습니다. 속성의 기본값은 0(RowsetCacheSize=0)이며 이는 선택적 미리 가져오기 기능이 “꺼짐” 상태임을 나타냅니다. 값을 10부터 100 사이로 설정하고 초기값은 10으로 설정하는 것이 좋습니다. 이 값은 데이터 원본 마법사 또는 데이터 연결의 모두 대화 상자에서 조정할 수 있습니다. 이 속성은 데이터 공급자에게 데이터 공급자의 행 집합 캐시에 저장된 행 배치 개수까지 프리페치하도록 지시합니다. 행 배치의 크기는 소비자가 지정한 OLE DB IRowset::GetNextRows 인터페이스의 cRows 값을 기반으로 자동 결정됩니다.
실행할 때까지 매개 변수를 포함한 명령의 준비 지연
지연 준비는 데이터 공급자에게 매개 변수가 있는 INSERT, UPDATE, DELETE 및 SELECT 명령 처리 과정을 최적화하도록 지시합니다. OLE DB 데이터 원본 초기화 문자열()을 사용하여 옵션을 지정할 수 있습니다. 또한 데이터 원본 마법사의 고급 대화 상자와 데이터 연결의 모두 대화 상자를 사용하여 풀링을 구성할 수 있습니다. INSERT, UPDATE 및 DELETE 명령의 경우 데이터 공급자가 준비, 실행 및 커밋 명령을 원격 데이터베이스에 대한 하나의 네트워크 흐름으로 결합합니다. SELECT 명령의 경우에는 데이터 공급자가 준비 및 실행 명령을 하나의 네트워크 흐름으로 결합합니다. 이를 통해 네트워크 트래픽이 최소화되고 전체적인 성능이 향상됩니다.
장기 실행 쿼리를 종료하기 위한 명령 제한 시간
Informix용 OLE DB 공급자는 명령 시간 제한 속성을 제공하여 개발자가 성능에 부정적인 영향을 줄 수 있는 장기 실행 쿼리를 자동으로 종료할 수 있도록 합니다.
OLE DB Rowset DBPROP_COMMANDTIMEOUT의 기본값은 0이며, 이 값은 제한 시간이 없음을 의미합니다. SQL Server 2008 R2의 소비자와 같은 여러 소비자로부터 명령 시간 제한에 대한 값을 지정할 수 있습니다.
성능 측정
데이터 공급자는 성능을 측정하기 위해 성능 카운터를 제공합니다. 기본적으로 성능 카운터는 꺼져 있습니다. 다음 레지스트리 키의 값을 1로 설정하여 켤 수 있습니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Host Integration Server\Data Integration\UpdateCounters = 1
데이터 공급자 성능 카운터는 열린 연결, 열린 명령문, 주고받은 패킷과 바이트, 평균 호스트(Informix 서버) 처리 시간, 명령 실행, 데이터 가져오기 및 트랜잭션 커밋/롤백에 대한 정보를 캡처합니다.