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

insert select

Estas en el tema de insert select en el foro de Oracle en Foros del Web. Hola. tengo una consulta de accion que pobla una tabla temporal. la cosa es que la consulta es rapida (imagina unos 100.000 registros) Ha, en ...
  #1 (permalink)  
Antiguo 26/04/2006, 11:23
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 20 años, 1 mes
Puntos: 0
insert select

Hola. tengo una consulta de accion que pobla una tabla temporal. la cosa es que la consulta es rapida (imagina unos 100.000 registros) Ha, en Oracle 9i.
pero al poner un insert se arrastra...
que podra ser que tarda tanto?, habra alguna forma de hecer que sea mas rapido?
Atte
Mauricio
__________________
Dios es mas grande que tu problema :-)
  #2 (permalink)  
Antiguo 26/04/2006, 11:25
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años, 7 meses
Puntos: 3
Depende de como haz formulado tu select....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #3 (permalink)  
Antiguo 26/04/2006, 17:17
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 20 años, 1 mes
Puntos: 0
Gracias por responder. Pero no entiendo mucho a que te refieres si incluso he comprobado la utilización de indices.
Es mas la consulta tarda dos minutos y con el insert tarda 45 minutos.
Atte
Mauricio
__________________
Dios es mas grande que tu problema :-)
  #4 (permalink)  
Antiguo 27/04/2006, 08:29
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años, 7 meses
Puntos: 3
Bueno, no se, mi comentario personal es que, si dura la consulta 2 minutos, a mi punto de vista, no es un tiempo pequeño. Quizás sea el motivo por el cual demore el insert.
Por que no pruebas haciendo un procedure, haces un cursor de tu consulta, la recorres y por cada registro haces el insert.
Bueno, si deseas hacerlo con el insert select, no se si sea posible especificar más detalles a tu consulta.
Al decir que dependia de como haces tu select, queria decir que si usas dos o más tablas como lo relacionas, que campos tienen en común, si haces los joins necesarios, etc, etc....

Espero que te ayude en algo.....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #5 (permalink)  
Antiguo 27/04/2006, 21:43
 
Fecha de Ingreso: marzo-2003
Ubicación: Ciudad Habana, Cuba
Mensajes: 57
Antigüedad: 21 años, 8 meses
Puntos: 0
me parece que debes examinar bien los indices, pues el insert select de por si es mucho mas rapido que los cursores.
  #6 (permalink)  
Antiguo 28/04/2006, 20:48
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 11 meses
Puntos: 11
el principal problema puede ser que tengas una vista materializada con COMPLETE REFRESH... es decir que por cada insert que realices a la tabla borrara la vista completamente y la regenerara asi que lo mejor es utilizar una vista FAST REFRESH en donde solo actualiza el dato que estas introduciendo.

Leete un poco estos apartados
http://www.psoug.org/reference/views.html
http://www.psoug.org/reference/materialized_views.html
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #7 (permalink)  
Antiguo 02/05/2006, 18:04
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 20 años, 1 mes
Puntos: 0
Es un poco de complicado entender. Pero la solucion puede estar por ahi. En definitiva para hecer un FAST REFRESH deberia hacer algo asi:

CREATE MATERIALIZED VIEW mv_simple
TABLESPACE data_sml
BUILD IMMEDIATE
REFRESH FAST ON COMMIT AS
SELECT * FROM servers;


Muchisimas gracias por tu respuesta.
Atte
Mauricio
__________________
Dios es mas grande que tu problema :-)
  #8 (permalink)  
Antiguo 02/05/2006, 21:52
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 11 meses
Puntos: 11


Bueno trabajo con Oracle desde hace muchos años asi que ya muchas de esas cosas me han pasado
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #9 (permalink)  
Antiguo 26/01/2007, 14:19
 
Fecha de Ingreso: mayo-2005
Mensajes: 103
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: insert select

Hola, tengo un problemita como el tuyo.....

pero yo hago un insert comun y silvestre... son como 1millon de registros y lo tengo en un procedure....

el problema es que se pega, no hace los registros y el programa me envia un mensaje de time out...

si lo hago sin el procedure no me da problemas...

que puede ser??? a alguien le ah ocurrido lo mismo???

gracias!
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 01:50.