Partager via


Fournisseur de données pour Informix

Compatibilité de la plateforme

Conversions de pages de code

Le fournisseur de données prend en charge une combinaison de jeux de caractères codés sur un octet (SBCS), de jeux de caractères de largeur mixte (MBCS), de jeux de caractères codés sur deux octets (DBCS) et de jeux de caractères Unicode - UTF8 [1208], qui est un format de transformation Unicode de 8 bits.

CCSID de l'hôte

Le fournisseur de données requiert une valeur pour le CCSID (Coded Character Set Identifier) de l'hôte avec lequel exécuter des conversions de page de codes sur des données de chaîne. La valeur CCSID de l’hôte par défaut est Unicode - UTF8 [1208]. En règle générale, les serveurs de bases de données IBM Informix utilisent Unicode.

Page de codes PC

Le fournisseur de données requiert une valeur pour la page de codes PC avec laquelle exécuter des conversions de page de codes sur des données de chaîne. La page de codes PC par défaut est Unicode - UTF8 [1208]. En règle générale, les serveurs de bases de données IBM Informix utilisent Unicode.

Traiter le binaire comme caractère

Le fournisseur de données convertit automatiquement (en entrée et en sortie) les données de type binaire (CCSID 65535) et chaîne de caractères, en fonction du type de données Informix et du type de données du consommateur Windows. L’encodage Informix est déterminé par le CCSID hôte. L’encodage Windows est déterminé par la page de codes PC.

Mappage de type de données

Cette rubrique décrit les mappages de tous les types de données aux types de données OLE DB.

Mappage des types de données Informix à OLE DB

Le tableau suivant décrit les mappages des types de données Informix aux types de données OLE DB.

Type de données OLE DB Type de données Informix Description
DBTYPE_I8 bigint Un grand entier est un entier binaire codé sur 8 octets.
DBTYPE_UI8 bigserial Entier binaire non signé codé sur 8 octets.
DBTYPE_Bytes objet BLOB Un objet blob (Binary Large Object) est une chaîne de longueur variable servant à stocker des données binaires ou non textuelles.
DBTYPE_BOOL boolean Une valeur booléenne est une donnée binaire codée sur un seul octet pour stocker une valeur true ou false.
DBTYPE_Bytes byte Un objet blob (Binary Large Object) est une chaîne de longueur variable servant à stocker des données binaires ou non textuelles.
DBTYPE_STR char Il s'agit d'une chaîne SBCS ou MBCS de longueur fixe.
DBTYPE_STR clob Un objet CLOB (Character Large Object) de longueur variable est une chaîne de longueur variable.
DBTYPE_DBDate Date Il s'agit d'une chaîne codée sur 10 octets.
DBTYPE_DBTimesStamp DATETIME Un horodatage est une chaîne codée sur 32 octets représentant la date, l’heure et les microsecondes.
DBTYPE_Decimal Décimal Nombre décimal.
DBTYPE_R8 float Il s'agit d'un nombre à virgule flottante double précision codé sur 8 octets.
DBTYPE_I8 int8 Un entier 8 est un entier binaire codé sur 8 octets.
DBTYPE_I4 entier Il s'agit d'un entier binaire codé sur 4 octets.
DBTYPE_DBTimesStamp interval Un horodatage est une chaîne codée sur 32 octets représentant la date, l’heure et les microsecondes.
DBTYPE_STR lvarchar Une chaîne de caractères variable est une chaîne de caractères de longueur variable.
DBTYPE_WSTR NCHAR Chaîne Unicode de longueur fixe.
DBTYPE_WSTR NVARCHAR Chaîne Unicode de longueur variable.
DBTYPE_R4 real Une donnée float est un nombre à virgule flottante double précision codé sur 4 octets.
DBTYPE_UI4 serial Entier binaire non signé codé sur 4 octets.
DBTYPE_UI8 serial8 Entier binaire non signé codé sur 8 octets.
DBTYPE_R4 smallfloat Il s'agit d'un nombre à virgule flottante simple précision codé sur 4 octets.
DBTYPE_I2 SMALLINT Entier binaire codé sur deux octets.
DBTYPE_STR texte Un objet CLOB (Character Large Object) de longueur variable est une chaîne de longueur variable.
DBTYPE_STR varchar Une chaîne de caractères variable est une chaîne de caractères de longueur variable.

Les informations sur le schéma contenues dans OLE DB sont extraites à l'aide d'ensembles de lignes de schéma prédéfinis avec IDBSchemaRowset::GetRowset. Le fournisseur de données a exposé l’ensemble de lignes PROVIDER_TYPES pour indiquer la prise en charge des types de données Informix et OLE DB (types, mappages, limites) en fonction de la version d’IBM Informix.

Informix V11

Le fournisseur de données prend en charge l’accès à ces types de données quand il est connecté à Informix V11.

Type_name Informix data_type OLE DB 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

Performances

Cette rubrique contient les sections suivantes, qui vous aideront à optimiser les performances liées à l’utilisation du fournisseur de données pour Informix.

Configuration pour optimiser le niveau de performance

Mesure des performances

Configuration pour optimiser le niveau de performance

Pour améliorer les performances, configurez les fournisseurs en suivant les instructions indiquées ci-dessous.

Regrouper les ressources du fournisseur pour réduire le temps de démarrage de la connexion

Le regroupement des connexions est une optimisation côté client qui permet de réduire le temps de démarrage de la connexion tout en réduisant l'utilisation de la mémoire sur l'ordinateur client. Le fournisseur OLE DB prend en charge le regroupement de connexions. Vous pouvez spécifier le regroupement à l’aide de la chaîne d’initialisation de source de données OLE DB (Connection Pooling=True). En outre, vous pouvez configurer le regroupement à l'aide de la boîte de dialogue Avancé de l'Assistant Source de données et à l'aide de l'onglet Toutes de la boîte de dialogue Liaisons de données.

Le fournisseur gère un cache de connexions sur la base d'une propriété Taille de pool max. La taille du regroupement par défaut est de 100 connexions (Max Pool Size=100) ; vous pouvez toutefois ajuster cette valeur à l'aide de la boîte de dialogue Toutes de l'Assistant Source de données ou des liaisons de données. Il n'y a aucune limite supérieure pour la propriété Taille de pool max. Si vous configurez une valeur inférieure à 0 pour la propriété Taille de pool max, la valeur par défaut 100 est utilisée.

À titre facultatif, vous pouvez spécifier un nombre de secondes afin d'indiquer au fournisseur de données d'attendre pour établir des connexions à l'aide du regroupement côté client. Lorsque toutes les connexions d'un regroupement sont en cours d'utilisation et que le délai de connexion expire, le fournisseur de données renvoie une erreur au consommateur de données (« Connexion non disponible »). La valeur par défaut est de 15 secondes (Connect Timeout=15) ; vous pouvez toutefois ajuster cette valeur à l'aide de la boîte de dialogue Toutes de l'Assistant Source de données ou des liaisons de données. Il n'y a aucune limite supérieure pour la propriété Connect Timeout. Spécifiez la valeur -1 pour indiquer au fournisseur de données d’attendre indéfiniment une connexion ouverte dans le pool de connexions côté client.

Optimiser le cache d'ensemble de lignes lors de l'obtention des données

La propriété RowsetCacheSize indique au fournisseur de données de préextraire les lignes d’Informix tout en traitant et en retournant simultanément les lignes au consommateur de données. Cette fonctionnalité peut améliorer les performances des opérations de lecture seule en bloc sur les ordinateurs multiprocesseurs ou multicœurs. La valeur par défaut de cette propriété est 0 (RowsetCacheSize=0), ce qui indique que la fonctionnalité facultative de préextraction est « désactivée ». Il est conseillé de définir une valeur comprise entre 10 et 100, avec une valeur initiale recommandée de 10 ; vous pouvez toutefois ajuster cette valeur dans la boîte de dialogue Toutes de l'Assistant Source de données ou des liaisons de données. Cette propriété indique au fournisseur de données de prérécupérer le nombre spécifié de lots de lignes stockés dans le cache d'ensemble de lignes du fournisseur de données. La taille des lots de lignes est déterminée automatiquement en fonction de la valeur de cRows dans l'interface IRowset::GetNextRows OLE DB spécifiée par le consommateur.

Différer la préparation des commandes avec des paramètres jusqu'à l'exécution

La préparation différée indique au fournisseur de données d'optimiser le traitement des commandes INSERT, UPDATE, DELETE et SELECT paramétrables. Vous pouvez spécifier cette option à l’aide de la chaîne d’initialisation de source de données OLE DB (Defer Prepare=True). En outre, vous pouvez configurer le regroupement à l'aide de la boîte de dialogue Avancé de l'Assistant Source de données et à l'aide de l'onglet Toutes de la boîte de dialogue Liaisons de données. Pour les commandes INSERT, UPDATE et DELETE, le fournisseur de données combine les commandes prepare, execute et commit en un seul flux réseau vers la base de données distante. Pour la commande SELECT, le fournisseur de données combine des commandes PREPARE et EXECUTE en un seul flux réseau. Cela réduit le trafic réseau et améliore souvent les performances globales.

Paramétrer le délai de commande pour arrêter les requêtes longues

Le fournisseur OLE DB pour Informix propose une propriété de délai d’expiration de commande, qui permet aux développeurs de mettre fin automatiquement aux requêtes longues pouvant impacter négativement les performances.

La valeur par défaut de la propriété OLE DB d'ensemble de lignes DBPROP_COMMANDTIMEOUT est 0, c'est-à-dire aucun délai d'expiration. Vous pouvez spécifier la valeur du délai d’expiration de commande à partir de plusieurs consommateurs, par exemple ceux de SQL Server 2008 R2.

Mesure du niveau de performances

Le fournisseur de données inclut des compteurs de performances pour mesurer le niveau de performance. Par défaut, les compteurs de performances sont désactivés. Ils peuvent être activés en attribuant la valeur 1 à la clé de Registre suivante :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Host Integration Server\Data Integration\UpdateCounters = 1

Les compteurs de performances du fournisseur de données capturent les informations relatives aux connexions ouvertes, aux instructions ouvertes, aux paquets et octets envoyés/reçus, au temps de traitement moyen de l’hôte (serveur Informix), aux exécutions de commandes, aux extractions de données ainsi qu’aux validations/restaurations de transactions.