Proveedor de datos para Informix
Compatibilidad de plataformas
Conversiones de páginas de códigos
El proveedor de datos admite una combinación de juegos de caracteres de byte único (SBCS), juegos de caracteres combinados (MBCS), juegos de caracteres de doble byte (DBCS) y Unicode - UTF8 [1208], que es un formato de transformación de Unicode de 8 bits.
CCSID de host
El proveedor de datos requiere un valor para CCSID (Identificador codificado del juego de caracteres) del host con el que realizar las conversiones de la página de código en los datos de cadena. El valor predeterminado del CCSID del host es Unicode- UTF8 [1208]. Normalmente, los servidores de bases de datos Informix de IBM usan Unicode.
Página de códigos de PC
El proveedor de datos requiere un valor para Página de códigos de PC con el que realizar las conversiones de la página de código en los datos de cadena. El valor predeterminado de la página de códigos de PC es Unicode- UTF8 [1208]. Normalmente, los servidores de bases de datos Informix de IBM usan Unicode.
Procesar binario como carácter
El proveedor de datos convierte automáticamente a y desde tipos de datos binarios (CCSID 65535) y cadenas de caracteres, según el tipo de datos de Informix y el del consumidor de Windows. La codificación de Informix viene determinada por el CCSID del host. La codificación de Windows viene determinada por la página de códigos de PC.
Asignación de tipos de datos
En la tabla siguiente se describen asignaciones de tipos de datos OLE DB.
Asignación de tipos de datos de Informix a OLE DB
En la tabla siguiente se describen las asignaciones de tipos de datos de Informix a tipos de datos de OLE DB.
Tipo de datos de OLE DB | Tipo de datos de Informix | Descripción |
---|---|---|
DBTYPE_I8 | bigint | Un entero grande es un entero binario de 8 bytes. |
DBTYPE_UI8 | bigserial | Entero binario de 8 bytes sin signo. |
DBTYPE_Bytes | blob | Un objeto grande binario es una cadena de longitud variable que se usa para almacenar datos no textuales o binarios. |
DBTYPE_BOOL | boolean | Un valor booleano es un binario de un solo byte para almacenar un valor true o false. |
DBTYPE_Bytes | byte | Un objeto grande binario es una cadena de longitud variable que se usa para almacenar datos no textuales o binarios. |
DBTYPE_STR | char | Carácter que es una cadena SBCS o MBCS de longitud fija. |
DBTYPE_STR | clob | Un objeto grande de caracteres de longitud variable es una cadena de longitud variable. |
DBTYPE_DBDate | fecha | Cadena de 10 bytes. |
DBTYPE_DBTimesStamp | datetime | Una marca de tiempo es una cadena de 32 bytes que representa la fecha, la hora y los microsegundos. |
DBTYPE_Decimal | Decimal | Número decimal. |
DBTYPE_R8 | FLOAT | Número de punto flotante de doble precisión de 8 bytes. |
DBTYPE_I8 | int8 | Un entero 8 es un entero binario de 8 bytes. |
DBTYPE_I4 | integer | Entero binario de 4 bytes. |
DBTYPE_DBTimesStamp | interval | Una marca de tiempo es una cadena de 32 bytes que representa la fecha, la hora y los microsegundos. |
DBTYPE_STR | lvarchar | Un carácter variable es una cadena de caracteres de longitud variable. |
DBTYPE_WSTR | NCHAR | Cadena Unicode de longitud fija. |
DBTYPE_WSTR | NVARCHAR | Una cadena Unicode de longitud variable. |
DBTYPE_R4 | real | Un valor float es un número de punto flotante de doble precisión de 4 bytes. |
DBTYPE_UI4 | serial | Entero binario de 4 bytes sin signo. |
DBTYPE_UI8 | serial8 | Entero binario de 8 bytes sin signo. |
DBTYPE_R4 | smallfloat | Número de punto flotante de precisión simple de 4 bytes. |
DBTYPE_I2 | SMALLINT | Entero binario de 2 bytes. |
DBTYPE_STR | text | Un objeto grande de caracteres de longitud variable es una cadena de longitud variable. |
DBTYPE_STR | varchar | Un carácter variable es una cadena de caracteres de longitud variable. |
La información de esquema de OLE DB se recupera mediante conjuntos de filas de esquema predefinidos con IDBSchemaRowset::GetRowset. El proveedor de datos ha expuesto el conjunto de filas PROVIDER_TYPES para indicar la compatibilidad de tipos de datos de Informix a OLE DB (tipos, asignaciones y límites), en función de la plataforma y la versión de Informix de IBM.
Informix V11
El proveedor de datos admite el acceso a estos tipos de datos al conectarse a 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 | ||
SERIAL | 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 |
Rendimiento
Las secciones de este tema ayudan a maximizar el rendimiento cuando se usa el proveedor de datos para Informix.
Configurar para el rendimiento
Configurar para el rendimiento
Para mejorar el rendimiento, configure los proveedores de las maneras siguientes.
Agrupar los recursos de proveedor para reducir el tiempo de inicio de la conexión
La agrupación de conexiones es un método de optimización del cliente que reduce el tiempo de inicio de la conexión a la vez que reduce la utilización de la memoria en el equipo cliente. El proveedor OLE DB admite la agrupación de conexiones. Puede especificar la agrupación mediante la cadena de inicialización de origen de datos de OLE DB (Connection Pooling=True). Además, puede configurar la agrupación mediante el cuadro de diálogo Opciones avanzadas del Asistente para orígenes de datos y el cuadro de diálogo Todo de Vínculos de datos.
El proveedor conserva una memoria en caché de las conexiones en función de la propiedad Tamaño máximo del grupo. El tamaño predeterminado de la agrupación es 100 conexiones (Tamaño máximo del grupo=100), que se puede ajustar mediante el cuadro de diálogo Todo del Asistente para orígenes de datos o Vínculos de datos. No hay límite superior para la propiedad Tamaño máximo del grupo. Si configura un valor que es menor que cero para la propiedad Tamaño máximo del grupo, se usa el valor predeterminado de 100.
De manera opcional, puede especificar un número de segundos para indicar al proveedor de datos que debe esperar para establecer conexiones mediante la agrupación del cliente. Cuando todas las conexiones de una agrupación están en uso y expira el período de espera, el proveedor de datos devolverá un error al consumidor de datos (“conexión no disponible”). El valor predeterminado es 15 segundos (Tiempo de espera de conexión=15), que se puede ajustar mediante el cuadro de diálogo Todo del Asistente para orígenes de datos o Vínculos de datos. No hay límite superior para la propiedad Tiempo de espera de conexión. Especifique -1 para indicar al proveedor de datos que espere indefinidamente una conexión abierta en la agrupación de conexiones del cliente.
Optimizar la memoria caché del conjunto de filas al obtener datos
La propiedad RowsetCacheSize indica al proveedor de datos que debe realizar una captura previa de filas desde Informix, mientras procesa y devuelve filas simultáneamente al consumidor de datos. Esta característica puede mejorar el rendimiento en operaciones de solo lectura por lotes en equipos con varios procesadores o elementos centrales. El valor predeterminado de esta propiedad es 0 (RowsetCacheSize=0), lo que indica que la característica de captura previa opcional está "desactivada". Es recomendable establecer un valor entre 10 y 100, con un valor inicial recomendado de 10, que se puede ajustar mediante el cuadro de diálogo Todo del Asistente para orígenes de datos o Vínculos de datos. Esta propiedad indica al proveedor de datos que debe realizar una captura previa del número especificado de lotes de filas, que se almacenan en la memoria caché de conjuntos de filas del proveedor de datos. El tamaño de los lotes de fila se determina automáticamente según el valor de cRows en la interfaz IRowset::GetNextRows de OLE DB que especifique el consumidor.
Aplazar la preparación de comandos con parámetros hasta la ejecución
Preparación diferida indica al proveedor de datos que debe optimizar el procesamiento de los comandos parametrizados INSERT, UPDATE, DELETE y SELECT. Esta opción se puede especificar mediante la cadena de inicialización de origen de datos de OLE DB (Defer Prepare=True). Además, puede configurar la agrupación mediante el cuadro de diálogo Opciones avanzadas del Asistente para orígenes de datos y el cuadro de diálogo Todo de Vínculos de datos. En el caso de los comandos INSERT, UPDATE y DELETE, el proveedor de datos combina los comandos de preparación, ejecución y confirmación en un flujo de red hacia la base de datos remota. En el caso del comando SELECT, el proveedor de datos combina los comandos de preparación y ejecución en un flujo de red. Ello minimiza el tráfico de red y a menudo mejora el rendimiento global.
Tiempo de espera del comando para finalizar consultas de larga duración
El proveedor OLE DB para Informix ofrece una propiedad de tiempo de espera de comandos para permitir a los desarrolladores finalizar automáticamente las consultas de larga duración que puedan afectar negativamente al rendimiento.
El valor de DBPROP_COMMANDTIMEOUT del conjunto de filas de OLE DB es 0, que indica que no hay tiempo de espera. Puede especificar el valor del tiempo de espera de los comandos desde varios consumidores, como los de SQL Server 2008 R2.
Medir el rendimiento
Para medir el rendimiento, el proveedor de datos ofrece contadores de rendimiento. Los contadores de rendimiento están desactivados de modo predeterminado. Pueden activarse si se cambia a 1 el valor de la clave siguiente del Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Host Integration Server\Data Integration\UpdateCounters = 1
Los contadores de rendimiento del proveedor de datos capturan información sobre conexiones abiertas, instrucciones abiertas, paquetes y bytes enviados o recibidos, el tiempo medio de procesamiento del host (servidor Informix), ejecuciones de comandos, recuperaciones de datos y confirmaciones o reversiones de transacciones.