Ayuda con la creación de tabla de índices en base de datos oracle 10g

Hola, tengo una duda a ver si me puedes ayudar. Estoy usando Oracle 10g y tengo una tabla de 28 millones de registros pero que crece a una velocidad de unos 2 millones / mes. La estructura de la tabla es la siguiente
*Campo1 (250 valores posibles)
*Campo2 (200 valores posibles)
*Campo3 (100 valores posibles)
*Campo4 (mas de 1 millon de valores posibles)
*Campo5 (fecha)
*Campos6,7,8 y 9 (importes en euros)
La pregunta es que tipo de tabla me conviene crear, standard y luego añadirle indices bitmap o bien crear la tabla de tipo IOT.
Tener en cuenta que las consultas pueden realizarse por cualquiera de los 5 primeros campos con sumatorios de los 5 siguientes (de los importes).
Muchas gracias

1 Respuesta

Respuesta
1
Lo que más te conviene hacer quizás sea una tabla cluster. El problema que te puedes encontrar es que si no incluyes la columna del cluster en todas las consultas el rendimiento puede ir a peor.
La tabla cluster equivaldría a tener físicamente tantas tablas como divisiones del cluster tengas, por tanto, si realizas 50 nodos y tienes 50 millones de registros, quivaldría a tener 50 tablas con 1 millón de registro (desde la parte física, lógicamente es una única tabla y no te enteras de nada) por lo que disgregando por el campo del cluster cuando consultas es como si estuvieras consultando una tabla de 1 millón (imaginate el rendimiento).
Si no puedes encontrar un campo que se adapte (o el tener que cambiar las queries es muy costoso) mejor tabla normal e indices. Las tablas iot son para tablas de muy pocos registros (prácticamente que quepan en un bloque de datos) y con pocos campos (prácticamente los que quepan en una primary key por donde crear el indice).
Los indices bitmap dependen de la cardinalidad de la columna (número de valores posibles) por lo que puedes crear con los primeros campos que me comentas (puedes tener indices normales y bitmap sin problemas).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas