Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Problema con Indices

Estas en el tema de Problema con Indices en el foro de Oracle en Foros del Web. Hola a Todos: Tengo un problema hace unas semanas, con l base de datos de mi trabajo, ya que genealmente nuestros sistemas generaban todos los ...
  #1 (permalink)  
Antiguo 11/11/2008, 15:19
SgT
 
Fecha de Ingreso: noviembre-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Problema con Indices

Hola a Todos:

Tengo un problema hace unas semanas, con l base de datos de mi trabajo, ya que genealmente nuestros sistemas generaban todos los procesos en un solo tablespace de la base de datos que contenia tablas, datos, indices y PK.

El problema es que por politicas informaticas, se dijo que los indices y Primary Key se dejaran en un tablespace llamado "indices" y las tablas y datos se dejaran en otro tablespace llamado "Tablas" (Solo ejemplo de nombres Tablespace)...

El problema es que al hacer esto, los procesos que genera el sistema se demoran mas de lo normal, ya que no se estan indexando los datos. El script que genero es el siguiente:

CREATE INDEX Indices.UTRH004 ON tablas.TRH004
(EMPCOD, PERSRUT, CTRDESDE)
LOGGING
TABLESPACE indices
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;




ALTER TABLE tablas.TRH004 ADD (
CONSTRAINT TRH004_PK PRIMARY KEY (EMPCOD, PERSRUT, CTRCORR)
USING INDEX
TABLESPACE Indices
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
));

Esta Bien como estoy generando indices y PK en el otro tablespace?
Que tan efectivo es separar indices de tablas de datos?
Mejora realmente el rendimiento?

Bueno ojala que me puedan ayudar y yo poder ayudar en este foro al que me integro

Gracias
  #2 (permalink)  
Antiguo 12/11/2008, 13:12
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: Problema con Indices

Dos cosas...

1. Para mover un índice de un tablespace a otro, solo hace falta ejecutar

Código:
alter index <index_name> rebuild <tablespace_destino>;
2. No vas a ganar absolutamente nada (en cuanto a performance) por separar los índices de las tablas en tablespaces diferentes, es solo un gran mito. La razón es muy simple, Oracle lee primero el índice para después leer la tabla, esto lo hace en forma secuencial, no paralela.

Saludos
  #3 (permalink)  
Antiguo 12/11/2008, 22:21
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 8 meses
Puntos: 7
Respuesta: Problema con Indices

Cita:
Iniciado por matanga Ver Mensaje
2. No vas a ganar absolutamente nada (en cuanto a performance) por separar los índices de las tablas en tablespaces diferentes, es solo un gran mito. La razón es muy simple, Oracle lee primero el índice para después leer la tabla, esto lo hace en forma secuencial, no paralela.

Saludos
solo complementando, muchos dbas hablan de performance cuando organizan los objetos de la base de datos de esa manera, yo a nivel desarollo puedo decir que lo que se logra es tener organizados los objetos de la base de datos
__________________
Blogzote.com :-) Mi blog
  #4 (permalink)  
Antiguo 13/11/2008, 05:57
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Problema con Indices

Si, creo que es temas mas de organización que de rendimiento.

Como una alternativa a lo que comenta Matanga, mejor que hacer un rebuild es hacer un DROP y CREATE. El tiempo en los dos casos va a ser muy similar y si al segundo caso le dejas la coletilla COMPUTE STATISTICS, lanzas las estadisticas al mismo tiempo.

Es una costumbre que tengo ( aconsejado por mis DBA's ).

Un saludo
  #5 (permalink)  
Antiguo 13/11/2008, 11:50
SgT
 
Fecha de Ingreso: noviembre-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con Indices

Yo la verdad es que tambien pensaba que era solo un mito y que no optimizaba los tiempos de respuestas...

Bueno en todo caso muchas gracias...porque igual habia hecho un rebuild, pero sin mejorar los tiempos de respuesta...

Otra duda....es que si hago los indices en el mismo tablespace que el de las tablas mis tiempos mejoran, pero si los hago en tablespaces separados mis tiempos se llegana duplicar al tiempo estipulado.
Por ejemplo:
Proceso de pago de 11.000 trabajadores = 4 horas (en el mismo tablespace indices y tablas)
Proceso de pago de 11.000 trabajadores = 10 horas (separados tablespace indices y tablespace tablas)

a que se debera esto?

Gracias.
  #6 (permalink)  
Antiguo 14/11/2008, 18:03
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: Problema con Indices

¿ todos los discos/tablespaces están en la misma máquina ?. La BBDD está en RAC ?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:21.