Hola Alberto,
Por supuesto que puedes crear un INDEX sobre un fichero creado con DDS.
Insisto en que revises los mensajes del INDEX ADVISOR, o ejecutando el
programa en DEBUG y mirando la JOBLOG.
De todas formas, y a riesgo de equivocarme, yo redefiniría la consulta
cambiando el ORDER BY:
DECLARE @CURSOR SCROLL CURSOR FOR SELECT mtanys, mtset, mtqtat
FROM movtda WHERE Mtemp=:@empresa and Mtten=:Ctten and
mtart=:ctart and mttipm='IF'
ORDER BY Mtemp, Mtten, mtart, mttipm, mtanys DESC, mtset DESC
FOR READ ONLY
Crearía un INDEX, (UNIQUE o NO UNIQUE), con: Mtemp, Mtten, mtart, mttipm,
mtanys DESC, mtset DESC
Y haría FETCH FIRST ROW ONLY
El incluir en el ORDER los campos de selección, aunque parece innecesario,
puede ayudar al rendimiento si existe el índice.
Saludos,
---------------------------
Santiago Martí
Dusen, S.A.
---------------------------
[email protected]
s
Enviado por: Para
forum.help400-bou "forum.help400"
[email protected] <[email protected]>
os.es cc
Asunto
22/09/2010 13:34 RE: ultimo registro SQL
Por favor,
responda a
"forum.help400"
<forum.help...@li
stas.combios.es>
Hola
si incluyo el 'max' me obliga a hacer un group by y no puedo, porque lo que
busco es el importe del ultimo movimiento de un articulo determinado,
movimiento que no sé cuando se realizó.
Efectivamente hay un ORDER BY en la clausula. La sentencia es la siguiente:
DECLARE @CURSOR SCROLL CURSOR FOR SELECT mtanys, mtset, mtqtat
FROM movtda WHERE Mtemp=:@empresa and Mtten=:Ctten and
mtart=:ctart and mttipm='IF'
ORDER BY mtanys, mtset
Pero esta sentencia está dentro de un bucle que va leyendo articulo por
articulo y hace unas 5000 lecturas y por lo tanto ejecuta esta sentencia
unas 5000 veces . Se trata de mirar el valor del ultimo movimiento de
cada articulo.
Mi duda viene porque si esto mismo lo hago con SETLL/ READP va bastante más
rápido y algo debo de estar haciendo mal en SQL porque siempre se habla de
que el rendimiento es mejor.
Por cierto, Santiago, el archivo es un archivo definido por DDS
'tradicionales'. Igualmente le puedo crear un indice?
Salut ____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.