Evite explorar tablas completas

Cuando utiliza las API (interfaces de programas de aplicación) para enumerar los objetos de la base de datos, puede especificar filtros que reduzcan los resultados que desea recuperar. En estos filtros, puede especificar los valores e intervalos de atributos de objeto.

Cuando se procesan consultas de base de datos, la información de filtro se traduce a cláusulas WHERE en sentencias SQL (Lenguaje de consulta estructurada). Estas cláusulas WHERE correlacionan los atributos de objeto con nombres de columna de las tablas de base de datos afectadas.

Si en la consulta se especifica un filtro que no traduce a una columna de tabla indexada, la sentencia SQL probablemente provocará que se explore la tabla. Esta exploración impacta negativamente en el rendimiento y aumenta el riesgo de puntos muertos. Aunque este impacto en el rendimiento se puede tolerar si sucede sólo unas pocas veces al día, podría influir desfavorablemente en la eficacia si ocurriera varias veces por minuto.

En tales circunstancias, un índice personalizado puede reducir notoriamente el impacto. En una situación de cliente real, un índice personalizado ayudó a reducir el tiempo de respuesta de la API de 25 segundos a 300 milisegundos. En lugar de leer 724.000 filas de la tabla de base de datos, sólo hubo que leer seis.

En función de los criterios de filtro que especifique, puede que no se incluyan algunas columnas en un índice. Si este es el caso y si se utiliza una exploración de tabla, que provoca un rendimiento lento de la consulta, compruebe la vía de acceso de la sentencia, utilizando DB2 Explain, por ejemplo. Si es necesario, defina un nuevo índice.


Condiciones de uso |

Última actualización: Wed Apr 19 20:53:12 2006

(c) Copyright IBM Corporation 2005, 2006.
Este centro de información está basado en tecnología Eclipse (http://www.eclipse.org)