Manejo de Tablespaces

Que tal, tengo una duda en cuanto al manejo de los espacios de tablespace en oracle 10g.

Mi duda es en cuanto al almacenamiento de segmentos en los datafile de un tablespace (TBS), un ejemplo tengo un TBS que consiste de 5 Datafiles, en estos tengo almacenados Tablas e Indices, me di a la tarea de mover los Indices a un tablespace distinto para mejorar las lectura y balancear las entradas a disco teniendo Tablas e indices por separado, hasta ahi no tengo problema. mi duda es ¿Que pasa con el espacio libre de los datafiles, se puede agrupar el espacio ocupado y usar los datafiles libres en otro tablespace?

 

Saludos y gracias.

En principio el espacio libre que ocupaban los índices quedará disponible para reutilizar en el tablespace.

Si no tienes previsión de que el tablespace llegue a ocupar todo ese espacio, a mi parecer la manera más simple de reorganizarlo es crear otro nuevo tablespace para los datos, con los ajustes de tamaño y datafiles que más te convengan, y mover el resto de objetos a ese nuevo tablespace, eliminando después el original. Así de paso también compactarás los datos y mejorarás la eficiencia.

Eso sí, asegúrate de haver movido todos los objetos (tablas, vistas, procedures, etc) que contenga el tablespace antes de eliminarlo.

 

Para la optimización de los índices también te puede ser muy útil utilizar de vez en cuando un COALESCING:

ALTER INDEX mi_indice COALESCE;

Puedes consultar el apartado Consider Costs and Benefits of Coalescing or Rebuilding Indexes de la Guía de Administración de Oracle para decidir qué opción utilizar en cada momento.