Organización de tablas por hash para acceso rápido a filas individuales
Puede organizar tablas para acceso hash a fin de mejorar el rendimiento de las consultas que utilizan predicados de igualdad exclusivos para acceder a filas individuales.
Acerca de esta tarea
Al crear una tabla o alterar una tabla existente, puede elegir organizar la tabla mediante hash. También puede alterar el tamaño del espacio hash en las tablas que ya ha organizado hash.
Las tablas que se organizan mediante hash son eficaces para que accedan a ellas las consultas que utilizan predicados de igualdad que son exclusivos de las filas individuales de la tabla. Cuando Db2 selecciona una vía acceso de hash, puede que solo se necesite una E/S para recuperar la fila de la tabla, lo que reduce el uso de CPU. El acceso hash, no obstante, exige espacio de disco adicional para almacenar datos.
Las tablas que sean buenos candidatos para la organización de hash tienen los atributos siguientes:
- Db2 utiliza búsqueda de valor exclusivo en un índice para acceder a filas de la tabla, o la tabla está en la memoria. Cuando se organiza una tabla para acceso de hash, Db2 impone automáticamente la exclusividad en una columna o un conjunto de columnas que se especifique. Por tanto, no es necesario imponer la exclusividad por separado.
- Db2 no utiliza exploraciones de rango para acceder a filas de la tabla.
- Db2 utiliza búsquedas aleatorias para acceder a datos de la tabla.
- La tabla se usa con más frecuencia para consultas que una fila de la tabla satisfag, como cosa más habitual.
- El tamaño de los datos de la tabla es relativamente estático, o el tamaño máximo de los datos es conocido.
- El tamaño de las filas individuales de la tabla no varía mucho.
- Al menos caben 20 filas en una página de datos.
Las tablas que tienen un tamaño estable o predecible son buenos candidatos para la organización de hash. Las tablas con un tamaño inferior al espacio hash especificado no utilizan su espacio de disco asignado de forma eficaz. Db2 crea de forma automática un índice de desbordamiento cuando se organiza una tabla mediante hash. Si una tabla supera el espacio hash especificado, Db2 coloca filas adicionales en el índice de desbordamiento. Las filas que se colocan en este índice no están habilitadas para acceso de hash y Db2 utiliza el índice para recuperarlas.
Las restricciones siguientes se aplican a las tablas que se organizan por hash:
- Los
tipos siguientes de tablas y espacios de tabla no se pueden organizar para
acceso de hash:
- Espacios de tabla LOB
- Espacios de tabla XML
- Espacios de tablas MQT
- Tablas que tienen tablas clonadas
- Los índices agrupados en clúster no son compatibles con las tablas que se organizan para acceso hash.
- El acceso de hash no se utiliza para acceder a tablas de un bloque de consulta que contenga una unión en estrella (JOIN_TYPE = S).
- El acceso de hash no se us para un cursor desplazable dinámico sensible con en lista (in-list) y multielemento.
- No se utiliza el paralelismo para los grupos paralelos cuando se utiliza el acceso hash.
Hay cursores desplazables disponibles en la tabla de resultados de una consulta con un predicado en lista (IN list).
Puede organizar las tablas por hash únicamente si dichas tablas están en espacios de tablas universales de partición por crecimiento o particionados por rango y que utilizan formato de fila reordenado. Las tablas con formato de fila básico no pueden sacar partido de la organización de hash.
