Contexto: base de datos Oracle 10.¿Usaría particiones sería una buena idea en tal situación?
En una tabla bastante grande (varios millones de registros) recientemente empezamos a ver algunos problemas de rendimiento. La tabla tiene algunos comportamientos/condiciones especiales.
- su mayoría escribir una vez y luego nunca se cambió de nuevo
- durante el primer día o los registros se clasifican desde 0..N (permite llamar a esa clase de columna). registros podrían obtener reclasificados varias veces durante el primer día
- nuevas entradas se agregan a la clase 0 significa "no ha sido clasificado"
- cada hora o así un proceso clasifica las nuevas reocrds y les da una nueva clase de 1..N
- todos los lectores están interesados únicamente en la clase 1
- todos los registros anteriores a un día casi no cambian su clase,> 1 está siendo ordenados en una después de unos pocos días
Ahora, mientras se realiza la mayor parte de acceso a la clase 1, esa columna a menudo está involucrada en consultas (clase = 1), junto con otras condiciones ons. Tenemos un índice en la columna de clase, y luego nuevamente para ciertas otras columnas.
A mi pregunta: ahora estamos pensando en dividir esa tabla por clase. Por lo que he entendido, esto haría que indexar/trabajar con los datos sea más rápido, ya que la clase = 1 ya está separada del resto de los datos y, por lo tanto, su acceso es implícitamente más eficiente. ¿Es esto correcto?
Si está de acuerdo en que esta es una buena idea, leeré más a fondo el tema.
Gracias Saludos
Actualizar 2010.11.30
Muchas gracias por la entrada. No sabía que era una opción adicional :) gracias por señalar eso (antes de invertir demasiado tiempo en ello). Pero al lado del problema de la licencia, me parece que la partición no es necesariamente una buena solución en este contexto.
El particionamiento, al menos para Oracle, es una opción costosa, y de ninguna manera apropiada en todas las situaciones. – APC