Pregunta

Trabajamos con DB2 LUW (específicamente actualmente estamos en 9.7 FP4) ejecutándose en AIX.

Según las mejores prácticas de IBM, recomiendan que cuando cree una tabla, coloque los datos, los índices y los datos LOB/LONG, cada uno en su propio espacio de tabla.(La razón es un mejor control sobre el disco, el mantenimiento, las copias de seguridad, etc.)

Los espacios de tabla deben estar asociados a grupos de búfer.En este momento, la mayoría de nuestras tablas e índices caben en espacios de tablas y grupos de búfer de 4K.

Normalmente con nuestros scripts configuramos un bufferpool 4K BP4K.Luego configuramos al menos dos tablespaces de 4K (ya que no tenemos muchos LOB):TS_DAT_4K para datos y TS_IND_4K para índices.De forma predeterminada, acabamos de asignar ambos espacios de tabla al bufferpool BP4K.

Lo que me he preguntado:Dado que los índices están en su propio espacio de tabla, ¿deberían también recibir su propio bufferpool?

Mi razón para preguntarme esto se basa en la optimización.Si los índices tienen su propio bufferpool, entonces es más probable que permanezcan en la memoria (en lugar de ser eliminados de la memoria debido a la lectura de registros de la tabla).Esto permitiría un escaneo más rápido de los índices para encontrar los registros en las tablas.Y dado que los índices ya no compartirían el mismo bufferpool con las tablas, ahora pueden permanecer más tablas en la memoria para una recuperación lógica en lugar de una lectura física.Entonces, mi opinión es que esto reduciría la E/S física y, por lo tanto, ayudaría con el rendimiento/mantenimiento de la base de datos.

Tampoco puedo evitar preguntarme si esto es solo una optimización previa, que el 99% de las veces es algo malo, ya que introduce gastos generales adicionales, etc.(especialmente porque aún no hemos identificado que necesitamos grupos de búfer separados según el rendimiento actual.Por supuesto, la aplicación en desarrollo tampoco está en producción todavía y aún necesita un ajuste de la base de datos...)

¿Pensamientos sobre esto?¿Es esta una buena práctica?¿O simplemente optimización previa y pensamiento excesivo?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top