Provider di dati per Informix
Compatibilità della piattaforma
Conversioni delle tabelle codici
Il provider di dati supporta una combinazione di set di caratteri a un byte (SBCS), set di caratteri a byte misti (MBCS), set di caratteri a due byte (DBCS) e Unicode - UTF8 [1208], che è un formato di trasformazione Unicode a 8 bit.
CCSID host
Il provider di dati richiede di specificare un valore per CCSID (Coded Character Set Identifier) host con cui eseguire conversioni di tabelle codici su dati di tipo stringa. Il valore CCSID host predefinito è Unicode - UTF8 [1208]. In genere, i server di database IBM Informix usano Unicode.
Tabella codici PC
Il provider di dati richiede un valore per la tabella codici PC con cui eseguire conversioni di tabelle codici su dati di tipo stringa. La tabella codici PC predefinita è Unicode - UTF8 [1208]. In genere, i server di database IBM Informix usano Unicode.
Elabora valore binario come carattere
Il provider di dati converte automaticamente in e da file binari (CCSID 65535) e tipi di dati stringa di caratteri, in base al tipo di dati Informix e al tipo di dati consumer windows. La codifica Informix è determinata dal CCSID host. La codifica di Windows è determinata dalla pagina codici del PC.
Mapping dei tipi di dati
In questo argomento vengono descritti i mapping di tutti i tipi di dati a quelli di OLE DB.
Mapping dei tipi di dati DI INFORMIX a OLE DB
La tabella seguente descrive i mapping dei tipi di dati Informix ai tipi di dati OLE DB.
Tipo di dati OLE DB | Tipo di dati Informix | Descrizione |
---|---|---|
DBTYPE_I8 | bigint | Un intero grande è un intero binario a 8 byte. |
DBTYPE_UI8 | bigserial | Intero binario senza segno a 8 byte. |
DBTYPE_Bytes | blob | Un oggetto di grandi dimensioni binario è una stringa di lunghezza variabile usata per archiviare dati non testuali o binari. |
DBTYPE_BOOL | boolean | Un valore booleano è un singolo byte binario per archiviare un valore true o false. |
DBTYPE_Bytes | byte | Un oggetto di grandi dimensioni binario è una stringa di lunghezza variabile usata per archiviare dati non testuali o binari. |
DBTYPE_STR | char | Un carattere è una stringa SBCS o MBCS di lunghezza fissa. |
DBTYPE_STR | Clob | Un oggetto di lunghezza variabile di grandi dimensioni è una stringa di lunghezza variabile. |
DBTYPE_DBDate | data | Un tipo di dati Date è una stringa di 10 byte. |
DBTYPE_DBTimesStamp | Datetime | Un timestamp è una stringa di 32 byte che rappresenta la data, l'ora e i microsecondi. |
DBTYPE_Decimal | decimal | Numero decimale. |
DBTYPE_R8 | float | Un tipo di dati Float è un numero di 8 byte a virgola mobile a precisione doppia. |
DBTYPE_I8 | int8 | Un intero 8 è un intero binario a 8 byte. |
DBTYPE_I4 | numero intero | Un tipo di dati Integer è un intero binario di 4 byte. |
DBTYPE_DBTimesStamp | interval | Un timestamp è una stringa di 32 byte che rappresenta la data, l'ora e i microsecondi. |
DBTYPE_STR | lvarchar | Un carattere variabile è una stringa di caratteri di lunghezza variabile. |
DBTYPE_WSTR | NCHAR | Stringa Unicode a lunghezza fissa. |
DBTYPE_WSTR | NVARCHAR | Una stringa Unicode di lunghezza variabile. |
DBTYPE_R4 | real | Un float è un numero a virgola mobile a precisione doppia a 4 byte. |
DBTYPE_UI4 | serial | Intero binario senza segno a 4 byte. |
DBTYPE_UI8 | serial8 | Intero binario senza segno a 8 byte. |
DBTYPE_R4 | smallfloat | Un tipo di dati Real è un numero di 4 byte a virgola mobile a singola precisione. |
DBTYPE_I2 | SMALLINT | Intero binario a due byte. |
DBTYPE_STR | text | Un oggetto di lunghezza variabile di grandi dimensioni è una stringa di lunghezza variabile. |
DBTYPE_STR | varchar | Un carattere variabile è una stringa di caratteri di lunghezza variabile. |
Le informazioni sullo schema di OLE DB vengono recuperate utilizzando set predefiniti di righe dello schema con IDBSchemaRowset::GetRowset. Il provider di dati ha esposto il set di righe PROVIDER_TYPES per indicare il supporto del tipo di dati Informix a OLE DB (tipi, mapping, limiti), in base alla versione IBM Informix.
Informix V11
Il provider di dati supporta l'accesso a questi tipi di dati quando si è connessi 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 | ||
SERIALE | 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 |
Prestazioni
Questo argomento contiene le sezioni seguenti che consentono di ottimizzare le prestazioni quando si usa il provider di dati per Informix.
Configurazione per le prestazioni
Configurazione per le prestazioni
Per migliorare le prestazioni, configurare i provider nei modi indicati di seguito.
Risorse del provider di pool per ridurre i tempi di avvio della connessione
Il pool di connessioni è un'ottimizzazione lato client che consente di ridurre i tempi di avvio della connessione, riducendo al tempo stesso l'utilizzo di memoria sul computer client. Il provider OLE DB supporta il pool di connessioni. È possibile specificare il pooling usando la stringa di inizializzazione dell'origine dati OLE DB (Connection Pooling=True). È possibile anche configurare il pooling utilizzando la finestra di dialogo Avanzate della Configurazione guidata origine dati e la finestra di dialogo Tutto di Collegamenti dati.
Il provider gestisce una cache di connessioni, in base alla proprietà Dimensioni massime pool. L'impostazione predefinita è 100 connessioni (Dimensioni massime pool=100),che è possibile modificare utilizzando la finestra di dialogo Tutto della Creazione guidata origine dati o di Collegamenti dati. Non esiste un limite massimo per la proprietà Dimensioni massime pool. Se si configura un valore inferiore a 0 per la proprietà Dimensioni massime pool, viene utilizzato il valore predefinito 100.
Facoltativamente, è possibile specificare un numero di secondi per indicare al provider di dati il tempo di attesa per stabilire le connessioni utilizzando il pool lato client. Se tutte le connessioni di un pool sono in uso e il periodo di timeout termina, il provider di dati restituirà al consumer di dati un errore di "connessione non disponibile". L'impostazione predefinita è 15 secondi (Timeout di connessione=15), che è possibile modificare utilizzando la finestra di dialogo Tutto della Creazione guidata origine dati o di Collegamenti dati. Non esiste un limite massimo per la proprietà Timeout di connessione. È possibile specificare il valore -1 per indicare al provider di dati di aspettare a tempo indefinito una connessione aperta nel pool di connessione lato client.
Ottimizzazione della cache di set di righe durante il recupero dei dati
La proprietà RowsetCacheSize indica al provider di dati di pre-recuperare le righe da Informix durante l'elaborazione simultanea e la restituzione di righe al consumer di dati. Questa funzionalità consente di migliorare le prestazioni nelle operazioni bulk di sola lettura sui computer con più processori o processori multicore. Il valore predefinito per questa proprietà è 0 ( RowsetCacheSize=0 ), che indica che la funzionalità di prelettura facoltativa è "off". Si consiglia di impostare un valore compreso tra 10 e 100, con un valore consigliato iniziale di 10. È possibile modificare tale valore utilizzando la finestra di dialogo Tutto della Creazione guidata origine dati o di Collegamenti dati. Questa proprietà indica al provider di dati di recuperare preventivamente fino al numero specificato di batch di righe, archiviati nella cache dei set di righe del provider di dati. La dimensione dei batch di righe viene determinata automaticamente in base al valore di cRows nell'interfaccia OLE DB IRowset::GetNextRows specificata dal consumer.
Posticipo dei comandi prepare con parametri fino al momento dell'esecuzione
Posticipa comandi prepare indica al provider di dati di ottimizzare l'elaborazione dei comandi con parametri INSERT, UPDATE, DELETE e SELECT. È possibile specificare questa opzione usando la stringa di inizializzazione dell'origine dati OLE DB ( Rinvia Prepare=True ). È possibile anche configurare il pooling utilizzando la finestra di dialogo Avanzate della Configurazione guidata origine dati e la finestra di dialogo Tutto di Collegamenti dati. Per i comandi INSERT, UPDATE e DELETE, il provider di dati combina i comandi di preparazione, esecuzione e commit in un unico flusso di rete al database remoto. Per il comando SELECT, il provider di dati combina i comandi di preparazione ed esecuzione in un unico flusso di rete. Questa ottimizzazione ridurrà il traffico di rete e spesso migliorerà le prestazioni generali.
Timeout dei comandi per interrompere query con esecuzione prolungata
Il provider OLE DB per Informix offre una proprietà di timeout dei comandi per consentire agli sviluppatori di terminare automaticamente query con esecuzione prolungata che potrebbero influire negativamente sulle prestazioni.
Il valore predefinito di DBPROP_COMMANDTIMEOUT per i set di righe OLE DB è 0, corrispondente a nessun timeout. È possibile specificare il valore per il timeout dei comandi da diversi consumer, ad esempio quelli in SQL Server 2008 R2.
Misurazione delle prestazioni
Per misurare le prestazioni, il provider di dati offre contatori delle prestazioni. Per impostazione predefinita, i contatori delle prestazioni sono disattivati. È possibile attivarli impostando su 1 il valore della seguente chiave del Registro di sistema:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Host Integration Server\Data Integration\UpdateCounters = 1
I contatori delle prestazioni del provider di dati acquisisce informazioni su connessioni aperte, istruzioni aperte, pacchetti e byte inviati/ricevuti, tempo di elaborazione dell'host medio (server Informix), esecuzioni dei comandi, recupero dei dati e commit/rollback delle transazioni.