Guía de Rendimiento para Informatica 10.2
Guía de Rendimiento para Informatica 10.2
10.2
Informatica® PowerCenter Express
10.0
Este software y la documentación se proporcionan exclusivamente en virtud de un acuerdo de licencia independiente que contiene restricciones de uso y divulgación.
Ninguna parte de este documento puede ser reproducida o transmitida de cualquier forma o manera (electrónica, fotocopia, grabación o mediante otros métodos) sin
el consentimiento previo de Informatica LLC.
Informatica y el logotipo de Informatica son marcas comerciales o marcas comerciales registradas de Informatica LLC en Estados Unidos y en las diversas
jurisdicciones de todo el mundo. La lista actual de marcas comerciales de Informatica está disponible en Internet en [Link]
Otros nombres de productos y empresas pueden ser nombres o marcas comerciales de sus respectivos titulares.
Las bases de datos, el software y los programas de DERECHOS DEL GOBIERNO DE LOS ESTADOS UNIDOS, y la documentación e información técnica relacionadas
entregadas a los clientes del Gobierno de los Estados Unidos constituyen "software informático comercial" o "datos técnicos comerciales" de acuerdo con el
Reglamento de Adquisición Federal y las regulaciones complementarias específicas del organismo que correspondan. Como tales, el uso, la duplicación, la divulgación,
la modificación y la adaptación están sujetos a las restricciones y los términos de licencia establecidos en el contrato gubernamental aplicable, y hasta donde sea
aplicable en función de los términos del contrato gubernamental, a los derechos adicionales establecidos en FAR 52.227-19, Licencia de Software Informático
Comercial.
Hay fragmentos de este software y/o documentación que están sujetas a copyright perteneciente a terceros, incluido, entre otros: Copyright DataDirect Technologies.
Todos los derechos reservados. Copyright © Sun Microsystems. Todos los derechos reservados. Copyright © RSA Security Inc. Todos los derechos reservados.
Copyright © Ordinal Technology Corp. Todos los derechos reservados. Copyright © Aandacht c.v. Todos los derechos reservados. Copyright Genivia, Inc. Todos los
derechos reservados. Copyright Isomorphic Software. Todos los derechos reservados. Copyright © Meta Integration Technology, Inc. Todos los derechos reservados.
Copyright © Intalio. Todos los derechos reservados. Copyright © Oracle. Todos los derechos reservados. Copyright © Adobe Systems Incorporated. Todos los derechos
reservados. Copyright © DataArt, Inc. Todos los derechos reservados. Copyright © ComponentSource. Todos los derechos reservados. Copyright © Microsoft
Corporation. Todos los derechos reservados. Copyright © Rogue Wave Software, Inc. Todos los derechos reservados. Copyright © Teradata Corporation. Todos los
derechos reservados. Copyright © Yahoo! Inc. Todos los derechos reservados. Copyright © Glyph & Cog, LLC. Todos los derechos reservados. Copyright © Thinkmap,
Inc. Todos los derechos reservados. Copyright © Clearpace Software Limited. Todos los derechos reservados. Copyright © Information Builders, Inc. Todos los
derechos reservados. Copyright © OSS Nokalva, Inc. Todos los derechos reservados. Copyright Edifecs, Inc. Todos los derechos reservados. Copyright Cleo
Communications, Inc. Todos los derechos reservados. Copyright © International Organization for Standardization 1986. Todos los derechos reservados. Copyright © ej-
technologies GmbH. Todos los derechos reservados. Copyright © Jaspersoft Corporation. Todos los derechos reservados. Copyright © International Business Machines
Corporation. Todos los derechos reservados. Copyright © yWorks GmbH. Todos los derechos reservados. Copyright © Lucent Technologies. Todos los derechos
reservados. Copyright © University of Toronto. Todos los derechos reservados. Copyright © Daniel Veillard. Todos los derechos reservados. Copyright © Unicode, Inc.
Copyright IBM Corp. Todos los derechos reservados. Copyright © MicroQuill Software Publishing, Inc. Todos los derechos reservados. Copyright © PassMark Software
Pty Ltd. Todos los derechos reservados. Copyright © LogiXML, Inc. Todos los derechos reservados. Copyright © 2003-2010 Lorenzi Davide. Todos los derechos
reservados. Copyright © Red Hat, Inc. Todos los derechos reservados. Copyright © The Board of Trustees of the Leland Stanford Junior University. Todos los derechos
reservados. Copyright © EMC Corporation. Todos los derechos reservados. Copyright © Flexera Software. Todos los derechos reservados. Copyright © Jinfonet
Software. Todos los derechos reservados. Copyright © Apple Inc. Todos los derechos reservados. Copyright © Telerik Inc. Todos los derechos reservados. Copyright ©
BEA Systems. Todos los derechos reservados. Copyright © PDFlib GmbH. Todos los derechos reservados. Copyright © Orientation in Objects GmbH. Todos los
derechos reservados. Copyright © Tanuki Software, Ltd. Todos los derechos reservados. Copyright © Ricebridge. Todos los derechos reservados. Copyright © Sencha,
Inc. Todos los derechos reservados. Copyright © Scalable Systems, Inc. Todos los derechos reservados. Copyright © jQWidgets. Todos los derechos reservados.
Copyright © Tableau Software, Inc. Todos los derechos reservados. Copyright © MaxMind, Inc. Todos los derechos reservados. Copyright © TMate Software s.r.o. Todos
los derechos reservados. Copyright © MapR Technologies Inc. Todos los derechos reservados. Copyright © Amazon Corporate LLC. Todos los derechos reservados.
Copyright © Highsoft. Todos los derechos reservados. Copyright © Python Software Foundation. Todos los derechos reservados. Copyright © [Link]. Todos los
derechos reservados. Copyright © CNRI. Todos los derechos reservados.
Este producto incluye software desarrollado por la Apache Software Foundation ([Link] y/u otro software protegido por varias versiones de la
licencia Apache License ("Licencia"). Puede obtener una copia de estas licencias en [Link] A menos que las leyes aplicables lo requieran o
se haya acordado por escrito, el software distribuido bajo estas licencias se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sea
expresas o implícitas. Consulte las licencias del idioma específico para conocer los permisos y las limitaciones que rigen según las licencias.
Este producto incluye software desarrollado por Mozilla ([Link] copyright del software de The JBoss Group, LLC, todos los derechos reservados;
copyright del software © 1999-2006 de Bruno Lowagie y Paulo Soares y otro software protegido con licencia por el acuerdo GNU Lesser General Public License
Agreement, que se puede encontrar en la dirección http:// [Link]/licenses/[Link]. Los materiales se facilitan gratuitamente por parte de Informatica, "tal cual",
sin garantía de ningún tipo, ya sea expresa o implícita, incluidas, entre otras, las garantías implícitas de adecuación para un propósito determinado y de validez para el
comercio.
El producto incluye software ACE(TM) y TAO(TM) con copyright de Douglas C. Schmidt y su grupo de investigación de la Washington University, University of California,
Irvine y Vanderbilt University, Copyright (©) 1993-2006, todos los derechos reservados.
Este producto incluye software desarrollado por el OpenSSL Project para uso en el OpenSSL Toolkit (copyright The OpenSSL Project. Todos los derechos reservados) y
la redistribución de este software está sujeta a los términos especificados en [Link] y [Link]
Este producto incluye software Curl con Copyright 1996-2013, Daniel Stenberg, <daniel@[Link]>. Todos los derechos reservados. Los permisos y las limitaciones
relativos a este software están sujetos a los términos disponibles en la dirección [Link] La autorización para utilizar, copiar, modificar
y distribuir este software para cualquier propósito con o sin tasas se concede por el presente, siempre que el aviso de copyright anterior y este aviso de permiso
aparezcan en todas las copias.
El producto incluye copyright de software 2001-2005 (©) MetaStuff, Ltd. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software están
sujetos a los términos disponibles en la dirección [Link]
Este producto incluye copyright de software © 1996-2006 Per Bothner. Todos los derechos reservados. Su derecho a utilizar estos materiales está establecido en la
licencia que puede encontrarse en la dirección [Link]
Este producto incluye software OSSP UUID con Copyright © 2002 Ralf S. Engelschall, Copyright © 2002 The OSSP Project Copyright © 2002 Cable & Wireless
Deutschland. Los permisos y las limitaciones relativas a este software están sujetos a los términos disponibles en la dirección [Link]
[Link].
Este producto incluye software desarrollado por Boost ([Link] o protegido por la licencia de software de Boost. Los permisos y las limitaciones
relativos a este software están sujetos a los términos disponibles en la dirección [Link]
Este producto incluye copyright de software © 1997-2007 University of Cambridge. Los permisos y las limitaciones relativos a este software están sujetos a los
términos disponibles en la dirección [Link]
Este producto incluye copyright de software © 2007 The Eclipse Foundation. Todos los derechos reservados. Los permisos y las limitaciones relativos a este software
están sujetos a los términos especificados en [Link] y [Link]
Este producto incluye software protegido por licencia según los términos que aparecen en [Link] [Link]
overlib/?License, [Link] [Link], [Link] [Link] [Link]
[Link], [Link] [Link], [Link] [Link] http://
[Link]/software/release/[Link], [Link] [Link] [Link] http://
[Link]/downloads/license-agreements/fuse-message-broker-v-5-3- license-agreement, [Link] [Link]
[Link] [Link] [Link] [Link]
bsd_license.html, [Link] [Link] [Link]
[Link]; [Link] [Link] [Link] [Link]
[Link], [Link] [Link] [Link] [Link]
[Link] [Link] [Link] http://
[Link]/bounce/[Link]; [Link] [Link] [Link] http://
[Link]/[Link]; [Link] [Link] [Link] [Link]
[Link] [Link] http://
[Link]/LICENSE; [Link] [Link] https://
[Link]/rantav/hector/blob/master/LICENSE; [Link] [Link]
[Link] [Link] [Link] https://
[Link]/jedisct1/libsodium/blob/master/LICENSE; [Link] [Link]
kryo/blob/master/[Link]; [Link] [Link] [Link]
classes/EDU/oswego/cs/dl/util/concurrent/[Link]; [Link] [Link] https://
[Link]/p/xmlunit/code/HEAD/tree/trunk/[Link]; [Link] y [Link]
apache/hbase/blob/master/[Link].
Este producto incluye software desarrollado por la Academic Free License ([Link] la Common Development and Distribution
License ([Link] la Common Public License ([Link] la Sun Binary Code License
Agreement Supplemental License Terms, la BSD License ([Link] la nueva BSD License ([Link]
BSD-3-Clause), la MIT License ([Link] la Artistic License ([Link] y la
Initial Developer’s Public License Version 1.0 ([Link]
Este producto incluye copyright de software © 2003-2006 Joe WaInes, 2006-2007 XStream Committers. Todos los derechos reservados. Los permisos y las
limitaciones relativos a este software están sujetos a los términos disponibles en la dirección [Link] Este producto incluye
software desarrollado por Indiana University Extreme! Lab. Para obtener más información, visite [Link]
Este producto incluye software Copyright © 2013 Frank Balluffi y Markus Moeller. Todos los derechos reservados. Los permisos y las limitaciones relativas a este
software están sujetos a los términos de la licencia MIT.
EXENCIÓN DE RESPONSABILIDAD: Informatica LLC proporciona esta documentación "tal cual" sin garantía de ningún tipo, ya sea expresa o implícita, incluidas, entre
otras, las garantías implícitas de no incumplimiento, de adecuación para un propósito determinado y de validez para el comercio. Informatica LLC no garantiza que este
software o esta documentación estén libres de errores. La información proporcionada en este software o en esta documentación puede contener imprecisiones
técnicas o errores tipográficos. La información de este software y esta documentación está sujeta a cambios en cualquier momento sin previo aviso.
AVISOS
Este producto de Informatica (el “Software”) incluye ciertos controladores (los “Controladores DataDirect”) de DataDirect Technologies, una empresa operativa de
Progress Software Corporation (“DataDirect”) que están sujetos a los términos y condiciones siguientes:
1. LOS CONTROLADORES DATADIRECT SE PROPORCIONAN "TAL CUAL" SIN GARANTÍA DE NINGÚN TIPO, YA SEA EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE
OTRAS, LAS GARANTÍAS IMPLÍCITAS DE NO INCUMPLIMIENTO, DE ADECUACIÓN PARA UN PROPÓSITO DETERMINADO Y DE VALIDEZ PARA EL COMERCIO.
2. EN NINGÚN CASO DATADIRECT NI SUS PROVEEDORES DE TERCEROS SERÁN RESPONSABLES ANTE EL USUARIO FINAL POR NINGÚN DAÑO DIRECTO,
INDIRECTO, FORTUITO, ESPECIAL, CONSECUENTE, NI DE NINGÚN OTRO TIPO, RESULTANTE DEL USO DE LOS CONTROLADORES ODBC,
INDEPENDIENTEMENTE DE SI SE HA AVISADO O NO DE LOS POSIBLES DAÑOS POR ADELANTADO. ESTAS LIMITACIONES SE APLICAN A TODAS LAS
DEMANDAS JUDICIALES, INCLUIDAS, ENTRE OTRAS, AQUELLAS POR INCUMPLIMIENTO DE CONTRATO, INCUMPLIMIENTO DE LA GARANTÍA, NEGLIGENCIA,
RESPONSABILIDAD ESTRICTA, TERGIVERSACIÓN Y OTROS AGRAVIOS.
La información contenida en esta documentación está sujeta a cambios sin previo aviso. Si encuentra algún problema en esta documentación, infórmenos por escrito
a Informatica LLC 2100 Seaport Blvd. Redwood City, CA 94063.
Los productos de Informatica gozan de garantía en función de los términos y condiciones de los acuerdos conforme a los cuales se proporcionen. INFORMATICA
PROPORCIONA LA INFORMACIÓN DE ESTE DOCUMENTO "TAL CUAL" SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUIDAS LAS GARANTÍAS DE
COMERCIALIZACIÓN, ADAPTACIÓN A UN FIN PARTICULAR Y CUALQUIER GARANTÍA O CONDICIÓN DE NO INCUMPLIMIENTO.
4Tabla de contenido
Restricciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Configurar restricciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Optimización del objeto de datos personalizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Optimización de origen de base de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Tabla de contenido 5
Reglas y directrices de la optimización de inserciones. . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Lectura de pase individual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Optimización del filtro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Optimización de conversión de tipos de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Error de seguimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6Tabla de contenido
Cómo habilitar la memoria caché del conjunto de resultados para un servicio de datos SQL. . . 80
Conservación de datos virtuales en tablas temporales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Implementación de tablas temporales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Índice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Tabla de contenido 7
Prefacio
La Guía de ajuste del rendimiento de Informatica va dirigida a los administradores y desarrolladores que están
interesados en mejorar el rendimiento. Esta guía asume que tiene conocimientos de los sistemas operativos,
redes, herramientas cliente, conceptos de bases de datos relacionales y archivos sin formato de su entorno.
Para obtener más información sobre el ajuste del rendimiento de la base de datos que no aparezca en esta
guía, consulte la documentación proporcionada con los productos de su base de datos.
La Guía de ajuste del rendimiento de PowerCenter Express va dirigida a los administradores y desarrolladores
que están interesados en mejorar el rendimiento. Esta guía asume que tiene conocimientos de los sistemas
operativos, redes, herramientas cliente, bases de datos relacionales y archivos sin formato de su entorno.
Para obtener más información sobre el ajuste del rendimiento de la base de datos que no aparezca en esta
guía, consulte la documentación proporcionada con los productos de su base de datos.
Documentación de Informatica
Informatica Network
Informatica Network incluye el servicio internacional de atención al cliente de Informatica, la base de
conocimiento de Informatica y otros recursos de producto. Para acceder a Informatica Network, visite
[Link]
Un miembro puede:
8
Documentación de Informatica
Para obtener la documentación más reciente del producto, consulte la base de conocimiento de Informatica
en [Link]
Si tiene preguntas, comentarios o ideas relacionadas con esta documentación, póngase en contacto con el
equipo de documentación de Informatica enviando un correo electrónico a
infa_documentation@[Link].
Informatica Velocity
Informatica Velocity es un conjunto de sugerencias y mejores prácticas desarrollado por los servicios
profesionales de Informatica. Desarrollado a partir de la experiencia real de cientos de proyectos de
administración de datos, Informatica Velocity representa el conocimiento conjunto de nuestros asesores, los
cuales han trabajado con organizaciones de todo el mundo para planificar, desarrollar, implementar y
mantener con éxito soluciones de administración de datos.
Si tiene alguna pregunta, comentario o idea acerca de Informatica Velocity, póngase en contacto con los
servicios Profesionales de Informatica en ips@[Link].
Para encontrar el número de teléfono local del servicio internacional de atención al cliente de Informatica,
visite el sitio web de Informatica en el siguiente vínculo:
[Link]
Prólogo 9
Capítulo 1
Para optimizar una asignación, identifique un cuello de botella de rendimiento, elimínelo y, a continuación,
identifique el siguiente cuello de botella de rendimiento. Optimice un componente de la asignación cada vez.
Puede calcular una asignación antes y después cambiarla para comprobar que la optimización tiene un
impacto en el rendimiento.
Puede encontrar y corregir cuellos de botella en los componentes de asignación, como orígenes, destinos y
conexiones. Puede comprobar los cuellos de botella en el servicio de integración de datos y la máquina en la
que se ejecuta el servicio de integración de datos. También puede ajustar las propiedades para los servicios
web y los servicios de datos SQL.
10
Proceso de ajuste del rendimiento
Puede seguir un conjunto de pasos para ajustar los componentes de asignación y aumentar el rendimiento.
1. Destinos
2. Orígenes
3. Asignaciones
4. Transformaciones
5. Entorno de Informatica en Administrator Tool
6. El sistema del equipo
7. Servicio de datos o servicio web
Utilice los siguientes métodos para identificar los cuellos de botella de rendimiento:
• Ejecute asignaciones de prueba. Puede configurar una asignación de prueba para leer desde un origen de
archivo sin formato o para escribir en un destino de archivo sin formato para identificar los cuellos de
botella de origen y de destino.
• Analice los detalles del rendimiento. Analice los detalles del rendimiento, tales como métodos de
optimización, para determinar donde disminuye el rendimiento de la asignación.
• Supervise el rendimiento del sistema. Puede utilizar herramientas de supervisión del sistema para ver el
porcentaje de uso de CPU, las esperas de E/S, la paginación y el uso de los recursos del sistema.
El cuello de botella de rendimiento más común se produce cuando el servicio de integración de datos escribe
en una base de datos de destino. Si la base de datos utiliza pequeños intervalos de puntos de comprobación,
el procesamiento de la base de datos se reduce con más frecuencia al escribir un punto de comprobación.
Los tamaños pequeños de paquetes de red de base de datos pueden provocar cuellos de botella. Puede
permitir paquetes de datos más grandes para cruzar la red al mismo tiempo.
Para identificar un cuello de botella de destino, puede crear una copia de la asignación que tiene un destino
de archivo sin formato en lugar de un destino de base de datos. Si el rendimiento aumenta
significativamente, tiene un cuello de botella de destino. Si la asignación ya escribe en un destino de archivo
sin formato, probablemente no tiene un cuello de botella de destino.
Cuando la asignación lee desde un origen relacional, puede utilizar los siguientes métodos para identificar
los cuellos de botella de origen:
• Añada una transformación de filtro a la asignación. Añada la transformación de filtro después del origen.
Configure la condición de filtro en FALSE para que la transformación de filtro no devuelva ningún dato. Si
la cantidad de tiempo que lleva la asignación es más o menos el mismo, la asignación tiene un cuello de
botella de origen.
• Cree una asignación de prueba de lectura. Haga una copia de la asignación pero quite todas las
transformaciones, combinaciones o consultas. Conecte el origen a un destino. Si el rendimiento de la
asignación es similar a la asignación original, tiene un cuello de botella de origen.
• Ejecute la consulta de lectura directamente en la base de datos de origen. Copie la consulta de lectura
desde el registro de asignación. Ejecute la consulta en la base de datos de origen con una herramienta de
consultas como isql. Calcule el tiempo de ejecución y el tiempo que tarda la consulta en devolver una fila.
Para identificar un cuello de botella de asignación, analice los detalles del rendimiento en el registro de
asignación. Los detalles de rendimiento incluyen información sobre cada transformación, tales como el
número de filas de entrada, filas de salida y filas de error.
También puede añadir una transformación de filtro antes de cada definición de destino. Configure la
condición de filtro en FALSE para que la transformación de filtro no cargue ningún dato en las tablas de
destino. Si el tiempo que lleva ejecutar la nueva asignación es el mismo que para la asignación original, tiene
un cuello de botella de asignación.
Propiedad Descripción
Tiempo del procesador de Si tiene más de una CPU, supervise cada una para obtener el tiempo del
porcentaje procesador de porcentaje.
Páginas/segundo Si las páginas/segundo es mayor que cinco, puede que tenga demasiada presión
de memoria, conocida como hiperpaginación.
Tiempo de porcentaje de los El porcentaje de tiempo que el disco físico está ocupado realizando lecturas o
discos físicos escribiendo solicitudes.
Longitud de cola de discos El número de usuarios en espera para acceder al mismo dispositivo de disco.
físicos
Bytes totales del servidor por El servidor ha enviado y recibido desde la red.
segundo
• top. Ver el rendimiento general del sistema. Esta herramienta muestra el uso de CPU, el uso de la
memoria y el uso de intercambio para el sistema y para procesos individuales que se ejecutan en el
sistema.
• iostat. Supervisar la operación de carga de cada disco adjunto al servidor de la base de datos. Iostat
muestra el porcentaje de tiempo que el disco está físicamente activo. Si utiliza matrices de disco, haga
uso de las utilidades proporcionadas con las matrices de disco en lugar de iostat.
• vmstat. Supervisar las acciones de intercambio de disco.
• sar. Ver informes de la actividad del sistema detallados de uso de CPU, memoria y disco. Puede usar esta
herramienta para supervisar la carga de CPU. Proporciona el uso en porcentaje del usuario, sistema,
tiempo de inactividad y tiempo de espera. También puede usar esta herramienta para supervisar las
acciones de intercambio de disco.
Asigne memoria para obtener un rendimiento del sistema óptimo y configure los niveles de seguimiento de
errores para reducir el número de eventos de registro generados por el servicio de integración de datos
cuando ejecuta la asignación.
Puede configurar la cantidad máxima de memoria que el servicio de integración de datos asigna para
ejecutar todas las solicitudes simultáneas. Puede configurar la cantidad máxima de memoria que el servicio
de integración de datos asigna para cualquier solicitud dada.
Puede optimizar el controlador JDBC para mejorar el rendimiento cuando consulte un servicio de datos SQL.
También puede configurar la memoria caché del objeto de datos para el servicio de integración de datos y
mejorar el rendimiento de las asignaciones y consultas SQL.
Para mejorar el rendimiento del servicio web, utilice la compresión de mensajes del servicio web, optimice
las solicitudes HTTP y configure la memoria caché del objeto de datos.
Optimización de destino
Este capítulo incluye los siguientes temas:
Tenga en cuenta las siguientes soluciones para reducir los cuellos de botella del destino de archivo sin
formato:
Inserte tareas de transformación en un comando en lugar de en el servicio de integración de datos.
15
En UNIX, utilice cualquier comando UNIX válido o secuencia de comandos de shell. En Windows, utilice
cualquier comando DOS válido o archivo de procesamiento por lotes. El escritor de archivos sin formato
envía datos al comando en lugar de a un destino de archivo sin formato.
Por ejemplo, utilice el siguiente comando para generar un archivo comprimido a partir de los datos de
destino:
compress -c - > MyTargetFiles/MyCompressedFile.Z
Escriba en un destino de archivo sin formato que sea local para el nodo del proceso de servicio.
Si el servicio de integración de datos se ejecuta en un solo nodo y escribe en un destino de archivo sin
formato, puede optimizar el rendimiento de la asignación escribiendo en un destino de archivo sin
formato que sea local para el nodo del proceso de servicio.
Tenga en cuenta la siguiente solución para reducir los cuellos de botella de los puntos de comprobación de
la base de datos:
Aumente el intervalo del punto de comprobación en la base de datos.
Aunque aumente el rendimiento cuando reduce el número de puntos de comprobación, también puede
aumentar el tiempo de recuperación si la base de datos se cierra inesperadamente.
Cargas masivas
Cuando utiliza la carga masiva, el servicio de integración de datos omite el registro de la base de datos, lo
cual acelera el rendimiento.
Tenga en cuenta las siguientes soluciones para reducir los cuellos de botella de la carga masiva:
Configure la carga masiva en las propiedades de escritura de un objeto de datos.
Puede utilizar la carga masiva para mejorar el rendimiento de una asignación que inserta una gran
cantidad de datos en una base de datos DB2, ASE Sybase, Oracle o Microsoft SQL Server.
Sin escribir en el registro de la base de datos, la base de datos de destino no puede realizar la reversión.
Como resultado, es posible que no pueda realizar la recuperación. Cuando utilice la carga masiva, calcule la
importancia del rendimiento mejorado de la asignación frente a la capacidad de recuperar una asignación
incompleta.
Tenga en cuenta las siguientes soluciones para reducir los cuellos de botella de la base de datos de destino:
Compruebe que la base de datos de almacena segmentos de revertir o deshacer en los espacios de tablas adecuados,
preferiblemente en discos diferentes.
Al escribir en las bases de datos, la base de datos utiliza segmentos de revertir o deshacer durante las
cargas. Pida al administrador de la base de datos de que se asegure de que la base de datos almacena
segmentos de revertir o deshacer en los espacios de tablas adecuados, preferiblemente en discos
diferentes. Los segmentos de reversión o deshacer deberían tener también las cláusulas de
almacenamiento adecuadas.
Para optimizar la base de datos, ajuste el registro de rehacer de esta. La base de datos utiliza el registro
de rehacer para registrar las operaciones de carga. Asegúrese de que el tamaño del registro rehacer y el
tamaño del buffer son óptimos. En una base de datos Oracle, puede ver las propiedades del registro de
rehacer en el archivo [Link].
Si el servicio de integración de datos se ejecuta en un solo nodo y la instancia de Oracle es local para el
nodo del proceso de servicio, puede optimizar el rendimiento mediante el protocolo IPC para conectarse
a la base de datos de Oracle. Puede establecer una conexión con la base de datos de Oracle en
[Link] y [Link].
Optimización de origen
Este capítulo incluye los siguientes temas:
18
Optimización de origen de archivo sin formato
Configure las propiedades de formato para orígenes de archivo sin formato para habilitar el servicio de
integración de datos y leer los datos de origen eficientemente.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de un origen de archivo sin formato:
No utilice comillas ni caracteres de escape en las propiedades de formato para un archivo sin formato delimitado.
Establezca el número de bytes que el servicio de integración de datos lee por línea.
Si la asignación lee desde un origen de archivo sin formato, puede mejorar el rendimiento de la
asignación estableciendo el número de bytes que el servicio de integración de datos lee por línea.
Configure la propiedad de la longitud del búfer secuencial de línea en las propiedades del tiempo de
ejecución para orígenes de archivo sin formato.
De forma predeterminada, el servicio de integración de datos lee 1024 bytes por línea. Si cada línea en el
archivo de origen es menor que la configuración predeterminada, puede reducir la longitud del búfer
secuencial de línea en las propiedades de la asignación.
Optimización de la consulta
Si una asignación combina varias tablas de origen en un objeto de datos personalizado, puede mejorar el
rendimiento optimizando la consulta con las sugerencias de optimización. Asimismo, las instrucciones de
selección de tablas sencillas con una cláusula SELECT o GROUP BY pueden beneficiarse de la optimización
tal como añadir índices.
Tenga en cuenta las siguientes soluciones para consultar los cuellos de botella:
Cree sugerencias del optimizador para decir a la base de datos cómo ejecutar la consulta para un conjunto determinado
de tablas de origen.
Normalmente, el optimizador de la base de datos determina la forma más eficaz para procesar los datos
de origen. Sin embargo, es posible que conozca propiedades de las tablas de origen que el optimizador
de la base de datos no. El administrador de la base de datos puede crear sugerencias del optimizador
para decir a la base de datos cómo ejecutar la consulta para un conjunto determinado de tablas de
origen.
Configure las sugerencias del optimizador para comenzar a devolver filas tan rápidamente como sea posible, en lugar
de devolver todas las filas de una vez.
Utilice las sugerencias del optimizador si hay un largo retardo desde que la consulta empieza a
ejecutarse y el servicio de integración de datos recibe la primera fila de datos. Configure las sugerencias
del optimizador para comenzar a devolver filas tan rápidamente como sea posible, en lugar de devolver
todas las filas de una vez. Esto permite al servicio de integración de datos procesar filas en paralelo con
la ejecución de la consulta.
Las consultas que contienen las cláusulas ORDER BY o GROUP BY pueden beneficiarse de crear un
índice en las columnas ORDER BY o GROUP BY. Una vez que haya optimizado la consulta, utilice la
opción de reemplazo SQL para aprovechar todas las ventajas de estas modificaciones.
También puede configurar la base de datos de origen para ejecutar consultas en paralelo y mejorar el
rendimiento. Para obtener más información sobre la configuración de las consultas en paralelo, consulte
la documentación de la base de datos.
La consulta que el servicio de integración de datos utiliza para leer datos aparece en la base de datos virtual
en un servicio de datos SQL. También puede encontrar la consulta en el objeto de datos personalizado. Pida
al administrador de la base de datos que analice la consulta y, a continuación, cree sugerencias del
optimizador e índices para las tablas de origen.
La consulta que utiliza el servicio de integración de datos para leer los datos aparece en el objeto de datos
personalizado. Pida al administrador de la base de datos que analice la consulta y, a continuación, cree
sugerencias del optimizador e índices para las tablas de origen.
Filtros condicionales
Un filtro de origen simple en la base de datos de origen en ocasiones puede afectar al rendimiento
negativamente debido a la falta de índices. Puede usar el filtro condicional en el objeto de datos
personalizado para mejorar el rendimiento.
Tenga en cuenta la siguiente solución para los cuellos de botella de filtros condicionales:
Utilice el filtro condicional para varias asignaciones que se lean desde el mismo origen de forma simultánea.
Si hay varias asignaciones que leen desde el mismo origen de forma simultánea, el filtro condicional
puede mejorar el rendimiento.
Sin embargo, algunas asignaciones pueden tener un rendimiento más rápido si filtra los datos de origen
en la base de datos de origen. Puede probar la asignación tanto con el filtro de la base de datos como
con el filtro condicional para determinar qué método mejora el rendimiento.
Seleccionar distinto
Puede seleccionar valores únicos de orígenes en un objeto de datos personalizado mediante la opción
Seleccionar distinto. Cuando use esta opción, el servicio de integración de datos añadirá una declaración
SELECT DISTINCT a la consulta SQL predeterminada.
Tenga en cuenta la siguiente solución para los cuellos de botella de seleccionar distinto:
Utilice la opción Seleccionar distinto para filtrar los datos innecesarios anteriores en el flujo de datos.
Utilice la opción Seleccionar distinto para el objeto de datos personalizado si desea que el servicio de
integración de datos seleccione valores únicos desde un origen. Utilice la opción Seleccionar distinto
para filtrar los datos innecesarios anteriores en el flujo de datos. Esto puede mejorar el rendimiento.
Por ejemplo, puede utilizar la opción Seleccionar distinto para extraer identificadores de cliente únicos de
una tabla de totales de ventas. Cuando utilice el objeto de datos personalizado en una asignación, el servicio
de integración de datos filtrará los datos innecesarios en una fase temprana del flujo de datos, con lo que
aumentará el rendimiento.
El campo de sugerencias aparece en la vista Consulta de una instancia de objeto de datos relacionales o de
un objeto de datos personalizado. La base de datos de origen debe ser Oracle, Sybase, IBM DB2 o Microsoft
SQL Server. El campo de sugerencias no aparece para otros tipos de bases de datos.
Cuando el servicio de integración de datos genera la consulta de origen, añade las sugerencias de SQL a la
consulta de la misma forma en la que las ha introducido en Developer Tool. El servicio de integración de
datos no analiza las sugerencias. Cuando ejecuta la asignación que contiene el origen, el registro de la
asignación muestra la consulta con las sugerencias en la consulta.
El servicio de integración de datos inserta las sugerencias de SQL en una posición en la consulta según el
tipo de base de datos. Consulte la documentación de la base de datos para obtener información sobre la
sintaxis para las sugerencias.
Oracle
El servicio de integración de datos añade sugerencias directamente después de la palabra clave
SELECCIONAR/ACTUALIZAR/INSERTAR/SUPRIMIR.
Sybase
El servicio de integración de datos añade las sugerencias después de la consulta. Configure un nombre de
plan en la sugerencia.
seleccione avg (precio) desde el plan de títulos "(scalar_agg (i_scan type_price_ix titles )"
IBM DB2
Puede introducir la cláusula optimizar para como sugerencia. El servicio de integración de datos añade la
cláusula al final de la consulta.
La cláusula optimizar para le dice al optimizador de la base de datos cuántas filas de la consulta puede
procesar. La cláusula no limita el número de filas. Si la base de datos procesa más de <n> filas, se puede
reducir el rendimiento.
Sugerencias 21
Utilice las siguientes reglas y directrices cuando configure las sugerencias para las consultas SQL:
Restricciones
El servicio de integración de datos puede leer restricciones de orígenes relacionales, orígenes de archivo sin
formato, objetos de datos lógicos o tablas virtuales. Una restricción es una expresión condicional que deben
cumplir los valores de una fila de datos.
Cuando el servicio de integración de datos lee restricciones, puede quitar las filas que no tengan como
resultado TRUE para las filas de datos según el método de optimización aplicado.
Antes de establecer una restricción, debe comprobar que los datos de origen cumplen la condición definida
por la restricción.
Por ejemplo, una base de datos de origen tiene una columna EDAD que tiene filas con EDAD < 70. Puede
establecer una restricción con EDAD < 70 en la base de datos de origen. El servicio de integración de datos
lee registros de la base de datos de origen con la restricción EDAD < 70. Si el servicio de integración de datos
lee registros con EDAD >= 70, puede quitar las filas con EDAD >= 70.
En la base de datos, puede usar comandos SQL para definir las restricciones en el entorno de la base de
datos cuando se conecta a la base de datos. El servicio de integración de datos ejecuta el SQL de entorno de
conexión cada vez que se conecta a la base de datos.
Configurar restricciones
Puede agregar restricciones a los objetos de datos relacionales, objetos de datos de archivos sin formato,
objetos de datos personalizados, objetos de datos lógicos y tablas virtuales. Después de añadir una
restricción, puede editar o eliminar la restricción.
1. En la vista Explorador de objetos, abra la asignación que contiene el objeto de datos relacionales
agregado como transformación de lectura. O bien, abra el objeto de datos de archivo sin formato, el
objeto de datos personalizados, el objeto de datos lógicos o la tabla virtual.
• Para establecer restricciones en un objeto de datos relacional agregado a una asignación como
transformación de lectura, seleccione la transformación de lectura en la asignación. En la vista
Propiedades, seleccione la ficha Avanzada.
• Para establecer restricciones en un objeto de datos de archivo sin formato, seleccione la vista
Avanzada y expanda la sección Tiempo de ejecución: lectura.
• Para establecer restricciones en un objeto de datos personalizado, seleccione la vista Lectura y, a
continuación, seleccione el puerto de salida de la transformación de origen. En la vista Propiedades,
seleccione la ficha Avanzada.
• Para establecer restricciones en un objeto de datos lógicos, seleccione un modelo de datos lógicos y,
a continuación, seleccione el objeto de datos lógicos. En la vista Propiedades, seleccione la ficha
Avanzada.
• Para establecer restricciones en una tabla virtual, abra la tabla virtual desde el punto final de SQL. En
la vista Propiedades, seleccione la ficha Avanzada.
2. Haga clic en el campo de valores para las restricciones.
Aparecerá el cuadro de diálogo Restricciones.
3. Haga clic en Nuevo para abrir el editor de expresiones.
4. Configure la restricción lógica y utilice funciones y columnas de expresión como parámetros.
5. Haga clic en Validar.
6. Haga clic en Aceptar.
Tenga en cuenta las siguientes soluciones para los cuellos de botella del objeto de datos personalizado:
Cree una consulta personalizada para emitir una instrucción SELECT especial para que el servicio de integración de
datos lea datos de origen.
Si incluye una condición de filtro, el servicio de integración de datos añade una cláusula WHERE a la
consulta predeterminada.
Cuando se usa Seleccionar distinto, el servicio de integración de datos añade una declaración SELECT
DISTINCT a la consulta SQL predeterminada.
Puede añadir sugerencias a la consulta SQL de origen para pasar instrucciones a un optimizador de
base de datos.
Si configura las restricciones en archivos sin formato y tablas relacionales de un objeto de datos
personalizado, el servicio de integración de datos anulará las filas que no tengan como resultado TRUE
para las filas de datos.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de origen de la base de datos:
Utilice el protocolo IPC para conectarse a la base de datos de Oracle.
Si el servicio de integración de datos se ejecuta en un solo nodo y la instancia de Oracle es local para el
nodo del proceso de servicio, puede optimizar el rendimiento mediante el protocolo IPC para conectarse
a la base de datos de Oracle. Puede establecer una conexión con la base de datos de Oracle en
[Link] y [Link].
Mueva la base de datos temporal y los registros de rehacer a una matriz de disco o a unidades más rápidas.
Cuando se combinan tablas de gran tamaño en una base de datos, puede utilizar una matriz redundante
de discos independientes (RAID) para la ubicación de la memoria caché. También puede añadir más
archivos al grupo de archivos principal de otros discos a fin de dividir la carga entre el discos.
Optimización de transformación
Este capítulo incluye los siguientes temas:
• Optimización de transformación, 25
• Optimización de la transformación de agregación, 26
• Transformación del procesador de datos, 26
• Optimización de la expresión, 27
• Optimización de transformación Java, 29
• Optimización de la transformación de combinación, 31
• Optimización de la transformación de búsqueda, 32
• Optimización de la transformación de ordenación, 35
• Optimización de la transformación de SQL, 35
• Memoria caché de la transformación, 37
• Eliminación del error de transformación, 38
• Efectos secundarios de la transformación, 38
• Optimización de la transformación del consumidor de servicio web, 39
Optimización de transformación
Optimice las transformaciones para permitir que el servicio de integración de datos procese las
transformaciones de una asignación eficientemente.
25
Optimización de la transformación de agregación
Las transformaciones de agregación suelen reducir el rendimiento porque deben agrupar datos antes de
procesarlos. Las transformaciones de agregación necesitan memoria adicional para albergar los resultados
intermedios del grupo.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de la transformación de agregación:
Agrupe por columnas simples.
Puede optimizar las transformaciones de agregación al agrupar por columnas simples. Cuando sea
posible, utilice números en lugar de cadenas y fechas en las columnas utilizadas para GROUP BY. Evite
expresiones complejas en las expresiones de agregación.
Para aumentar el rendimiento de la asignación, ordene los datos para la transformación de agregación.
Utilice la opción Entrada ordenada para ordenar los datos.
La opción Entrada ordenada reduce el uso de memorias cachés de agregado. Cuando utiliza la opción
Entrada ordenada, el servicio de integración de datos asume que todos los datos están ordenados por
grupo. Cuando el servicio de integración de datos lee las filas de un grupo, realiza cálculos de agregado.
Si es necesario, almacena la información de grupo en la memoria.
La opción Entrada ordenada reduce la cantidad de datos que se guardan en la memoria caché durante la
asignación y mejora el rendimiento. Utilice la opción Entrada ordenada o una transformación de
ordenación para pasar los datos ordenados a la transformación de agregación.
Puede aumentar el rendimiento cuando utilice la opción Entrada ordenada en asignaciones con varias
particiones.
Limite el número de puertos de entrada/salida o de salida conectados para reducir la cantidad de datos
que la transformación de agregación almacena en la memoria caché de datos.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de transformación del procesador de
datos:
Escriba el código de procedimiento para especificar que el procedimiento recibe un bloque de filas.
Reduzca el número de llamadas de función que realizan el servicio de integración de datos y el procedimiento.
El servicio de integración de datos llama a la función de notificación de fila de entrada menos veces y el
procedimiento llama a la función de notificación de salida menos veces.
Escriba el código de procedimiento para realizar un algoritmo en un bloque de datos en lugar de en cada fila de datos.
Optimización de la expresión
Algunas expresiones utilizadas en una transformación podrían reducir el rendimiento.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de la expresión:
Aísle las expresiones lentas.
Las expresiones lentas reducen el rendimiento de la asignación. Para aislar las expresiones lentas, quite
las expresiones de la asignación de una en una y ejecute la asignación para determinar el tiempo que se
tarda en ejecutar la asignación sin la expresión. Si hay una diferencia significativa en el tiempo de
ejecución de la asignación, busque formas para optimizar la expresión lenta.
Si la asignación realiza la misma tarea en varios lugares, reduzca la cantidad de veces que la asignación
realiza la tarea moviendo la tarea antes en la asignación. Por ejemplo, tiene una asignación con cinco
tablas de destino. Cada destino requiere una búsqueda del número de seguridad social. En lugar de
realizar la búsqueda cinco veces, coloque la transformación de búsqueda en la asignación antes de que
se divida el flujo de datos. A continuación, pase los resultados de la búsqueda a los cinco destinos.
Al escribir expresiones, excluya todas las llamadas de la función agregada como sea posible. Cada vez
que se utiliza una llamada de la función agregada, el servicio de integración de datos debe buscar y
agrupar los datos. Por ejemplo, en la siguiente expresión, el servicio de integración de datos lee
COLUMN_A, busca la suma, después lee COLUMN_ B, busca la suma y finalmente busca la suma de las
dos sumas:
SUM(COLUMN_A) + SUM(COLUMN_B)
Si excluye la llamada de la función agregada, como a continuación, el servicio de integración de datos
añade COLUMN_A a COLUMN_ B y entonces busca la suma de ambas.
SUM(COLUMN_A + COLUMN_B)
Reemplace expresiones comunes con variables locales.
Si utiliza la misma expresión varias veces en una transformación, puede hacer que la expresión sea una
variable local. Solo puede utilizar una variable local en la transformación. Sin embargo, al calcular la
variable sólo una vez, se aumenta la velocidad del rendimiento.
Optimización de la expresión 27
Seleccione operadores numéricos frente a operadores de cadena.
El servicio de integración de datos procesa las operaciones numéricas más rápido que las operaciones
de cadena. Por ejemplo, si busca grandes cantidades de datos en dos columnas EMPLOYEE_NAME y
EMPLOYEE_ID, configurar la búsqueda alrededor de EMPLOYEE_ID aumenta el rendimiento.
Cuando el servicio de integración de datos realiza comparaciones entre columnas CHAR y VARCHAR,
cada vez que busca espacios en blanco finales en la fila es más lento. Puede utilizar la opción
TreatCHARasCHARonRead cuando configure el servicio de integración de datos en Informatica
Administrator para que el servicio de integración de datos no recorte los espacios finales desde el final
de los campos de origen del carácter.
Cuando utiliza una función LOOKUP, el servicio de integración de datos debe buscar una tabla en una
base de datos. Cuando utiliza una función DECODE, puede incorporar los valores de la búsqueda a la
expresión para que el servicio de integración de datos no tenga que buscar otra tabla. Por tanto, si
desea buscar un pequeño conjunto de valores que no cambian, utilice DECODE para mejorar el
rendimiento.
El servicio de integración de datos lee expresiones escritas con operadores más rápidamente que
expresiones con funciones. Si es posible, utilice operadores para escribir expresiones. Por ejemplo, tiene
la siguiente expresión que contiene funciones CONCAT anidadas:
CONCAT( CONCAT( CUSTOMERS.FIRST_NAME, ‘ ’) CUSTOMERS.LAST_NAME)
Puede reescribir esa expresión con el || operador de este modo:
CUSTOMERS.FIRST_NAME || ‘ ’ || CUSTOMERS.LAST_NAME
Optimizar las funciones IIF.
Las funciones IIF pueden devolver un valor y una acción, lo cual permite obtener más expresiones
compactas. Por ejemplo, tiene un origen con tres indicadores S/N: FLG_A, FLG_B, FLG_C. Desea devolver
los valores según el valor de cada indicador.
Para ver los fragmentos de código para la optimización de primera selección, seleccione
PredicatePushOptimization en el navegador de la ficha Interfaces del optimizador.
allowPredicatePush
Booleano. Habilita la primera selección. Cambie la función para devolver un resultado TRUE y el mensaje
para poder habilitar la primera selección. El valor predeterminado es FALSE y la función devuelve un mensaje
que no es compatible con la optimización.
public ResultAndMessage allowPredicatePush(boolean ignoreOrderOfOp) {
// To Enable PredicatePushOptimization, this function should return true
//return new ResultAndMessage(true, "");
return new ResultAndMessage(false, "Predicate Push Optimization Is Not
Supported");
}
canGenerateOutputFieldEvalError
Booleano. Indica si la transformación de Java puede devolver o no un error de campo de salida, tal como un
error de dividir por cero. Cambie la función devolver un resultado FALSE si la transformación de Java no
genera errores del campo de salida. Cuando la transformación de Java puede generar errores de campos, el
servicio de integración de datos no puede utilizar la optimización de primera selección.
public boolean canGenerateOutputFieldEvalError() {
// If this Java transformation can never generate an output field evaluation error,
// return false.
return true;
}
getInputExpr
Devuelve una expresión de Informatica que describe qué valores de entrada de los campos de entrada tienen
un campo de salida. El optimizador necesita saber qué campos de entrada tienen un campo de salida para
insertar la lógica de filtro a la transformación.
public InfaExpression getInputExpr(TransformationField field,
TransformationDataInterface group) {
// This should return an Informatica expression for output fields in terms of input
fields
// We will only push predicate that use fields for which input expressions are
defined.
// For example, if you have two input fields in0 and in1 and three output fields
out0, out1, out2
// out0 is the pass-through of in1, out2 is sum of in1 and in2, and out3 is unknown,
the code should be:
//if ([Link]().equals("out0"))
// return new InfaExpression("in0", instance);
inputGroupsPushPredicateTo
Devuelve una lista de grupos que pueden recibir la lógica de filtro. La transformación de Java tiene un grupo
de entrada. No modifique esta función para la transformación de Java.
public List<TransformationDataInterface> inputGroupsPushPredicateTo(
List<TransformationField> fields) {
// This functions returns a list of input data interfaces to push predicates to.
// Since JavaTx only has one input data interface, you should not have to modify
this function
AbstractTransformation tx = [Link]();
List<DataInterface> dis = [Link]();
List<TransformationDataInterface> inputDIs = new
ArrayList<TransformationDataInterface>();
for (DataInterface di : dis){
TransformationDataInterface tdi = (TransformationDataInterface) di;
if ([Link]())
[Link](tdi);
}
if([Link]() == 1)
return inputDIs;
else
return null;
}
Cuando configure la optimización de inserción para la transformación de Java, puede definir una forma para
que la transformación de Java almacene la condición de filtro que recibe desde el optimizador. Añada el
código que examina la condición de filtro. Si la transformación de Java puede absorber la lógica de filtro,
entonces la transformación de Java devuelve una condición TRUE al optimizador. El optimizador elimina la
transformación de filtro de la asignación optimizada.
Cuando configure la transformación de Java escriba el código que almacena la condición de filtro como
metadatos de transformación durante la optimización. También puede escribir el código para recuperar la
condición de filtro en tiempo de ejecución y para quitar las filas según la lógica de filtro.
Cuando defina la transformación de Java, puede añadir código para la optimización de inserción en la ficha
Interfaces del optimizador de la transformación de Java. Para acceder a los fragmentos de código para la
optimización de inserción, seleccione FilterPushdownOptimization en el navegador de la fichaInterfaces del
optimizador de la transformación.
isFilterSupported
Devuelve TRUE para habilitar la optimización de inserción. Devuelve FALSE para deshabilitar la optimización
de inserción.
Cambie la función para que devuelva TRUE para poder habilitar la optimización de inserción.
public ResultAndMessage isFilterSupported() {
// To enable filter push-into optimization this function should return true
// return new ResultAndMessage(true, "");
return new ResultAndMessage(false, "Filter push-into optimization is not supported");
}
pushFilter
Recibe la condición de filtro del optimizador.
Añada el código para examinar el filtro y determinar si la lógica de filtro puede utilizarse en la
transformación. Si la transformación puede absorber el filtro, entonces use el siguiente método para
almacenar la condición de filtro como metadatos de transformación:
La clave es un identificador de los metadatos. Puede definir cualquier cadena como clave. Los datos son los
datos que desea almacenar en orden para determinar qué filas soltar en tiempo de ejecución. Por ejemplo,
los datos pueden ser la condición de filtro que la transformación de Java recibe desde el optimizador.
public ResultAndMessage pushFilter(InfaExpression condition) {
Tenga en cuenta las siguientes soluciones para los cuellos de botella de la transformación de combinación:
Designe el origen principal como origen con menos valores de clave duplicadas.
La transformación de combinación compara cada fila del origen de detalle con el origen principal. A
menor número de filas que haya en el origen principal se producen menos iteraciones de la comparación
de uniones, lo que acelera el proceso de unión.
Las uniones en bases de datos se realizan más rápido que las que se realizan durante la ejecución de la
asignación. El rendimiento puede variar en función del tipo de unión de base de datos que se utilice. Las
uniones normales son más rápidas que los outer joins y producen menos filas. En ocasiones no es
posible realizar la unión en la base de datos, como unir tablas de dos bases de datos o sistemas de
archivos sin formato diferentes.
El servicio de integración de datos intenta reducir el tamaño del conjunto de datos de un operando de
combinación leyendo las filas del grupo más pequeño, buscando las filas coincidentes en el grupo más
grande y luego llevando a cabo la operación de combinación. La reducción del tamaño del conjunto de
datos mejora el rendimiento de la asignación, ya que el servicio de integración de datos ya no necesita
leer filas innecesarias desde el origen del grupo más grande. El servicio de integración de datos mueve
la condición de combinación al origen del grupo más grande y solamente lee las filas que coinciden con
el grupo más pequeño.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de la transformación de búsqueda:
Utilice el controlador de base de datos óptimo.
El Servicio de integración de datos puede conectarse a una tabla de búsqueda mediante un controlador
de base de datos nativo o un controlador ODBC. Los controladores de la base de datos nativos
proporcionan un mayor rendimiento de la asignación que los controladores ODBC.
Almacene en la memoria caché las tablas de búsqueda para las búsquedas de archivos relacionales o sin formato.
Para mejorar el rendimiento de la búsqueda de orígenes de archivos relacionales o sin formato, habilite
la memoria caché de búsqueda en la transformación. Cuando se habilita la memoria caché, el Servicio
de integración de datos almacena en la memoria caché la tabla de búsqueda. Cuando se ejecuta la
asignación, el Servicio de integración de datos consulta la memoria caché de búsqueda en lugar de la
tabla de búsqueda. Si esta opción no está habilitada, el Servicio de integración de datos consulta la
tabla de búsqueda fila por fila.
Para mejorar el rendimiento de la búsqueda en un objeto de datos lógicos, puede habilitar la memoria
caché de objetos de datos en el Servicio de integración de datos. Cuando se habilita la memoria caché
de objetos de datos, el Servicio de integración de datos almacena en la memoria caché el objeto de
datos lógicos. Para habilitar la memoria caché de objetos de datos, debe implementar la asignación en
una aplicación, habilitar la memoria caché del objeto de datos lógicos y ejecutar la asignación con el
comando infacmd ms runmapping. Cuando se ejecuta la asignación, el Servicio de integración de datos
consulta la memoria caché del objeto de datos en lugar del objeto de datos lógicos.
• Memoria caché compartida. Puede compartir la memoria caché de búsqueda entre varias
transformaciones. Puede compartir una memoria caché sin nombre entre transformaciones en la
misma asignación. Puede compartir una memoria caché con nombre entre transformaciones en la
misma o en diferentes asignaciones.
• Memoria caché persistente. Para guardar y volver a usar los archivos de la memoria caché, puede
configurar la transformación para utilizar una memoria caché persistente. Utilice esta característica
si sabe que la tabla de búsqueda no cambia entre las ejecuciones de la asignación. Utilizando una
memoria caché persistente puede mejorar el rendimiento porque el Servicio de integración de datos
compilará la memoria caché desde los archivos de la memoria caché en lugar de desde la base de
datos.
Puede habilitar memorias caché simultáneas para mejorar el rendimiento. Cuando el número de canales
simultáneos adicionales está establecido en uno o más, el Servicio de integración de datos compilará
memorias caché simultáneamente en lugar de secuencialmente. El rendimiento mejora
considerablemente cuando las asignaciones contienen un número de transformaciones activas que
puede llevar algún tiempo completar, tales como transformaciones de agregación, combinación u
ordenación. Cuando habilite varios canales simultáneos, el Servicio de integración de datos ya no espera
a que se completen las asignaciones activas antes de compilar la memoria caché. Otras
transformaciones de búsqueda en el canal también construyen memorias caché simultáneamente.
Cuando la transformación de búsqueda hace coincidir los datos de la memoria caché de búsqueda con
la condición de búsqueda, ordena y clasifica los datos para determinar el primer valor coincidente y el
último valor coincidente. Puede configurar la transformación para devolver cualquier valor que coincida
con la condición de búsqueda. Cuando configura la transformación de búsqueda para que devuelva
cualquier valor coincidente, la transformación devuelve el primer valor que coincide con la condición de
búsqueda. No crea un índice de todos los puertos como lo hace cuando configura la transformación
para devolver el primer valor coincidente o el último valor coincidente.
Cuando utiliza cualquier valor coincidente, el rendimiento puede mejorar porque la transformación no
realiza un índice en todos los puertos, lo cual puede reducir el rendimiento.
Puede reducir el número de filas incluidas en la memoria caché para aumentar el rendimiento. Utilice la
opción de reemplazo de SQL de búsqueda para añadir una cláusula WHERE a la instrucción SQL
predeterminada. Cuando añada una cláusula WHERE a una transformación de búsqueda que usa una
caché dinámica, utilice una transformación de filtro antes de la transformación de búsqueda para pasar
filas a la caché dinámica que coincidan con la cláusula WHERE.
De forma predeterminada, el Servicio de integración de datos genera una instrucción ORDER BY para una
búsqueda almacenada en la memoria caché. La instrucción ORDER BY contiene todos los puertos de
búsqueda. Para aumentar el rendimiento, suprima la instrucción predeterminada ORDER BY y
especifique un ORDER BY de reemplazo con menos columnas.
El Servicio de integración de datos siempre genera una instrucción ORDER BY, incluso si especifica una
en el reemplazo. Ponga dos guiones ‘--’ tras el reemplazo ORDER BY para suprimir la instrucción ORDER
BY generada.
Si incluye más de una condición de búsqueda, coloque las condiciones en el orden siguiente para
optimizar el rendimiento de búsqueda:
• Igual a (=)
• Menor que (<), mayor que (>), menor o igual que (<=), mayor o igual que o (>=)
• Distinto de (!=)
Para mejorar el rendimiento, cree una condición de filtro para reducir el número de filas de búsqueda
recuperadas desde el origen cuando la memoria caché de búsqueda se ha construido.
El Servicio de integración de datos necesita consultar, ordenar y comparar valores en las columnas de la
condición de búsqueda. El índice debe incluir cada columna utilizada en una condición de búsqueda.
• Búsquedas almacenadas en la memoria caché. Para mejorar el rendimiento, realice un índice de las
columnas en la instrucción de búsqueda ORDER BY. El archivo de registro de la asignación contiene
la instrucción ORDER BY.
• Búsquedas no almacenadas en la memoria caché. Para mejorar el rendimiento, realice un índice de
las columnas en la condición de búsqueda. El Servicio de integración de datos emite una instrucción
SELECT para cada fila que pasa por la transformación de búsqueda.
Si una asignación contiene varias búsquedas, incluso con la memoria caché habilitada y suficiente
memoria de heap, las búsquedas pueden reducir el rendimiento. Ajuste las transformaciones de
búsqueda que consultan las cantidades de datos más grandes para mejorar el rendimiento general.
Si la tabla de búsqueda está en la misma base de datos que la tabla de origen en la asignación y la memoria
caché no es viable, combine las tablas en la base de datos de origen en lugar de utilizar una transformación
de búsqueda.
Tenga en cuenta la siguiente solución para los cuellos de botella de la transformación de ordenación:
Asigne suficiente memoria.
Para un rendimiento óptimo, configure el tamaño de la memoria caché de ordenación con un valor
menor o igual que la cantidad de memoria física RAM del nodo del servicio de integración de datos.
Asigne como mínimo 16 MB de memoria física para ordenar datos con la transformación de ordenación.
De forma predeterminada, el tamaño de la memoria caché de ordenación se establece en 16.777.216
bytes. Si el servicio de integración de datos no puede asignar suficiente memoria para ordenar los datos,
la asignación falla.
Si la cantidad de datos entrantes es mayor que la cantidad de memoria caché de ordenación, el servicio de
integración de datos almacena datos temporalmente en el directorio de trabajo de la transformación de
ordenación. El servicio de integración de datos necesita un espacio de disco de como mínimo el doble de la
cantidad de datos entrantes cuando ordena datos en el directorio de trabajo.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de la transformación de SQL:
No utilice instrucciones de transacción en una consulta de transformación de SQL.
Cuando una consulta SQL contiene instrucciones de consulta de confirmación y reversión, el servicio de
integración de datos debe recrear el procedimiento de SQL después de cada confirmación o reversión.
Habilite los métodos de optimización de filtro de primera selección o de inserción con la transformación SQL.
• La consulta SQL actualiza una base de datos. La consulta SQL contiene una instrucción como CREATE,
DROP, INSERT, UPDATE, GRANT o REVOKE.
• La transformación devuelve filas nulas para las instrucciones SELECT que no devuelven ningún resultado.
Las filas pueden contener valores de puerto de transferencia, información de errores de SQL o el campo
NUMRowsAffected.
Utilice las siguientes reglas y directrices cuando habilite la optimización de inserción con la transformación
de SQL:
El servicio de integración de datos inserta el siguiente filtro en una instrucción SELECT en la transformación
de SQL:
Cada instrucción de la consulta SQL se convierte en otra subconsulta de la instrucción SELECT que contiene
el filtro.
La siguiente instrucción de consulta muestra la instrucción de consulta original como una subconsulta de la
instrucción SELECT:
Si la consulta SQL tiene varias instrucciones, cada instrucción está incluida en otra subconsulta. La
subconsulta tiene la misma sintaxis, incluyendo la cláusula WHERE.
Los puertos customerID y orderAmount son los nombres de los puertos de salida en la transformación de
SQL. La subconsulta no incluye puertos de transferencia, el error de SQL o los puertos de estadísticas de
SQL. Si inserta varios filtros en la transformación de SQL, la cláusula WHERE contiene todos los filtros.
Tenga en cuenta la siguiente solución para los cuellos de botella de la memoria caché de la transformación:
Configure las transformaciones para asignar espacio suficiente para almacenar la memoria caché en la memoria.
Tenga en cuenta las siguientes soluciones para los cuellos de botella del error de transformación:
Compruebe el archivo de registro de la asignación para ver dónde se producen los errores de transformación y evalúe
las restricciones de transformación.
Los errores de transformación se producen cuando el servicio de integración de datos detecta errores
de conversión, lógica de asignación en conflicto y cualquier condición configurada como un error, tales
como entrada nula. Compruebe el archivo de registro de la asignación para ver dónde se producen los
errores de transformación. Si los errores se centran alrededor de determinadas transformaciones,
evalúe las restricciones de transformación.
Si necesita ejecutar una asignación que genere un gran número de errores de transformación, es posible
mejorar el rendimiento estableciendo un nivel de seguimiento inferior. Sin embargo, esto no es una
solución a largo plazo recomendada para los errores de transformación.
El servicio de integración de datos identifica qué transformaciones tienen efectos secundarios antes de que
optimice una asignación. El servicio de integración de datos asume que una transformación tiene efectos
secundarios cuando no se puede determinar si la transformación tiene efectos secundarios.
Las transformaciones con efectos secundarios limitan cuando el servicio de integración de datos puede
optimizar la asignación. La optimización de primera selección, de eliminación de ramificaciones, de
predicado global y de inserción modifican los resultados de la asignación si el Servicio de integración de
datos las aplica a una transformación que tiene efectos secundarios. Con la optimización de primera
Por ejemplo, una transformación recibe un ID de cliente y devuelve filas que contienen información de los
pedidos. La transformación también escribe los pedidos en un archivo. Si el servicio de integración de datos
aplica una optimización del filtro antes de que escriba los pedidos en el archivo, el archivo recibe menos filas
cuando tiene lugar el filtro más adelante en la asignación. Los efectos secundarios de la transformación es
la función de escribir los registros de los pedidos en un archivo.
Tenga en cuenta la siguiente solución para los cuellos de botella de la transformación del consumidor de
servicio web:
Configure la transformación de consumidor de servicio web para que utilice la autenticación por cookies.
El servidor remoto del servicio web hace un seguimiento de los usuarios del servicio web mediante
cookies. Es posible aumentar el rendimiento cuando una asignación llama un servicio web varias veces.
Cuando se proyecta el puerto de cookie a un mensaje de solicitud de servicio web, el proveedor del
servicio web devuelve un valor de cookie en el mensaje de respuesta. Puede pasar el valor de cookie a
otra transformación situada en un nivel inferior en la asignación o puede guardar el valor de la cookie en
un archivo. Cuando se guarda el valor de la cookie en un archivo, puede configurar la cookie como
entrada de la transformación de consumidor de servicio web. Puede proyectar el puerto de salida de la
cookie a cualquiera de los grupos de salida de la transformación de consumidor de servicio web.
Habilite los métodos de optimización de filtro de primera selección o de inserción con la transformación de consumidor
de servicio web.
El servicio web tiene efectos secundario si realiza otras funciones además de devolver una respuesta a
la transformación del consumidor de servicio web. El servicio web tiene efectos secundarios si modifica
una base de datos, escribe en un archivo, escribe un correo electrónico, actualiza un recuento o llama a
otros servicios web con efectos secundarios.
Configure la transformación de consumidor del servicio web para enviar varias solicitudes en paralelo.
La asignación llama al servicio web para recuperar un conjunto o subconjunto de datos según las
instrucciones en la consulta SQL de usuario final. La consulta SQL de usuario final contiene una condición de
filtro opcional.
Con la optimización de inserción, la transformación del consumidor de servicio web recibe el valor de filtro
en un puerto de filtro. El puerto de filtro es un puerto de entrada inconexo que identifica como un puerto de
filtro al configurar la optimización de inserción. El puerto de filtro tiene un valor predeterminado que
garantiza que el servicio web devuelve todas las filas si la consulta del usuario final no contiene ningún filtro.
El puerto de filtro no es un puerto de transferencia.
Nota: El campo de filtro debe formar parte del grupo raíz en la solicitud de servicio web.
El campo de filtro no puede ser un puerto de transferencia. Cuando configura un puerto de filtro, el valor
predeterminado del puerto cambia al valor de la condición de filtro, por lo que el valor del puerto de salida de
transferencia cambia. Un filtro basado en el puerto de transferencia de salida devuelve resultados
inesperados.
Puede insertar varias expresiones de filtro para la transformación de consumidor de servicio web. Cada
condición de filtro debe tener el siguiente formato:
<Field> = <Constant>
Las condiciones de filtro deben estar unidas por AND. No puede combinar las condiciones con un OR.
El servicio de datos contiene un objeto de datos lógicos con los siguientes componentes:
Tabla de clientes
Una tabla de base de datos Oracle que contiene la información de los clientes.
Una transformación que llama a un servicio web para recuperar los últimos pedidos de los clientes. La
transformación del consumidor de servicio web tiene puertos de entrada para customerID y orderNum.
La transformación tiene puertos de transferencia que contienen datos de los clientes que recibe desde
la tabla de clientes. El puerto orderNum es el puerto de filtro y no está conectado. orderNum tiene el
valor predeterminado "*". Cuando el servicio web recibe este valor en la solicitud de servicio web,
devuelve todos los pedidos.
Una tabla virtual que recibe los datos de los clientes y los pedidos desde el servicio web. El usuario final
consulta esta tabla. Los pedidos contienen una columna de cliente, una columna orderID y datos de
clientes y pedidos.
El servicio de integración de datos divide la consulta para optimizar la asignación. El servicio de integración
de datos utiliza la optimización de primera selección y mueve la lógica de filtro, cliente = 23, a la lectura de
tabla de clientes. El servicio de integración de datos utiliza la optimización de inserción e inserta la lógica de
filtro, orderID = 56, en el puerto del filtro de la transformación del consumidor de servicio web. La
transformación del consumidor de servicio web recupera ordersID 56 para clientes 23.
Optimización de la asignación
Este capítulo incluye los siguientes temas:
• Configurar la asignación con el número mínimo de transformaciones y expresiones para realizar la mayor
cantidad de trabajo posible.
• Eliminar los vínculos innecesarios entre transformaciones para reducir la cantidad de datos movidos.
• Elegir un nivel del optimizador que determine los métodos de optimización que el servicio de integración
de datos puede aplicar a la asignación. Cuando el servicio de integración de datos optimiza una
asignación, intenta reducir la cantidad de datos que se procesan. Por ejemplo, el servicio de integración
de datos puede utilizar la optimización de primera selección para mover un filtro más cerca del origen.
Puede utilizar el método de optimización basado en el coste para cambiar el orden de procesamiento de
combinación.
• Elija un tipo de inserción para permitir que el Servicio de integración de datos determine si puede insertar
lógica de transformación parcial o completa en la base de datos de origen.
43
• Configurar la memoria caché de objetos de datos para habilitar los objetos de datos lógicos de la
memoria caché en el servicio de integración de datos y acceder a objetos de datos lógicos pregenerados
cuando ejecute una asignación. De forma predeterminada, el servicio de integración de datos extrae los
datos de origen y genera los objetos de datos requeridos cuando ejecuta una asignación. El rendimiento
de la asignación aumenta cuando el servicio de integración de datos puede acceder a objetos de datos
generados previamente.
• Indicar si la transformación de SQL, la transformación del consumidor de servicio web y la
transformación de Java no tienen efectos secundarios cuando configure estas transformaciones.
Algunas transformaciones tienen efectos secundarios que restringen la optimización. Por ejemplo, una
transformación puede tener efectos secundarios si la transformación escribe en un archivo o base de
datos, añade a un recuento, genera una excepción o escribe un mensaje de correo electrónico. En la
mayoría de los casos, el servicio de integración de datos identifica qué transformaciones tienen efectos
secundarios que restringen la optimización.
Temas relacionados
• “Memoria caché de objetos de datos” en la página 68
Métodos de optimización
El Servicio de integración de datos aplica los métodos de optimización para reducir el número de filas en la
asignación. Puede configurar el nivel del optimizador para la asignación para limitar los métodos de
optimización a los que se aplica el Servicio de integración de datos.
• Optimización de inserciones
• Optimización de primera proyección
• Optimización de primera selección
• Optimización de eliminación de ramificaciones
• Optimización de inserción
• Optimización de predicado
• Optimización de predicado global
• Optimización basada en el coste
• Optimización dataship-join
• Optimización semi-join
El Servicio de integración de datos puede aplicar varios métodos de optimización a una asignación al mismo
tiempo. Por ejemplo, el Servicio de integración de datos aplica la optimización de primera proyección, la
optimización de predicado, la optimización de predicado global, la optimización de eliminación de
ramificaciones y la optimización de primera selección o métodos de optimización de inserción cuando
seleccione el nivel de optimizador normal.
Ninguno
Mínimo
Normal
Completo
El Servicio de integración de datos aplica los métodos de optimización basada en el coste, de primera
proyección, de primera selección, de eliminación de ramificaciones, de predicado, de inserción, semi-join
y dataship-join.
El Servicio de integración de datos aplica el nivel de optimizador normal cuando ejecuta una asignación
desde el menú Ejecutar o el editor de la asignación de Developer tool. Cuando ejecuta la asignación desde el
cuadro de diálogo Ejecutar, el Servicio de integración de datos aplica el nivel del optimizador en la
configuración de la asignación. Cuando ejecuta la asignación desde la línea de comandos, el Servicio de
integración de datos aplica el nivel del optimizador desde las propiedades de la implementación de la
asignación en la aplicación.
Nota: El Servicio de integración de datos no aplica el método de optimización de inserción con un nivel del
optimizador. Puede configurar la optimización de inserción para una asignación en las propiedades de
tiempo de ejecución de la asignación.
Optimizaciones de filtro
Las optimizaciones de filtro aumentan el rendimiento reduciendo el número de filas que pasan por la
asignación. El servicio de integración de datos puede aplicar la optimización de primera selección o la de
inserción.
Cuando el servicio de integración de datos aplica un método de optimización del filtro, mueve un filtro tan
cerca del origen como sea posible en una asignación. Si el servicio de integración de datos no puede mover
un filtro antes de una transformación en una asignación, es posible que pueda insertar la lógica de filtro en
una transformación.
El método de optimización de primera proyección mejora el rendimiento reduciendo la cantidad de datos que
el Servicio de integración de datos mueve a través de las transformaciones. Cuando el Servicio de
integración de datos procesa una asignación, mueve los datos desde todos los puertos conectados en una
asignación de una transformación a otra. En asignaciones complejas, de gran tamaño o en asignaciones que
utilizan mapplets anidados, es posible que algunos puertos no lleguen a suministrar datos al destino. El
Métodos de optimización 45
Servicio de integración de Datos identifica los puertos que no suministran datos al destino. Después de que
el Servicio de integración de datos haya identificado los puertos no utilizados, elimina de la asignación los
vínculos que hay entre todos los puertos no utilizados.
El Servicio de integración de datos no elimina todos los vínculos. Por ejemplo, no quita los siguientes
vínculos:
Si el Servicio de integración de datos determina que ninguno de los puertos de una transformación se utiliza,
elimina todos los vínculos de transformación excepto el vínculo al puerto con el menor número de datos. El
Servicio de integración de datos no elimina la transformación no utilizada de la asignación.
Cuando el Servicio de integración de datos ejecuta una asignación, genera consultas para los orígenes de
asignación y lleva a cabo operaciones en los resultados de la consulta conforme a la lógica de la asignación
y a las transformaciones de la asignación. A menudo, las consultas y las operaciones incluyen expresiones
de predicado. Las expresiones de predicado representan las condiciones que deben cumplir los datos. Las
condiciones de filtro y de unión de las transformaciones de filtro e incorporación son ejemplos de
expresiones de predicado.
Con el método de optimización de predicado, el Servicio de integración de datos también intenta aplicar
expresiones de predicado tan pronto como sea posible en la asignación para mejorar el rendimiento de la
asignación.
El Servicio de integración de datos deduce las relaciones mediante las expresiones de predicado existentes y
crea nuevas expresiones de predicado. Por ejemplo, una asignación contiene una transformación de
incorporación con la condición de combinación "A=B" y una transformación de filtro con la condición de filtro
"A>5". El Servicio de integración de datos puede añadir "B>5" a la condición de combinación.
El servicio de integración de datos puede llevar a cabo una de las siguientes acciones, o todas ellas:
El servicio de integración de datos puede no aplicar una optimización de predicado a una asignación cuando
ésta contiene transformaciones con un tipo de datos incongruente entre puertos conectados.
Las asignaciones semánticamente equivalentes son aquellas que realizan funciones idénticas y producen los
mismos resultados. Para generar asignaciones semánticamente equivalentes, el Servicio de integración de
datos divide en fragmentos la asignación original. Luego, el Servicio de integración de datos determina los
fragmentos de asignación que puede optimizar.
Durante la optimización, el Servicio de integración de datos puede añadir, quitar o reordenar las
transformaciones de un fragmento. El Servicio de integración de datos comprueba que los fragmentos
optimizados produzcan los mismos resultados que los fragmentos originales y constituye asignaciones
alternativas que utilizan los fragmentos optimizados.
El Servicio de integración de datos también puede aplicar una combinación de fusión ordenada si determina
que el rendimiento de esta es mejor que el de una combinación de bucle anidado. Una combinación de fusión
ordenada utiliza la ordenación para disponer dos conjuntos de datos antes de realizar la combinación. Una
combinación de bucle anidado utiliza bucles anidados para combinar dos conjuntos de datos. El Servicio de
integración de datos puede utilizar la información de ordenación en los orígenes o crear una transformación
de ordenación si el coste de ordenar los datos es inferior al de procesar la combinación de bucle anidado.
El Servicio de integración de datos genera todas o prácticamente todas las asignaciones que son
semánticamente equivalentes a la asignación original. Utiliza las estadísticas de base de datos o creación de
perfiles para calcular el coste para la asignación original y para cada asignación alternativa. A continuación,
identifica la asignación que se ejecuta más rápidamente. El Servicio de integración de datos realiza una
Métodos de optimización 47
comprobación de validación en la mejor asignación alternativa para asegurar que es válida y que produce los
mismos resultados que la asignación original.
El Servicio de integración de datos guarda en la memoria caché la mejor asignación alternativa. Cuando se
ejecuta una asignación, el Servicio de integración de datos recupera la asignación alternativa y la ejecuta en
lugar de la asignación original.
Por ejemplo, el Servicio de integración de datos puede aplicar el método de optimización dataship-join para
combinar una tabla principal con 10.000 filas con una tabla de detalles de 1.000.000 de filas. Para realizar la
optimización dataship-join, el Servicio de integración de datos crea una tabla de ensayo temporal en la base
de datos que contiene la tabla de detalles más grande. A continuación, el Servicio de integración de datos
copia la tabla principal de menor tamaño en una tabla temporal y combina los datos de la tabla temporal con
los datos de la tabla de detalles más grande. Después de que el Servicio de integración de datos realice la
operación de combinación, la lógica de la transformación de combinación se procesa en la base de datos.
Antes de aplicar este método de optimización, el Servicio de integración de datos realiza varios análisis para
determinar si la optimización dataship-join es factible y rentable. Si los análisis determinan que es probable
que este método aumente el rendimiento, el Servicio de integración de datos lo aplica a la asignación. Luego,
el Servicio de integración de datos vuelve a analizar la asignación para determinar si hay más oportunidades
para realizar una optimización dataship-join. Si es necesario, lleva a cabo optimizaciones adicionales.
• El origen principal de la transformación de combinación debe tener muchas menos filas que el origen de
detalle.
• El origen de detalle debe ser significativamente grande para justificar la optimización. Si el origen de
detalle no es lo bastante grande, para el Servicio de integración de datos resulta más rápido leer todos los
datos del origen principal y el de detalle sin aplicar el método de optimización dataship-join.
Antes de aplicar el método de optimización semi-join, el Servicio de integración de datos realiza varios
análisis para determinar si la optimización semi-join es factible y rentable. Si los análisis determinan que es
probable que este método aumente el rendimiento, el Servicio de integración de datos lo aplica a la
asignación. Luego, el Servicio de integración de datos vuelve a analizar la asignación para determinar si hay
más oportunidades para realizar una optimización semi-join. Si es necesario, lleva a cabo optimizaciones
adicionales.
• El origen principal de la transformación de combinación debe tener muchas menos filas que el origen de
detalle.
• El origen de detalle debe ser lo suficientemente grande para justificar la optimización. Cuando el servicio
de integración de datos aplica la optimización semi-join, el método añade tiempo de sobrecarga al
procesamiento de la asignación. Si el origen de detalle es pequeño, el tiempo necesario para aplicar el
método semi-join puede sobrepasar el tiempo necesario para procesar todas las filas en el origen de
detalle.
• El servicio de integración de datos debe poder obtener las estadísticas de recuento de filas para que una
transformación de combinación pueda comparar con precisión las necesidades temporales de la
operación de combinación normal con respecto a la operación semi-join.
• El tipo de unión debe ser normal, outer principal u outer de detalle. La transformación de incorporación no
puede realizar un outer join completo.
• El canal de detalle se debe originar en un origen relacional.
Métodos de optimización 49
• La condición de unión debe ser una condición ordenación-fusión-unión válida. Es decir, cada cláusula
debe ser una igualdad de un puerto principal y un puerto de detalle. Si hay varias cláusulas, deben estar
unidas por AND.
• Si la asignación no utiliza confirmaciones basadas en destino, el alcance de la transformación de
incorporación debe ser Todas las entradas.
• Los canales principales y de detalle no pueden compartir ninguna transformación.
• La asignación no puede contener una ramificación entre el origen de detalle y la transformación de
incorporación.
El Servicio de integración de datos puede partir una transformación de filtro si la condición de filtro es una
conjunción. Por ejemplo, el Servicio de integración de datos puede dividir la condición de filtro "A>100 AND
B<50" en dos condiciones más simples: "A>100" y "B<50." Cuando el Servicio de integración de datos divide
un filtro, mueve los filtros simplificados a un nivel superior del canal de la asignación, acercándolos al
origen. El Servicio de integración de datos mueve los filtros a un nivel superior del canal por separado
cuando se divide el filtro.
El método de optimización de primera selección está activado de forma predeterminada cuando elige el nivel
normal o completo del optimizador en Developer tool. El Servicio de integración de datos ignora la
optimización de primera selección si una transformación que aparece antes que la transformación de filtro
tiene efectos secundarios. El Servicio de integración de datos no puede determinar si la transformación de
SQL, la transformación del consumidor de servicio web y la transformación de Java tienen efectos
secundarios. Puede configurar la optimización de primera selección para estas transformaciones si no
tienen efectos secundarios.
Por ejemplo, una asignación contiene una transformación de combinación con la condición de combinación
"A=B" y una transformación de filtro con la condición de filtro "A>5". El Servicio de integración de datos
puede agregar "B>5" a la condición de combinación y acercar la transformación de filtro al origen.
El método de optimización de predicado global aplica expresiones de predicado de manera más eficaz que el
método de optimización de predicado. El método de optimización de predicado global determina si puede
simplificar o volver a escribir las expresiones para aumentar el rendimiento de la asignación. También
intenta aplicar expresiones de predicado tan pronto como sea posible en la asignación para mejorar el
rendimiento de la asignación.
El método de optimización de predicado global deduce filtros y los acerca al origen cuando la asignación
contiene ramificaciones o uniones anidadas con filtros en cada ramificación. Cuando el Servicio de
integración de datos utiliza el método de optimización de predicado global, divide los filtros, los acerca al
origen o los elimina en una asignación.
El servicio de integración de datos puede quitar una transformación de filtro si la condición de filtro da como
resultado FALSE para las filas de datos. Por ejemplo, una asignación tiene dos transformaciones de filtro
que filtran datos de dos orígenes relacionales. Una transformación de filtro tiene la condición de filtro
País=EE. UU. y la otra transformación de filtro tiene la condición de filtro País=Canadá. Una transformación
de unión une los dos orígenes relacionales y tiene la condición de filtro País=EE. UU. El servicio de
integración de datos puede quitar la transformación de filtro con la condición de filtro País=Canadá de la
asignación.
Optimización de inserciones
Cuando el servicio de integración de datos aplica la optimización de inserciones, inserta la lógica de
transformación en la base de datos de origen. El servicio de integración de datos convierte la lógica de
transformación en consultas SQL y las envía a la base de datos. La base de datos de origen ejecuta las
consultas SQL para procesar las transformaciones.
La cantidad de lógica de transformación que inserta el servicio de integración de datos en la base de datos
de origen depende de la base de datos, la lógica de transformación y la configuración de la asignación. El
servicio de integración de datos procesa toda la lógica de transformación que no puede insertar en una base
de datos.
Optimización de inserciones 51
datos. El servicio de integración de datos lee los resultados de las consultas SQL y procesa las
transformaciones restantes de la asignación.
También puede crear un parámetro de cadena para el tipo de inserción y utilizar los siguientes valores de
parámetro:
• Ninguno
• Origen
• Completo
Al configurar una asignación con una transformación de estrategia de actualización para la inserción
completa, debe determinar la compatibilidad de inserción de la asignación.
El Servicio de integración de datos puede insertar una asignación con una transformación de estrategia de
actualización en los siguientes casos:
El Servicio de integración de datos no puede insertar una asignación con una transformación de estrategia
de actualización en el siguiente caso:
También puede utilizar un parámetro de compatibilidad de inserción en la asignación. Puede usar los
siguientes valores de parámetro:
• noMultipleRowsWithSameKeyOnTarget
• reorderAllowedForMultipleRowsWithSameKey
• reorderNotAllowedForRowsWithSameKey
• Oracle
• IBM DB2
• Microsoft SQL Server
• Teradata
• Netezza
• Greenplum
• SAP HANA
Inserción de origen
Cuando el Servicio de integración de datos aplica la inserción de origen, analiza la asignación del origen al
destino o hasta que llega a una transformación de nivel inferior que no puede insertar en la base de datos de
origen.
El Servicio de integración de datos genera y ejecuta una declaración SELECT basándose en la lógica de
transformación para cada transformación que puede insertar en la base de datos. A continuación, lee los
resultados de esta consulta SQL y procesa las transformaciones restantes.
Puede configurar una asignación para utilizar la inserción de origen si el origen y el destino residen en
distintas bases de datos. Por ejemplo, si una asignación contiene un origen de Teradata y un destino de
Oracle, puede configurar la inserción de origen para insertar lógica de transformación para el procesamiento
en el origen de Teradata.
Optimización de inserciones 53
Lectura de pase individual
La lectura de pase individual le permite llenar múltiples destinos con un objeto de datos personalizado.
Considere utilizar la lectura de pase individual si tiene varias asignaciones que utilizan los mismos orígenes.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de la lectura de pase individual:
Combine la lógica de transformación para cada asignación en una asignación y utilice un objeto de datos personalizado
para cada origen.
El servicio de integración de datos lee cada origen una vez y, a continuación, envía los datos en distintos
canales. Una fila determinada puede ser utilizada por todos los canales, por cualquier combinación de
canales o por ningún canal.
Por ejemplo, tiene la tabla de origen de compras y utiliza ese origen a diario para realizar una agregación
y una clasificación. Si coloca las transformaciones de agregación y de rango en asignaciones
separadas, puede forzar al servicio de integración de datos a leer la misma tabla de origen dos veces.
Sin embargo, si incluye la lógica de agregación y de clasificación en una asignación con un calificador
de origen, el servicio de integración de datos lee la tabla de origen de compras una vez y, a continuación,
envía los datos correspondientes a los distintos canales.
Al cambiar asignaciones para aprovechar las prestaciones de la lectura de pase individual, puede
optimizar esta característica por excluyendo las funciones comunes de las asignaciones. Por ejemplo, si
necesita restar un porcentaje de los puertos de Precio para las transformaciones tanto de agregación
como de rango, puede reducir el trabajo restando el porcentaje antes de dividir el canal. Puede utilizar
una transformación de expresión para restar el porcentaje y, a continuación, dividir la asignación
después de la transformación.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de filtros:
Utilice un filtro en un objeto de datos personalizado para quitar las filas en el origen.
Si filtra filas desde la asignación, puede mejorar la eficacia filtrando primero el flujo de datos. Utilice un
filtro en un objeto de datos personalizado para quitar las filas en el origen. El objeto de datos
personalizado limita el conjunto de filas extraído de un origen relacional.
Si no puede utilizar un filtro en el objeto de datos personalizado, utilice una transformación de filtro y
muévala tan cerca del objeto de datos personalizado como sea posible para quitar los datos
innecesarios al principio del flujo de datos. La transformación de filtro limita el conjunto de filas
enviadas a un destino.
Utilice un filtro en una transformación de estrategia de actualización si no necesita mantener las filas rechazadas.
Para mejorar el rendimiento de la asignación, también puede utilizar una transformación de filtro para
quitar las filas rechazadas desde una transformación de estrategia de actualización si no necesita
mantener las filas rechazadas.
Evitar el uso de expresiones complejas en las condiciones de filtro. Para optimizar las transformaciones
de filtro, utilice un entero simple o expresiones TRUE/FALSE en la condición del filtro.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de las conversiones de tipos de datos:
Utilice valores enteros en lugar de otros tipos de datos cuando realice comparaciones mediante la búsqueda y las
transformaciones de filtro.
Por ejemplo, muchas las bases de datos almacenan información de código postal de Estados Unidos
como un tipo de datos Char o Varchar. Si convierte los datos del código postal a un tipo de datos entero,
la base de datos de búsqueda almacena el código postal 94303-1234 como 943031234. Esto ayuda a
aumentar la velocidad de las comparaciones de búsqueda basándose en el código postal.
Convierta las fechas de origen a cadenas a través de las conversiones puerto a puerto para aumentar el rendimiento de
la asignación.
Puede dejar los puertos en los destinos como cadenas o cambiarlos a puertos a Fecha/Hora.
Error de seguimiento
Para mejorar el rendimiento, reduzca el número de eventos de registro generados por el servicio de
integración de datos cuando ejecuta la asignación. Mejore el rendimiento de las asignaciones actualizando
el nivel del optimizador de asignaciones mediante la configuración de la asignación o las propiedades de
implementación de la asignación. Utilice el método de optimización basada en el coste para optimizar las
asignaciones.
Tenga en cuenta las siguientes soluciones para los cuellos de botella del error de seguimiento:
Establezca el nivel de seguimiento en las propiedades de la asignación en simplificado
Si una asignación tarda un tiempo excesivo en ejecutarse, sería recomendable cambiar el nivel del
optimizador para la asignación. El nivel del optimizador determina los métodos de optimización que el
servicio de integración de datos aplica a la asignación en tiempo de ejecución.
El método de optimización basado en el coste hace que el servicio de integración de datos evalúe una
asignación, genere asignaciones semánticamente equivalentes y ejecute la asignación con el mayor
rendimiento posible. Este método es el más eficaz para las asignaciones que contienen varias
transformaciones de incorporación. Reduce el tiempo de ejecución de asignaciones que llevan a cabo
operaciones de combinación interior adyacentes y no ordenadas.
Las asignaciones semánticamente equivalentes son aquellas que realizan funciones idénticas y
producen los mismos resultados. Para generar asignaciones semánticamente equivalentes, el servicio
de integración de datos divide en fragmentos la asignación original. Luego, el servicio de integración de
datos determina los fragmentos de asignación que puede optimizar.
Si las asignaciones procesan grandes conjuntos de datos o contienen transformaciones que realizan
cálculos complicados, las asignaciones pueden tardar mucho tiempo en procesarse y pueden provocar un
bajo rendimiento de los datos. Cuando se habilita la partición para estas asignaciones, el servicio de
integración de datos utiliza subprocesos adicionales para procesar la asignación.
Puede optimizar el rendimiento de asignaciones con particiones mediante las tareas siguientes:
57
Utilizar varias CPU
Aumentar el número de subprocesos de procesamiento aumenta la carga en los nodos que ejecutan
asignaciones. Si los nodos contienen un ancho de banda de CPU amplio, el procesamiento simultáneo de
filas de datos en una asignación puede optimizar el rendimiento de la asignación.
El Servicio de integración de datos puede utilizar varias CPU para procesar una asignación que contiene
varias particiones. El número de CPU que el servicio utiliza depende de factores como el número de puntos
de partición, el número de subprocesos creados para cada etapa de canal y la cantidad de recursos
necesarios para procesar la asignación. Una asignación simple se ejecuta más rápidamente en dos
particiones, pero suele requerir el doble de CPU que cuando se ejecuta la asignación en una única partición.
Tenga en cuenta las siguientes directrices cuando aumente el valor del número máximo de paralelismos:
Aumente el valor del número máximo de paralelismos en función del número de CPU disponibles en los
nodos donde se ejecutan las asignaciones. Al aumentar el valor del número máximo de paralelismos, el
Servicio de integración de datos utiliza más subprocesos para ejecutar la asignación y aprovecha más
CPU. Una asignación simple se ejecuta más rápidamente en dos particiones, pero suele requerir el doble
de CPU que cuando se ejecuta la asignación en una única partición.
Tenga en cuenta el número total de subprocesos de procesamiento cuando establezca el valor del
número máximo de paralelismos. Si una asignación compleja produce varios puntos de partición
adicionales, el Servicio de integración de datos podría utilizar más subprocesos de procesamiento de
los que puede manejar la CPU.
El número total de subprocesos de procesamiento es igual al valor del número máximo de paralelismos.
Tenga en cuenta los otros trabajos que debe ejecutar el Servicio de integración de datos.
Si configura el número máximo de paralelismos de tal forma que cada asignación utilice un gran número
de subprocesos, quedarán menos subprocesos disponibles para que el Servicio de integración de datos
ejecute tareas adicionales.
En Developer tool, los desarrolladores pueden cambiar el valor del número máximo de paralelismos en
las propiedades de tiempo de ejecución de la asignación para definir un valor máximo para una
asignación concreta. Cuando el número máximo de paralelismos está establecido en valores enteros
diferentes para el Servicio de integración de datos y para la asignación, el Servicio de integración de
datos utiliza el valor más pequeño de los dos.
Considere la siguiente solución para reducir los cuellos de botella de los orígenes de archivos sin formato
con particiones:
Configure la partición de lectura simultánea para el objeto de datos de archivo sin formato para optimizar el
rendimiento.
En las propiedades avanzadas del objeto de datos de archivo sin formato, establezca la propiedad
Partición de lectura simultánea para optimizar el rendimiento. Al optimizar el rendimiento, el Servicio de
integración de datos no conserva el orden de las filas porque no lee las filas del archivo o la lista de
archivos de forma secuencial.
Considere las siguientes soluciones para reducir los cuellos de botella de los destinos de archivos sin
formato con particiones:
En las propiedades avanzadas del objeto de datos de archivo sin formato, establezca la propiedad Tipo
de fusión en Sin fusión. El Servicio de integración de datos escribe simultáneamente la salida de destino
en un archivo distinto para cada partición. Si necesita datos de destino fusionados, el tipo de fusión
simultánea optimizar el rendimiento más que el tipo de fusión secuencial.
Cuando varios subprocesos escriben en un solo directorio, la asignación podría experimentar un cuello
de botella debido a la contención de E/S. Una contención de E/S puede producirse cuando varios
subprocesos escriben datos en el sistema de archivos al mismo tiempo. Al configurar varios directorios,
el Servicio de integración de datos determina el directorio de salida para cada subproceso mediante un
método Round-Robin.
Configure los directorios de archivo de salida en las propiedades avanzadas del objeto de datos de
archivo sin formato. Utilice el valor del parámetro del sistema predeterminado de TargetDir si un
administrador ha introducido varios directorios separados por punto y coma para la propiedad
Directorio de destino para el Servicio de integración de datos en la Herramienta del administrador.
También puede introducir un valor distinto para configurar varios directorios de archivo de salida
específicos para el objeto de datos de archivo sin formato.
Para lograr un rendimiento óptimo cuando se utilizan varios subprocesos para leer desde una base de datos
relacional de DB2 para LUW o de Oracle o escribir en ella, puede realizar una partición de las tablas de origen
y de destino.
Nota: Si una asignación lee o escribe en una base de datos relacional que no sea DB2 para LUW u Oracle, el
servicio de integración de datos utiliza un subproceso de lector o de escritor.
Para optimizar la base de datos de origen para la partición, realice las tareas siguientes:
Añada particiones de la base de datos al origen relacional para aumentar la velocidad de la consulta del
servicio de integración de datos que lee el origen. Si el origen no tiene particiones de la base de datos, el
servicio de integración de datos utiliza un subproceso para leer en el origen.
Las bases de datos relacionales pueden tener opciones que habiliten las consultas en paralelo en la
base de datos. Consulte la información sobre estas opciones en la documentación de la base de datos.
Si estas opciones no están habilitadas, el servicio de integración de datos ejecuta varias instrucciones
SELECT de particiones en serie.
Cada base de datos proporciona una opción para separar los datos en diferentes espacios de tablas.
Cada espacio de tablas puede hacer referencia a un sistema de archivo único, lo que impide que haya
contenciones de E/S en las particiones.
El servicio de integración de datos crea una conexión con la base de datos de origen distinta para cada
partición. Aumente el número máximo de sesiones permitidas para que la base de datos pueda manejar
un número mayor de conexiones simultáneas.
Para optimizar la base de datos de destino para la partición, realice las tareas siguientes:
El servicio de integración de datos puede utilizar varios subprocesos para escribir en un destino de DB2
para LUW que no tiene particiones de la base de datos. No obstante, puede optimizar el rendimiento de
Las bases de datos relacionales pueden tener opciones que habiliten las inserciones en paralelo en la
base de datos. Consulte la información sobre estas opciones en la documentación de la base de datos.
Por ejemplo, establezca la opción db_writer_processes en una base de datos Oracle y la opción
max_agents en una base de datos de DB2 para LUW para habilitar las inserciones en paralelo.
Cada base de datos proporciona una opción para separar los datos en diferentes espacios de tablas.
Cada espacio de tablas puede hacer referencia a un sistema de archivo único, lo que impide que haya
contenciones de E/S en las particiones.
El servicio de integración de datos crea una conexión con la base de datos de destino distinta para cada
partición. Aumente el número máximo de sesiones permitidas para que la base de datos pueda manejar
un número mayor de conexiones simultáneas.
Las bases de datos relacionales pueden tener opciones que mejoran la escalabilidad. Por ejemplo,
deshabilite el registro de los archivos y la estadísticas temporizadas en una base de datos de Oracle
para mejorar la escalabilidad.
Nota: Una transformación de búsqueda solo puede utilizar un único directorio de la memoria caché.
Considere la siguiente solución para reducir los cuellos de botella de las transformaciones de agregación,
combinación, rango u ordenación:
La partición de la memoria caché crea una memoria caché diferente para cada partición que procese
una transformación de agregación, combinación, rango u ordenación. Durante la partición de la memoria
caché, cada partición almacena datos diferentes en una memoria caché distinta. Cada memoria caché
contiene las filas que necesita esa partición. La partición de la memoria caché optimiza el rendimiento
de la asignación, porque cada subproceso consulta una memoria caché diferente en paralelo.
Si el tamaño de la memoria caché es menor que la cantidad de memoria necesaria para ejecutar la
transformación, los subprocesos de transformación escriben en el directorio de la memoria caché para
almacenar valores de desbordamiento en archivos de memoria caché. Cuando varios subprocesos
escriben en un mismo directorio, la asignación podría experimentar un cuello de botella debido a la
contención de E/S. Una contención de E/S puede producirse cuando varios subprocesos escriben datos
en el sistema de archivos al mismo tiempo. Cuando configura varios directorios de memoria caché, el
En una transformación de agregación, combinación o rango, configure los directorios de memoria caché
en la propiedad avanzada Directorio de la memoria caché. Utilice el valor del parámetro del sistema
predeterminado de CacheDir si un administrador ha introducido varios directorios separados por punto y
coma para la propiedad Directorio de la memoria caché para el Servicio de integración de datos en la
Herramienta del administrador. También puede introducir un valor distinto para configurar varios
directorios de memoria caché específicos para la transformación.
Utilice las siguientes técnicas de optimización en Administrator Tool para obtener los mejores resultados de
rendimiento según sus requisitos:
63
Optimización del servicio del analista
Ajuste el servicio del analista para optimizar el rendimiento. Puede configurar las propiedades del proceso
del servicio del analista para la memoria, minimizar la latencia de la red y establecer la configuración de
carga del archivo sin formato de Analyst Tool para mejorar el rendimiento del servicio.
Tenga en cuenta las siguientes soluciones para los cuellos de botella del servicio del analista:
Configure Analyst Tool para que se conecte a una ubicación de ruta de acceso a la red para cargar archivos sin formato
de más de 10 MB.
El rendimiento de proceso de servicio del analista se puede reducir cuando los analistas cargan archivos
sin formato grandes de más de 10 MB en el directorio de instalación de Informatica en el equipo en el
que se ejecuta la herramienta del analista. Esto puede afectar tanto al espacio en disco como al
rendimiento de la red.
Cargue los archivos sin formato de menos de 10 MB en el directorio de instalación de Informatica desde Analyst Tool.
El rendimiento del proceso del servicio del analista se puede reducir si los analistas cargan archivos sin
formato de más de 10 MB en el directorio de instalación de Informatica desde Analyst Tool. Esto puede
afectar tanto al espacio en disco como al rendimiento de la red.
Aumente la propiedad del tamaño de heap máximo para el proceso del servicio del analista.
El proceso del servicio de analista puede consumir grandes cantidades de memoria durante el
procesamiento de un gran número de usuarios conectados de forma simultánea. Esto puede provocar
que se abra un gran número de conexiones de red entre el servicio del analista y otros servicios como el
servicio de integración de datos o el servicio de repositorio de modelos.
Utilice Administrator Tool para configurar la propiedad del tamaño de heap máximo en un valor mayor
en las Propiedades avanzadas del proceso del servicio del analista.
Exporte las especificaciones de asignación grandes a una tabla o expórtelas a un archivo sin formato y trunque el
archivo.
El proceso de servicio del analista puede tener un impacto en el rendimiento cuando los analistas
exportan grandes especificaciones de asignación como archivos sin formato desde Analyst Tool.
Tenga en cuenta las siguientes soluciones para los cuellos de botella del servicio de integración de datos:
Configure la propiedad tamaño de heap máximo para el proceso del servicio de integración de datos.
Use Administrator Tool para configurar la propiedad del tamaño de heap máximo en un valor mayor en
las propiedades avanzadas para el proceso del servicio de integración de datos.
Configure la propiedad Tiempo para mantener DTM del servicio del web para el servicio de integración de datos.
El servicio de integración de datos consume los recursos del sistema para generar una instancia del
DTM para cada solicitud de servicio web. Configure el servicio de integración de datos para usar una
instancia del DTM para procesar más de una solicitud de servicio web.
Use Administrator Tool para configurar la propiedad Tiempo para mantener DTM del servicio web para el
servicio de integración de datos.
El servicio de integración de datos, cada servicio de datos SQL y cada servicio web que se ejecuta en el
servicio de integración de datos consume recursos del sistema y de la memoria para cada solicitud
simultánea.
Para configurar el número de solicitudes simultáneas que pueden aceptar el servicio de integración de
datos, cada servicio de datos SQL y cada servicio web, configure las propiedades del servicio de
integración de datos y las propiedades del servicio web.
Use la herramienta Administrator para configurar las siguientes opciones y propiedades del servicio de
integración de datos, el servicio web y el servicio de datos SQL:
El número de archivos de registro del servicio web que el servicio de integración de datos escribe y
mantiene puede reducir el rendimiento.
Use la herramienta Administrator para configurar el nivel de seguimiento del servicio web para reducir la
cantidad de archivos de registro en tiempo de ejecución del servicio web que el servicio de integración
de datos almacena en el disco.
Tenga en cuenta las siguientes soluciones a los cuellos de botella del servicio de repositorio de modelos:
Aloje la base de datos del repositorio de modelos en el mismo equipo que el servicio de repositorio de modelos.
El rendimiento del proceso del servicio de repositorio de modelos puede verse afectado si la base de
datos del repositorio de modelos está alojada en un servidor remoto. Las operaciones del servicio de
repositorio de modelos que requieren comunicación entre el repositorio de modelos y el servicio de
repositorio de modelos en una red de alta latencia podría ralentizar el rendimiento del servicio de
repositorio de modelos.
Aumente la propiedad tamaño de heap máximo para el proceso del servicio de repositorio de modelos.
El proceso del servicio de repositorio de modelos puede consumir grandes cantidades de memoria
durante el procesamiento de un gran número de usuarios registrados simultáneamente. Esto puede
provocar que haya que abrir un gran número de conexiones de red entre el servicio de repositorio de
modelos y otros servicios como el servicio de integración de datos o el servicio del analista.
Utilice la Herramienta del administrador para configurar la propiedad del tamaño de heap máximo en un
valor mayor en las propiedades avanzadas para el proceso del servicio de repositorio de modelos.
Tenga en cuenta la siguiente solución para supervisar los cuellos de botella de estadísticas:
Configure el dominio para configurar la supervisión.
Configure valores de supervisión para el dominio a fin de especificar el repositorio de modelos que
almacena las estadísticas de tiempo de ejecución sobre los objetos implementados en los servicios de
integración de datos. Los valores de supervisión se aplican a todos los servicios de integración de datos
del dominio y pueden afectar al rendimiento del servicio.
La tabla siguiente describe los valores de supervisión que pueden afectar al rendimiento de los servicios:
Opción Descripción
Conservar datos Número de días que el repositorio de modelos guarda datos de promedio. Si la purga está
históricos de resumen deshabilitada, el repositorio de modelos guarda los datos indefinidamente.
El valor predeterminado es 180. El valor mínimo es 0. El valor máximo es 366.
Conservar datos Número de días que el repositorio de modelos guarda datos por minuto. Si la purga está
históricos detallados deshabilitada, el repositorio de modelos guarda los datos indefinidamente.
El valor predeterminado es 14. El valor mínimo es 1. El valor máximo es 14.
Purgar estadísticas Intervalo, en días, en el que el servicio de repositorio de modelos purga datos anteriores a
cada los valores configurados en las opciones de conservación de datos históricos.
El valor predeterminado es 1 día.
Días en Hora del día en que el servicio de repositorio de modelos purgará las estadísticas. El valor
predeterminado es 1:00 a. m.
Número máximo de Número máximo de registros que se pueden ordenar en la ficha Supervisar. Si el número de
registros ordenables registros de la ficha Supervisar es mayor que este valor, solo podrá ordenar por Hora de
inicio y Hora de finalización. El valor predeterminado es 3.000.
Retardo máximo para Tiempo máximo, en segundos, durante el cual el servicio de integración de datos almacena
las notificaciones de en la memoria intermedia las estadísticas antes de almacenarlas en el repositorio de
actualización modelos y de mostrarlas en la ficha Supervisar. Si el servicio de integración de datos se
cierra inesperadamente antes de que almacene las estadísticas en el repositorio de
modelos, las estadísticas se perderán. El valor predeterminado es 10.
Mostrar milisegundos Incluye los milisegundos para los campos de fecha y hora en la ficha Supervisión.
En la siguiente tabla se describe la propiedad Memoria máxima por solicitud para el Módulo del servicio de
asignación:
Propiedad Descripción
Memoria El comportamiento de Memoria máxima por solicitud depende de las siguientes configuraciones del
máxima por servicio de integración de datos:
solicitud - El servicio ejecuta trabajos en procesos locales o remotos independientes, o la propiedad del
servicio Tamaño máximo de memoria es 0 (predeterminado).
Memoria máxima por solicitud es la cantidad máxima de memoria, en bytes, que el servicio de
integración de datos puede asignar a todas las transformaciones que utilizan el modo de memoria
caché automática en una sola solicitud. El servicio asigna la memoria por separado a las
transformaciones que tienen un tamaño de memoria caché específico. La memoria total utilizada
por la solicitud puede superar el valor de Memoria máxima por solicitud.
- El servicio ejecuta trabajos en el proceso de servicio de integración de datos, y la propiedad del
servicio Tamaño máximo de memoria es mayor que 0.
Memoria máxima por solicitud es la cantidad máxima de memoria, en bytes, que el servicio de
integración de datos puede asignar a una sola solicitud. La memoria total utilizada por la solicitud
no puede superar el valor de Memoria máxima por solicitud.
El valor predeterminado es 536 870 912.
En la siguiente tabla se describen las opciones de ejecución para el Servicio de integración de datos:
Propiedad Descripción
Tamaño Cantidad máxima de memoria, en bytes, que el servicio de integración de datos puede asignar para
máximo de ejecutar todas las solicitudes de forma simultánea cuando el servicio ejecuta trabajos en el
memoria proceso de servicio de integración de datos. Cuando el servicio de integración de datos ejecuta
trabajos en procesos locales o remotos independientes, el servicio omite este valor. Si no desea
limitar la cantidad de memoria que el servicio de integración de datos puede asignar, establezca
esta propiedad en 0.
Si el valor es mayor que 0, el servicio de integración de datos utiliza la propiedad para calcular la
memoria total máxima permitida para ejecutar todas las solicitudes de forma simultánea. El
servicio de integración de datos calcula la memoria total máxima de la siguiente forma:
Tamaño máximo de memoria + Tamaño de heap máximo + Memoria necesaria para cargar
componentes de programa
El valor predeterminado es 0.
Nota: Si ejecuta perfiles o asignaciones de calidad de datos, establezca esta propiedad en 0.
Asignación de memoria 67
En la siguiente tabla se describe la propiedad Tamaño de heap máximo para el proceso del Servicio de
integración de datos:
Propiedad Descripción
Tamaño de Cantidad de RAM asignada a la máquina virtual de Java (JVM) que ejecuta el servicio de
heap máximo integración de datos. Esta propiedad se utiliza para aumentar el rendimiento. Añada una de las
siguientes letras al valor para especificar las unidades:
- b para bytes.
- k para kilobytes.
- m para megabytes.
- g para gigabytes.
El valor predeterminado es 640 megabytes.
Nota: Considere la posibilidad de aumentar el tamaño de heap máximo cuando el servicio de
integración de datos necesite procesar grandes cantidades de datos.
De forma predeterminada, el servicio de integración de datos extrae los datos de origen y genera los objetos
de datos requeridos cuando ejecuta una asignación, una consulta del servicio de datos SQL o una solicitud
del servicio web. Cuando habilita la memoria caché de objetos de datos, el servicio de integración de datos
puede utilizar los objetos de datos lógicos y las tablas virtuales almacenados en la memoria caché.
De forma predeterminada, el servicio de integración de datos extrae los datos de origen y genera los objetos
de datos requeridos cuando ejecuta una asignación. Cuando habilita la memoria caché de objetos de datos,
el servicio de integración de datos puede utilizar los objetos de datos lógicos almacenados en la memoria
caché.
Realice los siguientes pasos para configurar la memoria caché de objetos de datos para objetos de datos
lógicos y tablas virtuales en una aplicación:
1. Configure la conexión de base de datos de la memoria caché de objetos de datos en las propiedades de
la memoria caché del servicio de integración de datos.
2. Habilite la memoria caché en las propiedades de objetos de datos lógicos o tablas virtuales en una
aplicación.
Realice los siguientes pasos para configurar la memoria caché de objetos de datos para objetos de datos
lógicos en una aplicación:
1. Configure la conexión de base de datos de la memoria caché de objetos de datos en las propiedades de
la memoria caché del servicio de integración de datos.
2. Habilite la memoria caché en las propiedades de objetos de datos lógicos en una aplicación.
De forma predeterminada, el componente Administrador de memoria caché de objetos de datos del servicio
de integración de datos administra las tablas de la memoria caché para los objetos de datos lógicos y las
tablas virtuales en la base de datos de la memoria caché de objetos de datos. Cuando el Administrador de
De forma predeterminada, el componente Administrador de memoria caché de objetos de datos del servicio
de integración de datos administra la memoria caché para los objetos de datos lógicos en la base de datos
de la memoria caché de objetos de datos. Cuando el Administrador de memoria caché de objetos de datos
administra la memoria caché, inserta todos los datos en las tablas de la memoria caché en cada
actualización.
Para utilizar la marca de tiempo con el tipo de datos de zona horaria y habilitar el almacenamiento en la
memoria caché de objetos de datos para IBM DB2 o Microsoft SQL Server, defina de la siguiente manera el
formato de fecha y hora de la asignación implementada: "YYYY-MM-DD HH24:MI:SS". El servicio de
integración de datos escribe los datos con una precisión de segundos.
El Administrador de memoria caché de objetos de datos crea las tablas de la memoria caché con los tipos de
datos que el Servicio de integración de datos espera. Si utiliza tablas de la memoria caché administradas por
el usuario, compruebe que las tablas de la memoria caché utilizan los tipos de datos que el Servicio de
integración de datos de espera.
Tenga en cuenta las siguientes soluciones para aumentar el rendimiento de la memoria caché:
Dado que el administrador de la memoria caché de objetos de datos debe mantener la memoria caché
antigua durante una operación de actualización, la memoria caché debe ser lo suficientemente grande
como para almacenar dos conjuntos de datos. Utilice la siguiente fórmula para calcular el tamaño
mínimo requerido de la memoria caché:
2 * average data object size * number of data objects
Por ejemplo, desea almacenar en la memoria caché 20 objetos de datos lógicos y 10 tablas virtuales. Si
el tamaño medio de los objetos es de 15 MB, entonces el tamaño requerido para la memoria caché será
de 2 * 15 MB * (20 + 10) = 900 MB.
Las tablas de la memoria caché son de solo lectura. Los usuarios finales no pueden actualizar las tablas
de la memoria caché con los comandos SQL.
Defina claves principales y claves externas para los objetos de datos lógicos.
Cuando el Servicio de integración de datos genera memoria caché para objetos de datos lógicos con
claves, crea índices. Los índices pueden aumentar el rendimiento de las consultas en la base de datos
de la memoria caché.
Almacene en caché los objetos de datos lógicos que combina en una asignación.
Cuando combina objetos de datos lógicos almacenados en la memoria caché, el Servicio de integración
de datos puede insertar la lógica de transformación de combinación en la base de datos de la memoria
caché incluso cuando los datos de origen se originan en bases de datos diferentes.
Genere la memoria caché del índice en función de las columnas en un objeto de datos lógicos o una tabla virtual.
Configure el Servicio de integración de datos para generar una memoria caché del índice en función de
las columnas en los objetos de datos lógicos o las tablas virtuales. El índice puede aumentar el
rendimiento de las consultas en la base de datos de la memoria caché.
Genere la memoria caché de índice según las columnas de un objeto de datos lógicos.
Configure el Servicio de integración de datos para generar una memoria caché del índice en función de
las columnas en los objetos de datos lógicos. El índice puede aumentar el rendimiento de las consultas
en la base de datos de la memoria caché.
Reducir el acceso al disco en bases de datos de origen y destino, en sistemas de archivos de origen y destino
y en los nodos del dominio puede reducir el rendimiento de la asignación. Pida al administrador del sistema
que evalúe los discos duro de los equipos.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de la optimización del sistema:
Mejorar la velocidad de red.
Las conexiones de red lentas pueden reducir el rendimiento de la asignación. Pida al administrador del
sistema que determine si la red se ejecuta a la velocidad óptima. Reduzca el número de saltos de red
entre el proceso del servicio de integración de datos y las bases de datos.
Reduzca la paginación.
Cuando un sistema operativo se ejecuta fuera de la memoria física, empieza paginando en el disco en la
física libre. Configure la memoria física para el equipo del proceso del servicio de integración de datos
para minimizar la paginación en el disco.
En un entorno UNIX de procesador múltiple, el servicio de integración de datos puede utilizar una gran
cantidad de recursos del sistema. Utilice el enlace del procesador para controlar el uso del procesador
mediante el proceso del servicio de integración. Asimismo, si las bases de datos de origen y destino
están en el mismo equipo, utilice el enlace del procesador para limitar los recursos utilizados por la base
de datos.
Utilice las siguientes técnicas de optimización para optimizar un servicio de datos SQL:
73
Temas relacionados
• “Memoria caché de objetos de datos” en la página 68
Tenga en cuenta las siguientes soluciones para los cuellos de botella de la herramienta de cliente de
terceros:
Envíe los resultados grandes de las consultas a un archivo en el disco.
Una herramienta de cliente de terceros puede afectar al rendimiento si muestra grandes resultados de
consultas en la ventana de la consola.
Una herramienta de cliente de terceros puede afectar al rendimiento si cifra los datos al obtener o
mostrar los resultados de las consultas.
Una herramienta de cliente de terceros puede afectar al rendimiento si obtiene filas únicas al mismo
tiempo.
Configure la herramienta de cliente de terceros para deshabilitar la opción para leer el contenido de la tabla cuando se
ha cargado primero.
Configure la herramienta de cliente de terceros para utilizar el formato predeterminado y la configuración de conversión
para la Fecha, Hora, y Marca de tiempo.
Una herramienta de cliente de terceros puede afectar al rendimiento si el formato de Fecha, Hora, y
Marca de tiempo y la configuración de conversión están establecidos en un formato definido por el
usuario en lugar de en el formato predeterminado.
Una herramienta de cliente de terceros puede afectar al rendimiento si la opción de depuración para
ejecutar la consulta está establecida en seguimiento. Esto puede reducir el rendimiento a medida que la
herramienta de cliente de terceros escribe más mensajes de registro en el archivo de depuración
durante el procesamiento de la consulta.
Para comprender cómo el nivel del optimizador crea una consulta optimizada para un servicio de datos SQL,
vea el plan de consulta para un servicio de datos SQL. Cuando vea el plan de consulta, Developer Tool
muestra una representación gráfica de la consulta optimizada en función del nivel del optimizador y una
representación gráfica de la consulta original.
Ninguno
Mínimo
Normal
Completo
El Servicio de integración de datos aplica los métodos de optimización basada en el coste, de primera
proyección, de primera selección, de eliminación de ramificaciones, de predicado, de inserción, semi-join
y dataship-join.
Puede utilizar uno o varios de los siguientes métodos para configurar el nivel del optimizador para un
servicio de datos SQL:
• Configure el nivel del optimizador para la vista previa de datos de los servicios de datos SQL.
• Configure el nivel de optimización de los servicios de datos SQL implementados.
• Configure el nivel del optimizador en la cadena de conexión de las consultas que se ejecutan sobre una
implementación de servicios de datos SQL.
1. En Developer Tool, haga clic en Ejecutar > Abrir cuadro de diálogo Ejecutar.
Aparece el cuadro de diálogo Ejecutar.
2. Haga clic en Configuración del visor de datos.
3. Haga clic en el botón Nueva.
4. Especifique un nombre para la configuración del visor de datos.
5. Haga clic en la ficha Opciones avanzadas.
6. Seleccione un nivel de optimizador.
7. Haga clic en Aplicar.
8. Haga clic en Cerrar
Developer Tool crea la configuración del visor de datos.
Propiedad Descripción
Nivel de El nivel del optimizador que el Servicio de integración de datos aplica en el objeto. Introduzca
optimización el valor numérico que está asociado con el nivel del optimizador que desee configurar. Puede
introducir uno de los siguientes valores numéricos:
- 0. El Servicio de integración de datos no aplica la optimización.
- 1. El Servicio de integración de datos aplica el método de optimización de primera
proyección.
- 2. El Servicio de integración de datos aplica los métodos de optimización de primera
proyección, de primera selección, de inserción y de predicado.
- 3. El Servicio de integración de datos aplica los métodos de optimización basados en coste
de primera proyección, primera selección, inserción, predicado y semi-join.
5. Para reemplazar el nivel del optimizador que usan los servicios de integración de datos para ejecutar
una consulta, añada la siguiente entrada a la URL de JDBC o la cadena de conexión de ODBC:
[Link]= <nivel_optimizador_numérico>.
Developer Tool utiliza el nivel del optimizador que se establece en Developer Tool para generar la consulta
optimizada. La consulta optimizada muestra la consulta tal como la ejecuta el servicio de integración de
datos.
Por ejemplo, desea consular la tabla virtual CUSTOMERS en un servicio de datos SQL. En la vista Visor de
datos, elija los ajustes de configuración del visor de datos predeterminado para establecer el nivel del
optimizador para la consulta como normal.
Cuando vea la consulta optimizada, Developer Tool mostrará la siguiente representación gráfica de la
consulta:
La vista optimizada muestra la consulta que ejecuta el servicio de integración de datos. Puesto que el nivel
del optimizador es normal, el servicio de integración de datos inserta la condición de filtro en el objeto de
datos de origen. El hecho de insertar la condición de filtro aumenta el rendimiento de la consulta, ya que
reduce el número de filas que lee el servicio de integración de datos desde el objeto de datos de origen. Al
igual que en la consulta no optimizada, Developer Tool muestra la cláusula ORDER BY como una
transformación de ordenación. Utiliza transformaciones de expresión de exclusión para poner en práctica los
tipos de datos especificados en las transformaciones lógicas.
1. Abra un servicio de datos SQL que contenga, como mínimo, una tabla virtual.
2. Haga clic en la vista Visor de datos.
3. Especifique una consulta SQL en la ventana Entrada.
4. Si lo desea, seleccione una configuración de visor de datos que contenga el nivel del optimizador que
desee aplicar a la consulta.
5. Haga clic en Mostrar plan de la consulta.
Developer Tool muestra el plan de la consulta SQL para la consulta introducida en la ficha No
optimizada.
6. Para ver la consulta optimizada, haga clic en la ficha Optimizada.
Developer Tool muestra el plan de la consulta SQL HypoStores_Customers.
En la siguiente tabla se describe la propiedad Memoria máxima por solicitud para el Módulo del servicio de
SQL:
Propiedad Descripción
Memoria El comportamiento de Memoria máxima por solicitud depende de las siguientes configuraciones del
máxima por servicio de integración de datos:
solicitud - El servicio ejecuta trabajos en procesos locales o remotos independientes, o la propiedad del
servicio Tamaño máximo de memoria es 0 (predeterminado).
Memoria máxima por solicitud es la cantidad máxima de memoria, en bytes, que el servicio de
integración de datos puede asignar a todas las transformaciones que utilizan el modo de memoria
caché automática en una sola solicitud. El servicio asigna la memoria por separado a las
transformaciones que tienen un tamaño de memoria caché específico. La memoria total utilizada
por la solicitud puede superar el valor de Memoria máxima por solicitud.
- El servicio ejecuta trabajos en el proceso de servicio de integración de datos, y la propiedad del
servicio Tamaño máximo de memoria es mayor que 0.
Memoria máxima por solicitud es la cantidad máxima de memoria, en bytes, que el servicio de
integración de datos puede asignar a una sola solicitud. La memoria total utilizada por la solicitud
no puede superar el valor de Memoria máxima por solicitud.
El valor predeterminado es 50 000 000.
En la siguiente tabla se describe la propiedad Tamaño de heap máximo para el proceso del Servicio de
integración de datos:
Propiedad Descripción
Tamaño de Cantidad de RAM asignada a la máquina virtual de Java (JVM) que ejecuta el servicio de
heap máximo integración de datos. Esta propiedad se utiliza para aumentar el rendimiento. Añada una de las
siguientes letras al valor para especificar las unidades:
- b para bytes.
- k para kilobytes.
- m para megabytes.
- g para gigabytes.
El valor predeterminado es 640 megabytes.
Nota: Considere la posibilidad de aumentar el tamaño de heap máximo cuando el servicio de
integración de datos necesite procesar grandes cantidades de datos.
En la siguiente tabla se describen las propiedades de SQL para el proceso del Servicio de integración de
datos:
Propiedad Descripción
Número máximo de Limita el número de conexiones de base de datos que puede llevar a cabo el Servicio de
conexiones simultáneas integración de datos para los servicios de datos SQL. El valor predeterminado es 100.
Propiedad Descripción
Tamaño máximo Número máximo de trabajos implementados que se pueden ejecutar simultáneamente en el
del grupo de lotes entorno de Hadoop. El servicio de integración de datos mueve trabajos de Hadoop desde la cola
de Hadoop hasta el grupo de lotes de Hadoop cuando hay suficientes recursos disponibles. El valor
predeterminado es 100.
Tamaño máximo Número máximo de trabajos implementados que se pueden ejecutar simultáneamente en el
del grupo de lotes entorno nativo. El servicio de integración de datos mueve trabajos nativos de asignación desde
nativos la cola hasta el grupo de trabajos nativos cuando hay suficientes recursos disponibles. El valor
predeterminado es 10.
Tamaño máximo Número máximo de trabajos a petición que pueden ejecutarse simultáneamente. Los trabajos
del grupo a incluyen previsualizaciones de datos, trabajos de creación de perfiles, consultas REST y SQL,
petición solicitudes de servicios web y asignaciones que se ejecutan desde Developer tool. El servicio de
integración de datos ejecuta inmediatamente trabajos a petición si hay suficientes recursos
disponibles. De lo contrario, el servicio de integración de datos rechaza el trabajo. El valor
predeterminado es 10.
Tamaño máximo Cantidad máxima de memoria, en bytes, que el servicio de integración de datos puede asignar
de memoria para ejecutar todas las solicitudes de forma simultánea cuando el servicio ejecuta trabajos en el
proceso de servicio de integración de datos. Cuando el servicio de integración de datos ejecuta
trabajos en procesos locales o remotos independientes, el servicio omite este valor. Si no desea
limitar la cantidad de memoria que el servicio de integración de datos puede asignar, establezca
esta propiedad en 0.
Si el valor es mayor que 0, el servicio de integración de datos utiliza la propiedad para calcular
la memoria total máxima permitida para ejecutar todas las solicitudes de forma simultánea. El
servicio de integración de datos calcula la memoria total máxima de la siguiente forma:
Tamaño máximo de memoria + Tamaño de heap máximo + Memoria necesaria para cargar
componentes de programa
El valor predeterminado es 0.
Nota: Si ejecuta perfiles o asignaciones de calidad de datos, establezca esta propiedad en 0.
Tenga en cuenta la siguiente solución para los cuellos de botella de la memoria caché del conjunto de
resultados:
Configure la memoria caché del conjunto de resultados para un servicio de datos SQL.
La memoria caché del conjunto de resultados permite que el servicio de integración de datos utilice los
resultados almacenados en la memoria caché para las consultas del servicio de datos SQL. Los
usuarios que ejecuten consultas idénticas en un corto período de tiempo puede que quieran usar la
memoria caché del conjunto de resultados para reducir el tiempo de ejecución de las consultas
idénticas.
La siguiente tabla describe las propiedades de la memoria caché del conjunto de resultados para el servicio
de integración de datos:
Propiedad Descripción
Prefijo de nombre de archivo Prefijo de los nombres de todos los archivos de la memoria caché del conjunto
de resultados almacenados en el disco. El valor predeterminado es RSCACHE.
Habilitar cifrado Indica si los archivos de la memoria caché del conjunto de resultados están
cifrados mediante AES de 128 bits. Los valores válidos son true o false. El valor
predeterminado es true.
La siguiente tabla describe la propiedad que configura el número de milisegundos que la memoria caché de
conjunto de resultados tiene disponibles para el servicio de datos SQL:
Propiedad Descripción
Período de El número de milisegundos en el que la memoria caché del conjunto de resultados está
vencimiento de la disponible para poder usarla. Si se ha establecido en -1, la memoria caché no vence nunca. Si
memoria caché del se ha establecido en 0, se deshabilita la memoria caché del conjunto de resultados. Los
conjunto de cambios efectuados en el período de vencimiento no se aplican a las memorias caché
resultados actuales. Si desea que todas las memorias caché usen el mismo período de vencimiento,
purgue la memoria caché del conjunto de resultados tras cambiar el período de vencimiento.
El valor predeterminado es 0.
Las tablas temporales también proporcionan una mayor seguridad de dos maneras. En primer lugar, solo el
usuario de la sesión activa puede acceder a las tablas. Asimismo, las tablas persisten mientras una sesión
está activa, y la base de datos elimina las tablas cuando la conexión se cierra.
Primero, el administrador de Informatica crea una conexión con la base de datos relacionales y configura el
Servicio de integración de datos para utilizar dicha conexión.
A continuación, el desarrollador de una herramienta de inteligencia empresarial (por ejemplo, IBM Cognos o
SAP Business Objects) crea una conexión entre la herramienta de inteligencia empresarial y el servicio de
datos SQL de Informatica. La conexión utiliza el controlador ODBC o JDBC de Informatica.
Cuando estas conexiones están activas, la herramienta de inteligencia empresarial puede crear y utilizar
tablas temporales para procesar grandes cantidades de datos intermedios.
82
Temas relacionados
• “Memoria caché de objetos de datos” en la página 68
Tenga en cuenta las siguientes soluciones para los cuellos de botella de las solicitudes HTTP:
Reduzca el tiempo de espera del socket para el cliente del servicio web.
El tiempo de espera del socket establece la cantidad de tiempo que espera el cliente antes de agotar el
tiempo de espera de la solicitud HTTP. El cliente del servicio web puede colgarse si el valor del tiempo
de espera del socket es grande.
Tenga en cuenta la siguiente solución para los cuellos de botella de mensajes del servicio web:
Habilite la compresión de mensajes SOAP para un cliente del servicio web.
La compresión de mensajes SOAP habilita el servicio web para comprimir el servicio web y recibir
mensajes del cliente de servicio web comprimidos. El servicio web puede aceptar un mensaje SOAP con
compresión GZip desde un cliente del servicio web.
Cuando el servicio de integración de datos recibe la respuesta del servicio web, comprueba el
encabezado HTTP de codificación de contenido en el mensaje SOAP y descodifica el mensaje.
Ninguno
Mínimo
Completo
El Servicio de integración de datos aplica los métodos de optimización basada en el coste, de primera
proyección, de primera selección, de eliminación de ramificaciones, de predicado, de inserción, semi-join
y dataship-join.
Puede utilizar uno o varios de los siguientes métodos para configurar el nivel del optimizador para un
servicio web:
• Configure el nivel del optimizador para la vista previa de datos de un servicio web antes de implementarlo
en un servicio de integración de datos.
• Configure el nivel de optimización para servicios web implementado que se ejecutan en un servicio de
integración de datos.
• Configure el nivel del optimizador en el encabezado de la solicitud de servicio web para un servicio web
implementado.
1. En Developer Tool, haga clic en Ejecutar > Abrir cuadro de diálogo Ejecutar.
Aparece el cuadro de diálogo Ejecutar.
2. Haga clic en Configuración del servicio web.
3. Haga clic en el botón Nueva.
4. Especifique un nombre para la configuración del servicio web.
5. Haga clic en la ficha Opciones avanzadas.
6. Seleccione un nivel de optimizador.
7. Haga clic en Aplicar.
8. Haga clic en Cerrar
Developer Tool crea la configuración del servicio web.
Cuando ejecute el visor de datos para previsualizar la salida de una asignación de operación, seleccione la
configuración del servicio web que incluye el nivel del optimizador que desea utilizar.
Propiedad Descripción
Nivel de El nivel del optimizador que el Servicio de integración de datos aplica en el objeto. Introduzca
optimización el valor numérico que está asociado con el nivel del optimizador que desee configurar. Puede
introducir uno de los siguientes valores numéricos:
- 0. El Servicio de integración de datos no aplica la optimización.
- 1. El Servicio de integración de datos aplica el método de optimización de primera
proyección.
- 2. El Servicio de integración de datos aplica los métodos de optimización de primera
proyección, de primera selección, de inserción y de predicado.
- 3. El Servicio de integración de datos aplica los métodos de optimización basados en coste
de primera proyección, primera selección, inserción, predicado y semi-join.
5. Para reemplazar el nivel de optimización del servicio web para una solicitud de servicio web, incluya la
siguiente entrada en el encabezado HTTP de la solicitud SOAP del servicio web:
[Link]= <nivel_optimizador_numérico>.
En la siguiente tabla se describe la propiedad Memoria máxima por solicitud para el Módulo de servicios
web:
Propiedad Descripción
Memoria El comportamiento de Memoria máxima por solicitud depende de las siguientes configuraciones del
máxima por servicio de integración de datos:
solicitud - El servicio ejecuta trabajos en procesos locales o remotos independientes, o la propiedad del
servicio Tamaño máximo de memoria es 0 (predeterminado).
Memoria máxima por solicitud es la cantidad máxima de memoria, en bytes, que el servicio de
integración de datos puede asignar a todas las transformaciones que utilizan el modo de memoria
caché automática en una sola solicitud. El servicio asigna la memoria por separado a las
transformaciones que tienen un tamaño de memoria caché específico. La memoria total utilizada
por la solicitud puede superar el valor de Memoria máxima por solicitud.
- El servicio ejecuta trabajos en el proceso de servicio de integración de datos, y la propiedad del
servicio Tamaño máximo de memoria es mayor que 0.
Memoria máxima por solicitud es la cantidad máxima de memoria, en bytes, que el servicio de
integración de datos puede asignar a una sola solicitud. La memoria total utilizada por la solicitud
no puede superar el valor de Memoria máxima por solicitud.
El valor predeterminado es 50 000 000.
Propiedad Descripción
Tamaño Cantidad máxima de memoria, en bytes, que el servicio de integración de datos puede asignar para
máximo de ejecutar todas las solicitudes de forma simultánea cuando el servicio ejecuta trabajos en el
memoria proceso de servicio de integración de datos. Cuando el servicio de integración de datos ejecuta
trabajos en procesos locales o remotos independientes, el servicio omite este valor. Si no desea
limitar la cantidad de memoria que el servicio de integración de datos puede asignar, establezca
esta propiedad en 0.
Si el valor es mayor que 0, el servicio de integración de datos utiliza la propiedad para calcular la
memoria total máxima permitida para ejecutar todas las solicitudes de forma simultánea. El
servicio de integración de datos calcula la memoria total máxima de la siguiente forma:
Tamaño máximo de memoria + Tamaño de heap máximo + Memoria necesaria para cargar
componentes de programa
El valor predeterminado es 0.
Nota: Si ejecuta perfiles o asignaciones de calidad de datos, establezca esta propiedad en 0.
En la siguiente tabla se describen las propiedades de configuración de HTTP para el proceso del Servicio de
integración de datos:
Propiedad Descripción
Número máximo de Número máximo de conexiones HTTP o HTTPS que pueden estar en espera en una cola para
solicitudes este proceso de servicio de integración de datos. El valor predeterminado es 100.
acumuladas
Número máximo de Número máximo de conexiones HTTP o HTTPS que se pueden establecer con este proceso de
solicitudes servicio de integración de datos. El valor predeterminado es 200.
simultáneas Nota: Para un servicio web, esta propiedad repercute en el número de solicitudes del servicio
web que los servicios de integración de datos aceptan antes de enviar las solicitudes a las
acumuladas en el Servicio de integración de datos.
En la siguiente tabla se describe la propiedad Tamaño de heap máximo que puede configurar para el proceso
del Servicio de integración de datos:
Propiedad Descripción
Tamaño de Cantidad de RAM asignada a la máquina virtual de Java (JVM) que ejecuta el servicio de
heap máximo integración de datos. Esta propiedad se utiliza para aumentar el rendimiento. Añada una de las
siguientes letras al valor para especificar las unidades:
- b para bytes.
- k para kilobytes.
- m para megabytes.
- g para gigabytes.
El valor predeterminado es 640 megabytes.
Nota: Considere la posibilidad de aumentar el tamaño de heap máximo cuando el servicio de
integración de datos necesite procesar grandes cantidades de datos.
Por ejemplo, en la siguiente configuración el servicio de integración de datos acepta 200 solicitudes HTTP
simultáneas, pero sólo 10 son solicitudes simultáneas del servicio web:
Cuando el servicio de integración de datos recibe 20 solicitudes de servicio web, 10 solicitudes de servicio
web fallan porque el servicio web solo puede aceptar 10 solicitudes simultáneas.
Para evitar que las solicitudes de servicio web fallen cuando el servicio web alcanza el número máximo de
solicitudes simultáneas, configure el mismo valor máximo para el proceso del servicio de integración de
datos y el servicio web. Cuando el número de solicitudes enviadas al servicio de integración de datos excede
el número máximo de solicitudes simultáneas, las solicitudes adicionales permanecen acumuladas hasta
que el proceso del servicio de integración de datos está disponible para procesar las solicitudes.
Propiedad Descripción
Tiempo para Número de milisegundos que la instancia de DTM permanece abierta tras completar la última
mantener DTM solicitud. Las solicitudes de servicio web que se han emitido en la misma operación pueden
reutilizar la instancia abierta. Utilice el tiempo para mantener para aumentar el rendimiento cuando
el tiempo necesario para procesar la solicitud sea corto en comparación con el tiempo de
inicialización para la instancia de DTM. Si la solicitud genera un error, la instancia de DTM finaliza.
El valor predeterminado es 5000.
Nota: La capacidad de utilizar una instancia del DTM existente aumenta el rendimiento. DIS
requiere recursos adicionales para iniciar una instancia del DTM para cada solicitud. Mantener el
DTM activo consume memoria. Por tanto, los usuarios deben tener en cuenta el consumo de
memoria al configurar esta opción.
Propiedad del servicio web para configurar una instancia del DTM activa 87
Almacenamiento en memoria caché del conjunto de
resultados de un servicio web
Cuando se configura el almacenamiento en memoria caché del conjunto de resultados, el servicio de
integración de datos almacena en la memoria caché los resultados del proceso DTM asociado con cada una
de las solicitudes de servicio web. El servicio de integración de datos almacena en la memoria caché los
resultados durante el período de vencimiento que configure. Si un cliente externo repite la misma solicitud
antes de que venza el período establecido, el servicio de integración de datos devolverá los resultados
guardados en la memoria caché.
Tenga en cuenta la siguiente solución para los cuellos de botella de la memoria caché del conjunto de
resultados:
El almacenamiento en memoria caché del conjunto de resultados permite que el servicio de integración
de datos utilice los resultados almacenados en memoria caché para las solicitudes de un servicio web.
Para usuarios que ejecuten consultas idénticas dentro de un breve espacio de tiempo, puede resultar
beneficioso utilizar el almacenamiento en la memoria caché de conjunto de resultados para que las
consultas sean más rápidas.
El servicio de integración de datos almacena en la memoria caché el conjunto de resultados para los
servicios web por usuario cuando el servicio web utiliza la seguridad WS. El servicio de integración de
datos almacena la memoria caché por el nombre de usuario proporcionado en el token username de la
solicitud de servicio web. Cuando el servicio de integración de datos almacena en memoria caché los
resultados por usuario, solamente devuelve los resultados almacenados en memoria caché al usuario
que ha enviado la solicitud de servicio web.
Tenga en cuenta las siguientes soluciones los cuellos de botella del servicio web:
Cuando configure las propiedades del servicio web para un servicio web implementado, puede
especificar el nivel de seguimiento del registro. El nivel de seguimiento determina los tipos de registros
que el servicio de integración de datos escribe en la ubicación del registro de tiempo de ejecución. El
nivel de seguimiento del servicio web determinado es INFO. Cuando el nivel de seguimiento está
establecido como FINEST o ALL, el rendimiento puede reducirse porque el servicio de integración de
datos escribe más registros en el archivo de registro. El impacto en el rendimiento al establecer el nivel
de seguimiento en FINEST o ALL es el mayor cuando el servicio web utiliza seguridad HTTPS y WS.
Nota: Si elimina la carpeta WS para vaciar los registros, debe volver a crearla. Detenga el servicio de
integración de datos antes de eliminar y volver a crear la carpeta de WS.
Active la propiedad Omitir registros para impedir que el servicio de integración de datos genere archivos
de registro cuando la solicitud de servicio web se complete satisfactoriamente. El nivel de seguimiento
de los servicios web debe establecerse en INFO o superior en el servicio de integración de datos.
Agrupación de conexiones
La agrupación de conexiones es un marco para almacenar en caché la información de conexión de base de
datos usada por el servicio de integración de datos. Esto aumenta el rendimiento mediante la reutilización de
la información de conexión almacenada en la memoria caché.
90
Propiedades de agrupación en objetos de conexión
Puede editar las propiedades de agrupación de conexiones en la vista Agrupación para una conexión de base
de datos.
El número de bibliotecas de grupos de conexiones depende del número de procesos del Servicio de
integración de datos o de procesos DTM en ejecución. Cada proceso del Servicio de integración de datos o
proceso DTM mantiene su propia biblioteca de grupos de conexiones. Los valores de las propiedades de
agrupación son para cada biblioteca de grupos de conexiones.
Por ejemplo, si se establece el número máximo de conexiones en 15, cada biblioteca de grupos de
conexiones puede tener un máximo de 15 conexiones inactivas en el grupo. Si el Servicio de integración de
datos ejecuta tareas en procesos locales independientes y hay trse procesos DTM en ejecución, puede tener
un máximo de 45 instancias de conexión inactiva.
Para reducir el número total de instancias de conexión inactivas, establezca el número mínimo de
conexiones en 0 y reduzca el tiempo máximo de inactividad para cada conexión de base de datos.
En la siguiente tabla se describen las propiedades de agrupación de conexiones de base de datos que se
pueden editar en la vista Agrupación para una conexión de base de datos
El valor predeterminado está habilitado para DB2 para i5/OS, DB2 para z/OS, IBM DB2, Microsoft SQL
Server, Oracle y conexiones ODBC. La opción predeterminada está deshabilitada para las conexiones
Adabas, IMS, Secuenciales y VSAM.
De manera predeterminada, está habilitado para las conexiones de Microsoft SQL Server, IBM DB2,
Oracle y ODBC.
Número mínimo de instancias de conexión inactivas que un grupo mantiene para una conexión de base
de datos después de que se alcance el tiempo máximo de inactividad. Este valor debe ser igual o inferior
al número máximo de instancias de conexión inactivas. El valor predeterminado es 0.
Número máximo de instancias de conexión inactivas que un grupo mantiene para una conexión de base
de datos antes de que se alcance el tiempo máximo de inactividad. Este valor debe ser un número
mayor que la cantidad mínima de instancias de conexión inactivas. El valor predeterminado es 15.
Número de segundos que una instancia de conexión que supera el número mínimo de instancias de
conexión puede permanecer inactiva antes de que el grupo de conexiones la descarte. El grupo de
conexiones omite el tiempo de inactividad cuando la instancia de conexión no supera el número mínimo
de instancias de conexión inactivas. El valor predeterminado es 120.
Agrupación de conexiones 91
Tamaño del paquete de red de la base de datos
Si lee o escribe en destinos de Oracle, ASE Sybase, o Microsoft SQL Server, puede mejorar el rendimiento
incrementando el tamaño del paquete de red basado en la base de datos desde la que lee o en la que
escribe. Aumentar el tamaño de paquetes de red permite que paquetes de datos de mayor tamaño puedan
cruzar la red al mismo tiempo.
Tenga en cuenta las siguientes soluciones para los cuellos de botella de tamaño de los paquetes de red de la
base de datos:
Aumente el tamaño de paquetes de red de base de datos para una base de datos Oracle.
Puede aumentar el tamaño del paquete de red del servidor de la base de datos en [Link] y
[Link]. Consulte la documentación de la base de datos para obtener más información sobre
cómo aumentar el tamaño del paquete, si es necesario.
Aumente el tamaño de paquetes de red de base de datos para una base de datos ASE Sybase.
Consulte la documentación de la base de datos para obtener información sobre cómo aumentar el
tamaño del paquete. También debe cambiar el tamaño del paquete para ASE Sybase en el objeto de
conexión relacional en el servicio de integración de datos para que refleje el tamaño del paquete del
servidor de la base de datos.
Aumente el tamaño de paquetes de red de base de datos para una base de datos de Microsoft SQL Server.
Consulte la documentación de la base de datos para obtener información sobre cómo aumentar el
tamaño del paquete. También debe cambiar el tamaño del paquete para Microsoft SQL Server en el
objeto de conexión relacional en el servicio de integración de datos para que refleje el tamaño del
paquete del servidor de la base de datos.
A cuellos de botella
en UNIX 13
Administración del registro del servicio web en Windows 12
nivel de seguimiento de error 89
agrupación de conexiones
optimización de las conexiones 90
propiedades 91
D
ajuste del rendimiento destino del archivo sin formato
método de la optimización de inserción 51 optimización de destino 15
método de optimización basado en el coste 47
método de optimización dataship-join 48
método de optimización de eliminación de ramificaciones 51
método de optimización de inserciones 51
E
método de optimización de predicado 46 efectos secundarios
método de optimización de predicado global 50 descripción 38
método de optimización de primera proyección 45 Transformación de consumidor de servicio web 40
método de optimización de primera selección 50 transformación de SQL 36
método de optimización semi-join 49 eliminación del error de transformación
métodos de optimización 44 optimización de transformación 38
niveles de optimización 45 error de seguimiento
resumen de proceso 11 optimización de la asignación 55
archivos sin formato Estadísticas de supervisión
optimización de destinos para la partición 59 optimización del tiempo de ejecución 66
optimización de orígenes para la partición 59
asignación de memoria
Instancia del DTM activa 87
Servicio de datos SQL 78
F
Servicio web 87 filtros condicionales
solicitudes simultáneas 78 optimización de origen 20
asignaciones
método de optimización de predicado 46
método de optimización de predicado global 50
métodos de optimización 44
H
optimización de particiones 57 herramientas de cliente de terceros
optimización del tiempo de ejecución 74
B I
bases de datos
optimización de destinos para la partición 60 Instancia del DTM activa
optimización de orígenes para la partición 60 Servicio web 87
Intervalos de puntos de comprobación de base de datos
optimización de destino 16
C
cargas masivas
optimización de destino 16
L
cómo habilitar la memoria caché del conjunto de resultados para un lectura de pase individual
servicio de datos SQL optimización de la asignación 54
memoria caché de conjunto de resultados 80
Compresión de mensajes del servicio web
Optimización del servicio web 83
Controladores de JDBC
M
optimización del tiempo de ejecución 75 memoria caché de conjunto de resultados
creación de particiones cómo habilitar la memoria caché del conjunto de resultados para un
optimización 57 servicio de datos SQL 80
93
memoria caché de conjunto de resultados (continuado) optimización de inserción
propiedades de memoria caché de conjunto de resultados 80 descripción 51
memoria caché de la transformación habilitar en la transformación de SQL 37
optimización de transformación 37 Transformación de consumidor de servicio web 40
memoria caché de objetos de datos transformación de SQL 36
configurar 68 optimización de inserciones
descripción 68 descripción 51
memoria caché de índice 68 optimización de la asignación
optimización 70 error de seguimiento 55
tablas administradas por el usuario 68 lectura de pase individual 54
tipos de datos de tabla 69 optimización de conversión de tipos de datos 55
Memoria caché del conjunto de resultados del servicio de datos SQL optimización de la expresión 27
Servicio de integración de datos 79 optimización del filtro 54
memoria caché del conjunto de resultados del servicio web Optimización de la base de datos de Oracle
Servicio de integración de datos 88 optimización de destino 17
método de optimización de inserción optimización de origen 24
inserción de origen 53 optimización de la consulta
método de optimización de inserciones optimización de origen 19
inserción completa 52 optimización de la expresión
optimización de la asignación 27
optimización de las conexiones
N agrupación de conexiones 90
tamaño del paquete de red de la base de datos 92
nivel de optimización completa optimización de origen
descripción 45 filtros condicionales 20
nivel de optimización mínima objeto de datos personalizado 23
descripción 45 Optimización de la base de datos de Oracle 24
nivel de optimización normal optimización de la consulta 19
descripción 45 origen del archivo sin formato 19
nivel de seguimiento de error restricciones 22
Administración del registro del servicio web 89 seleccionar distinto 20
niveles de optimización optimización de primera proyección
descripción 45 descripción 45
número máximo de paralelismos optimización de primera selección
cómo aumentar 58 descripción 50
Transformación de consumidor de servicio web 40
transformación de SQL 36
O optimización de transformación
eliminación del error de transformación 38
objeto de datos personalizado memoria caché de la transformación 37
optimización de origen 23 transformación de agregación 26
objetos de datos lógicos transformación de búsqueda 32
memoria caché en base de datos 68 Transformación de combinación 31
optimización Transformación de consumidor de servicio web 39
efectos secundarios 38 transformación de Java 29
método de la optimización de inserción 51 Transformación de ordenación 35
método de optimización basado en el coste 47 transformación de SQL 35
método de optimización dataship-join 48 Transformación del procesador de datos 26
método de optimización de eliminación de ramificaciones 51 optimización del filtro
método de optimización de inserciones 51 optimización de la asignación 54
método de optimización de primera proyección 45 Optimización del servicio de datos SQL
método de optimización de primera selección 50 Controladores de JDBC 75
método de optimización semi-join 49 herramientas de cliente de terceros 74
métodos de rendimiento de la asignación 44 Optimización del servicio de integración de datos
optimización basada en el coste optimización del tiempo de ejecución 64
descripción 47 Optimización del servicio de repositorio de modelos
optimización dataship-join optimización del tiempo de ejecución 65
descripción 48 Optimización del servicio del analista
optimización de conversión de tipos de datos optimización del tiempo de ejecución 64
optimización de la asignación 55 Optimización del servicio web
optimización de destino Compresión de mensajes del servicio web 83
cargas masivas 16 optimizar solicitudes HTTP 83
destino del archivo sin formato 15 optimización del sistema
Intervalos de puntos de comprobación de base de datos 16 optimización del tiempo de ejecución 71
Optimización de la base de datos de Oracle 17 optimización del tiempo de ejecución
optimización de eliminación de ramificaciones Estadísticas de supervisión 66
descripción 51 Optimización del servicio de integración de datos 64
Optimización del servicio de repositorio de modelos 65
94Índice de
optimización del tiempo de ejecución (continuado) Sugerencias de SQL
Optimización del servicio del analista 64 presentación de Developer Tool 22
optimización del sistema 71
optimización semi-join
descripción 49
optimizar solicitudes HTTP
T
Optimización del servicio web 83 tablas temporales
origen del archivo sin formato descripción 81
optimización de origen 19 tablas virtuales
memoria caché en base de datos 68
tamaño del paquete de red de la base de datos
R optimización de transformación 35
transformación de SQL
restricciones optimización de inserción 36
configurar restricciones 23 optimización de primera selección 36
optimización de origen 22 optimización de transformación 35
propiedades de la optimización de inserción 37
Transformación del consumidor de servicio web
S optimización de transformación 39
Transformación del procesador de datos
seleccionar distinto optimización de transformación 26
optimización de origen 20 transformaciones
Servicio de datos SQL optimización para partición 61
asignación de memoria 78
Servicio de integración de datos
Memoria caché del conjunto de resultados del servicio de datos
SQL 79
U
memoria caché del conjunto de resultados del servicio web 88 UNIX
Servicio web cuellos de botella del sistema 13
asignación de memoria 87
solicitudes simultáneas 85
sistema
cuellos de botella en UNIX, identificación 13
V
cuellos de botella en Windows, identificación 12 Vista de la consulta
solicitudes simultáneas configurar sugerencias 22
Servicio de datos SQL 78
Servicio web 85
sugerencias
Vista de la consulta 22
W
sugerencias de la base de datos Windows
presentación de Developer Tool 22 cuellos de botella 12
Índice de 95