#1
|
||||
|
||||
Cual forma es mejor.
Tengo el siguiente select:
Y tengo este otro ¿Cual recomiendan que deje? El resultado que espero es traer todas las ordenes de mantenimiento en donde fin programado esté en el futuro (fecha y hora mayor igual a la fecha y hora actual.
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#2
|
||||
|
||||
Ley de vida, simpre evita utilizar sentencias OR en las consultas a las bases de datos. Para mejorar la rutina podrias organizar la tabla interna por la fecha y la hora. de tal forma que al hacer el DELETE la rutina funcione mucho mas rapido. Igual lo mejor que podrias hacer es hacer TEST de rendimiento a tu programa.
SELECT aufnr objid gstrs gsuzs gltrs gluzs INTO TABLE lt_ordenes_pm FROM caufv WHERE autyp = '30' AND bukrs = c_bukrs AND werks = c_werks AND gltrs >= sy-datum. ***Ordena la tabla interna DELETE lt_ordenes_pm WHERE gltrs EQ sy-datum AND gluzs LE sy-uzeit.
__________________
Cordialmente Fabián Leonardo Velásquez P. Consultor SAP ABAP Bogota - Colombia |
#3
|
||||
|
||||
Si, opté por hacer el delete a la tabla interna y tienes razon me olvidé del ordenamiento para hacer el delete mas rápido.
gracias.
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#4
|
||||
|
||||
Porque haciendo el Sort es mas rapido? el delete where va a recorrer todos los registro de la tabla interna, si los encuentra todos juntos o separadas es lo msmo o no?
|
#5
|
||||
|
||||
Al ordenar la TI se indexa la misma, por lo cual posteriores busquedas,inserciones, o actualizaciones sobre la misma se realizan de manera mas veloz.
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
Herramientas | Buscar en Tema |
Desplegado | |
|
|