Ver Mensaje Individual
  #10 (permalink)  
Antiguo 26/03/2008, 06:32
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 2 meses
Puntos: 85
Re: tabla de histórico o índices?

Hola,

En threads como estos da gusto participar.

seyko, en Oracle tambien funciona de manera similar, aun cuando no se este pidiendo por un valor en particular, el optimizador puede o no decidir utilizar el indice, los tipos mas comunes de acceso a traves de un indice son,

1. Index Unique Scan, cuando el indice es unique y el filtro de la consulta contiene el campo indexado y se lo compara con un valor, por ejemplo id=5

2. Index Range Scan, el caso que demostraste en PosgreSQL, cuando el filtro de la consulta contiene el campo indexado y se lo compara con un rago de valores, o bien un unico valor pero el indice no es unique. En este caso Oracle decide si utilizar el indice o hacer un full scan sobre la tabla, pueden hacer la prueba solicitando un rango de valores superior al 20% (aprox) de los registros de la tabla.

3. Fast Full Index Scans, un full scan sobre el indice en vez de un full scan sobre la tabla, esto sucede cuando el indice contiene las columnas del select.

MutenRo, si tienes la opcion de usar particionamiento, adelante, tiene muchas ventajas, y el optimizador de Oracle las vera tambien, el solito se da cuenta si tiene que hacer los select sobre una o mas particiones. Tambien tiene las ventajas de administracion que te comentaba antes,

1. Mover particiones a diferentes Tablespaces.
2. Truncar particiones.
3. Exchange de particiones.
4. etc.

En cuanto a las Vistas Materializadas, hay muchas mas cosas para ver, Query Rewrite es una de ellas, donde el optimizador decide en tiempo real si resolver la consulta sobre las tablas originales o ir directamente a la vista materializada, desde ya que tienes que evaluar que consultas se veran beneficiadas con esto, pero hay que destacar que es una tecnologia desarrollada para optimizar funciones de agregados (Sum, Count, etc) y joins sobre grandes tablas.

Saludos