Maximización del rendimiento

Las secciones de este tema ayudan a maximizar el rendimiento cuando se usan proveedores de datos para DB2.

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 de ADO.NET, el proveedor de OLE DB, el proveedor de Entity y BizTalk Adapter admiten la agrupación de conexiones. Puede especificar la agrupación mediante la cadena de conexión de ADO.NET o 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 de 100 conexiones (Max Pool Size=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 (Connect Timeout=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 DB2, mientras que 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 conexión de ADO.NET o 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.

Enviar varias filas en una sola unidad de trabajo

Los proveedores de datos para DB2 admiten operaciones de inserción masiva que permiten a los consumidores ejecutar varias instrucciones INSERT en lotes optimizados, lo que aprovecha mejor los paquetes de red TCP/IP y aumenta el rendimiento general. Con el proveedor ADO.NET, los desarrolladores pueden usar la interfaz MsDb2Client.BulkCopy. Con el proveedor OLE DB, los desarrolladores pueden usar la interfaz IRowsetFastLoad de OLE DB con los Destinos de OLE DB de SQL Server 2012 Integration Services. Con el adaptador de BizTalk para DB2, los desarrolladores pueden usar el diagrama de actualización del puerto de envío.

Tiempo de espera del comando para finalizar consultas de larga duración

El proveedor de datos ADO.NET para DB2 y el proveedor OLE DB para DB2 ofrecen una propiedad de tiempo de espera de comandos para permitir a los desarrolladores finalizar automáticamente las consultas de ejecución prolongada que puedan afectar negativamente al rendimiento.

El valor predeterminado de la propiedad Command.CommandTimeout de ADO.NET es de 30 segundos, lo que indica al proveedor que espere 30 segundos a que se ejecute el comando. 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, tiempo medio de procesamiento del host (servidor DB2), ejecuciones de comandos, recuperaciones de datos y confirmaciones o reversiones de transacciones.

Consulte también

Problemas de rendimiento
Integración de datos (operaciones)