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

Trigger o Stored Procedure?

Estas en el tema de Trigger o Stored Procedure? en el foro de Bases de Datos General en Foros del Web. Hola!! Veran mi lio es el siguiente; Tengo una tabla que entre muchos otros datos guarda en cada registro la fecha Llamemola Data IdData int ...
  #1 (permalink)  
Antiguo 04/03/2003, 18:05
Avatar de Leonardo A. Sanchez  
Fecha de Ingreso: julio-2000
Ubicación: Mexico D.F.
Mensajes: 151
Antigüedad: 23 años, 10 meses
Puntos: 0
Trigger o Stored Procedure?

Hola!! Veran mi lio es el siguiente; Tengo una tabla que entre muchos otros datos guarda en cada registro la fecha
Llamemola

Data
IdData int
Grupo int
Campo1 text
Fecha datetime

Y tengo un alto volumen de informacion siendo introducida en esta tabla (10000 registros o mas a la vez), mi problema consiste en que en la pagina que estoy haciendo tengo que mostrar la informacion colocada en esa tabla, que periodo representa, en otras palabras, tengo que colocar Max(Fecha) y Min(Fecha).

Hacer esta consulta me resulta facil cuando solo tengo 500 o 600 mil registros, pero ahora que manejo al rededor de 1 millon, ya me salen errores de timeout en mi script.

He pensando en que mejor internamente se deberia poder almacenar en una minitabla, donde pudiera almacenar por grupo, la fecha maxima y minima de los datos alli almacenado.

Mi problema es que no se si sea lo mejor, ya que cuando cargo informacion la cargo toda de una, osea en una sola tanda cargo de a 10 mil o 20 mil.

Y la segunda es que no tengo experiencia con Triggers o Stored Procedures.

Que me aconsejan y como podria estructurar uno u otro??
__________________
En las manos de su manejador, la vida de Michael Jordan vale unos 20 millones, en las manos de Dios, cuanto crees que valdria tu vida? Entregasela y el hara de tu vida la mas valiosa del mundo entero.
  #2 (permalink)  
Antiguo 05/03/2003, 08:49
Avatar de DanielRey
Usuario no validado
 
Fecha de Ingreso: enero-2001
Ubicación: Mendoza
Mensajes: 630
Antigüedad: 23 años, 3 meses
Puntos: 1
Hola Leonardo

No soy un experto, pero creo que te puedo dar una manito con esto.

Si creas un índice por fecha para esa tabla, maxfecha y minfecha se obtienen de una sencillísima conulta al índice, el primer y último elementos del índice.

Suerte
  #3 (permalink)  
Antiguo 14/03/2003, 12:52
Avatar de Leonardo A. Sanchez  
Fecha de Ingreso: julio-2000
Ubicación: Mexico D.F.
Mensajes: 151
Antigüedad: 23 años, 10 meses
Puntos: 0
Ya indexe la columna de grupo y fecha, y aun sigue siendo lenta, cuando le digo que:

select min(fecha) as fechainicio, max(fecha) as fechafinal from tabla where grupo='1'

Asi que siguo pensando que a lo mejor lo mejor que puedo hacer es un trigger que se dispare con cada insert en mi tabla principal, y comparara con otra tabla donde yo guardara una fechainicio y fechafinal y me actualizara si fuera el caso.

TablaPrincipal

IdTablaPrincipal
IdGrupo
Valor
Fecha


TabladeFechas

IdTabladeFechas
IdGrupo
FechaInicial
FechaFinal

Que en cada insert hiciera algo asi

Si

TablaPrincipal.Fecha(la que acabo de insertar) < TabladeFechas
Cuando TablaPrincipal.Grupo() = TabladeFechas.Grupo

Entonces

TabladeFechas.FechaInicial=TablaPrincipal.Fecha


Y tambien tendria que revizar si.

Si

TablaPrincipal.Fecha(la que acabo de insertar) > TabladeFechas
Cuando TablaPrincipal.Grupo() = TabladeFechas.Grupo

Entonces

TabladeFechas.FechaFinal=TablaPrincipal.Fecha
__________________
En las manos de su manejador, la vida de Michael Jordan vale unos 20 millones, en las manos de Dios, cuanto crees que valdria tu vida? Entregasela y el hara de tu vida la mas valiosa del mundo entero.
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 19:01.