¿Por qué no es posible lograr mejoras de rendimiento solo con índices, de modo que se necesitan otras técnicas como la partición de tablas? La pregunta se relaciona solo con el rendimiento, por supuesto, se pueden colocar diferentes particiones en diferentes espacios de tabla, lo que tiene otros efectos que no se pueden lograr con los índices.
O, en otras palabras, solo en cuanto al rendimiento: ¿es posible lograr las mismas mejoras de rendimiento con los índices que con la partición de tablas?
oracle
performance
paweloque
fuente
fuente
Respuestas:
No, la partición permite que algunos escaneos de tablas se restrinjan a una partición particular. Los índices tienden a ser inútiles si devuelve más del 2 al 4 por ciento de los datos de la tabla. Si sus criterios de selección permiten que la consulta se localice en una partición particular, entonces no será necesario escanear las otras particiones.
Es posible que el optimizador elija usar el escaneo de tablas para algunas particiones e índices para otras. No he visto ningún plan de explicación que indique que está sucediendo.
Si tiene muchos datos históricos, se pueden construir consultas para los datos actuales para limitar las particiones que se consideran a las que contienen datos actuales.
fuente
Para responder directamente a su última pregunta: no, no creo que sean equivalentes. Piense en una tabla muy grande (decenas de GB) que necesitará buscar datos de un día. Usando particiones diarias, escaneará solo los datos de ese día, sin ninguna penalización de espacio, mientras que un índice es una estructura separada que podría no contener suficiente información (y también ocupa espacio, lo que es una preocupación cuando se habla de grandes bases de datos) o puede que no lo suficientemente selectivo
De todos modos, los índices y las particiones no compiten por los mismos beneficios en uso y rendimiento. Debe encontrar el saldo en su base de datos.
fuente