Home > Bases de Datos, Oracle > Mover índices a otro tablespace

Mover índices a otro tablespace

Muchas veces para disminuir la contención de disco por I/O es necesario tener los objetos en tablespaces diferentes ya sea para data y para indices, para esto primero que todo deben existir estos tablespaces (se crean con la sentencia CREATE TABLESPACE).

Para el ejemplo los tablespaces ya existen

Tablespaces para Tabla y para Indices

Para mover objetos que no correspondan al tipo de datos que se almacena en cada tablespace, por ejemplo hay tablas que están almacenadas en tablespaces de índices y viceversa se debe determinar primero que todo identificar estos objetos, y para esto podemos usar el script

select owner, tablespace_name,segment_type, count(segment_type)
from dba_segments
group by tablespace_name,owner,segment_type
order by 1 asc

Tabla de objetos
Tabla de Objetos

Si nos fijamos bien en la tabla anterior, podemos ver que hay índices que estan en el tablespace “DATOS“, “LABORATO_DATA” y “USERS” en donde se registran 2, 11 y 31 índices respectivamente.

Ahora bien estos índices encontrados anteriormente son candidatos para que sean movidos a su ubicación correcta, es decir al tablespaces de índices “LABORATO_INDEX

Para mover estos índices a otro tablespaces se deben identificar, se puede usar la siguiente query:

select owner, tablespace_name,index_name from dba_indexes
where owner='LABORATO'
and tablespace_name in ('DATOS', 'USERS','LABORATO_DATA')
order by 2,3 asc

OBS: Aca usé el nombre del Owner y los tablespaces que había determinado anteriormente, aca dependerá de cada instancia

El resultado de los índices es el siguiente:

Indices que deben ser movidos

Una vez que ya tenemos estos indices identificados, procedemos a generar la consulta que los va a mover.

Para mover un índice de un tablespace a otro se usa la siguiente consulta:

Alter index NOMBRE_INDICE rebuild tablespace TBS_DESTINO;

OBS: El movimiento de índices (sin mover tablas) se usa para mover estos objetos de ubicación. Si uno quiere mover tablas de un tablespace a otro, necesariamente deberá mover y recrear los indices asociados a las tablas, ya que sino estos índices quedaran en estado invalido

  1. No comments yet.
  1. No trackbacks yet.