Me interesa saber si hay un beneficio de rendimiento en la partición de una columna numérica que suele ser el objetivo de una consulta. Actualmente tengo una vista materializada que contiene ~ 50 millones de registros. Cuando uso un índice b-tree regular y busco esta columna numérica, obtengo un costo de 7 y resultados de consulta en aproximadamente 0.8 segundos (con caché no cebada). Después de agregar una partición hash global (con 64 particiones) para esa columna, obtengo un costo de 6 y los resultados de la consulta en aproximadamente 0.2 segundos (de nuevo con el caché no preparado).¿Es mejor un índice dividido globalmente (más rápido) que un índice no particionado?
Mi primera reacción es que el índice particionado ha mejorado el rendimiento de mi consulta. Sin embargo, me doy cuenta de que esto puede ser solo una coincidencia y podría depender totalmente de los valores que se buscan, o de otros que no conozco. Entonces mi pregunta es: ¿hay un beneficio en el rendimiento al agregar una partición hash global a una columna numérica en una tabla grande o es el costo de determinar qué particiones de índice escanear? Pesado por el costo de simplemente hacer un escaneo de rango completo en una partición no indexada?
Estoy seguro de que esto, al igual que muchas preguntas de Oracle, se puede responder con un "depende". :) Estoy interesado en aprender qué factores debería considerar para determinar los beneficios de cada enfoque.
Gracias!