PIENSOPIENSO: Porque empeora la performance de este programa?

En la base de datos, tengo una tabla que se crea asi:

Tabla1
*Campo1 N(4)
Campo2  N(4)
Valor C(20)
Fecha Date

y defino un indice de usuario por el campo Fecha.

Tengo un programa (procedure GeneXus)

for each order Fecha
  where &FechaInicial <= Fecha and Fecha <= &FechaFinal
  Msg(Valor,status)
endfor

que funciona muy bien.

Se reorganiza desde GeneXus la base de datos y se cambia la clave de la tabla Tabla1 quedando asi:

Tabla1
*Campo1 N(4)
*Campo2  N(4)
Valor C(20)
Fecha Date

Lo que se hace es agregarle un campo mas a la clave primaria.

El procedure no cambia, pero sin embargo luego de reorganizar la tabla empieza a funcionar mucho mas lento que antes. Que puede haber pasado?

Comentarios

  1. Ja, perdiste el índice de usuario, porque al cambiar la clave pasa a ser una tabla nueva... Error de principiante :)

    ResponderBorrar
  2. Como muy bien comenta Marcos el problema es sencillo y también MUY COMÚN.

    Los indices de usuario quedan asociados a la clave de la tabla y no al nombre de dicha tabla. Cada vez que se modifique la clave primaria de una tabla deben Definirse nuevamente los indices de usuario.

    En mi experiencia, es algo que los programadores Genexus no conocen o se olvidan muy a menudo.

    ResponderBorrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.