Pregunta

Estoy interesado en saber si hay una mejora en el rendimiento de la partición de una columna numérica que es a menudo el blanco de una consulta. Actualmente tengo una vista materializada que contiene ~ 50 millones de discos. Cuando se utiliza un índice de árbol B regular y buscar por esta columna numérica consigo un coste de 7 y resultados de consulta en unos 0,8 segundos (con caché no imprimado). Después de añadir una partición de hash mundial (con 64 particiones) para esa columna consigo un coste de 6 y de consulta resultados en aproximadamente 0,2 segundos (de nuevo con caché no imprimado).

Mi primera reacción es que el índice particionado ha mejorado el rendimiento de mi consulta. Sin embargo, soy consciente de que esto puede ser sólo una coincidencia y podría ser totalmente dependiente de los valores que se busca en los demás, o que no sepa. Así que mi pregunta es: ¿hay un beneficio en el rendimiento de añadir una partición de hash global a una columna numérica en una mesa grande o es el costo de determinar qué particiones de índice para escanear fuera presionado por el costo de sólo hacer un análisis completo rango en una partición no indexada?

Estoy seguro que esto, al igual que muchas preguntas de Oracle, se puede responder con un "depende". :) Estoy interesado en saber cuáles son los factores que debería considerar para determinar los beneficios de cada enfoque.

Gracias!

¿Fue útil?

Solución

Estoy bastante seguro de que haya encontrado esta referencia en su investigación - tablas e índices con particiones . Sin embargo, me importa un enlace a ella, si alguien está interesado, este es un muy buen material acerca de las particiones.

Directo al grano - índice con particiones simplemente se descompone el índice en piezas (16 en su situación) y difundir los datos en función de su clave hash partición. Cuando se desea utilizarlo, Oracle "calcula" el hash de la clave y determinar en qué sección para continuar con la búsqueda.

Saber índice de búsqueda de trabajos, en los datos realmente enorme, creo que es mejor elegir el índice particionado con el fin de disminuir el índice de árbol que atraviesan (índice normal). Realmente depende de los datos, que está en la mesa (la forma regular de árbol índice está compuesto) y se hashing y salto directo al nodo inferior más rápido que el árbol de recorrido regular desde el nodo de inicio.

Por último, debe tener más confianza con los resultados de las pruebas. Si una técnica da mejores resultados en los datos exactos que otros no se preocupe de ponerlo en práctica.

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