MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Medición del tiempo de ejecución (foro/showthread.php?t=168)

BY_MY 04/01/07 09:50:23

Otra consulta,creo que tiene relacion con esto, Cuando me pongo en modo debuging por ese codigo que tengo que optimizar, si voy linea por linea me salta un dump (yo intuyo que podria ser por los tiempos de respuesta o algo asi pero no tengo ni idea). Posteo el mensaje del dump.


¿podriais decirme algo? porque me pasa a menudo que funciona una transaccion pero en modo debuggin peta :confused: :confused: :confused:



Err.tmpo.ejec. DBIF_RSQL_INVALID_CURSOR
Excep. CX_SY_OPEN_SQL_DB
Fecha y hora 04.01.2007 11:44:03



Txt.brv.
Invalid interruption of a database selection.



¿Qué ha sucedido?
Error in ABAP application program.

The current ABAP program "ZMMPR_LISTADO_BASE_CONTRATOS" had to be terminated
because one of the
statements could not be executed.

This is probably due to an error in the ABAP program.
Unable to perform database selection fully.
record.



Anál.errores
An exception occurred. This exception is dealt with in more detail below
. The exception, which is assigned to the class 'CX_SY_OPEN_SQL_DB', was
neither
caught nor passed along using a RAISING clause, in the procedure
"SELECCIONAR_DATOS" "(FORM)"
.
Since the caller of the procedure could not have expected this exception
to occur, the running program was terminated.
The reason for the exception is:
One of the database selections included a database commit.
The selection was then supposed to continue. Before a
database commit, however, all outstanding database selections must be

LouieBoy 05/01/07 09:11:27

Hola, Esto es pq estas debuggeando una sentencia SELECT... ENDSELECT.
Cuando estas manejan un gran volumen de datos al hacer debuggin peta...
Es uno de los inconvenientes de usar este tipo de instruccion, por eso siempre q puedo vuelco todo el select sobre una tabla interna y luego hago un loop sobre esta y realizo las operaciones q necesite.

Saludos,

LouieBoy

BY_MY 05/01/07 11:26:17

ok gracias. Eso que dices es lo que estoy haciendo pero no por el debbuging sino por repartir las cargas ya que tira casi todo de BB.DD. incluso en select endselect anidados y los estoy pasando a loop at de tablas internas.

Parece ser que asi aumenta el rendimiento.



Muchas gracias y feliz año.

cosmica 08/01/07 22:32:12

Performance
 
Gente: Algunos Tips sobre performance:

- Evitar logica negativa en los selects.
- No utilizar OR's en los SELECTS.
- Utilizar APPEND LINES OF i_tab para unidir dos tablas internas.
- Evitar el loop where, utilizar mejor loop check.
- Evitar el into corresponding fields of table, utilizar into table (poner los campos en el mismo en que fueron definidos en la tabla interna).
- Cuando accedan a tablas transparentes como las MARA, y demas que generalmente contienen muchisimos datos, eviten de ser posible los inner join, porque llevan muchisimo tiempo, traten de realizar selecciones separadas a distintas tablas internas y las unen por alguna tecnica de posicionamiento.
- No utilizar select * a menos que levanten mas del 70% de los campos que tiene la tabla.

Espero que les sirva!
Saludos,

javibest 10/01/07 07:44:28


De eso no estoy totalmente seguro . Puede ser que dentro del select enselect haya introducido un commit work and wait , y puede ser debido a esto por lo que salta el dump .

viaji 24/05/07 08:51:05

hola.
me gustaria empezar a trabajar con estas herramientas de medicion de rendimiento. me he intentado poner con la st05 pero no veo claro que tengo que hacer o que tengo que ver. ese manual que tienes intencion de hacer... como va?? :) o si me puedes (podeis) dar alguna pista para saber como usar esa transacion.

gracias

mekachu 24/05/07 11:42:02

Diferencias entre ST05 y SE30
 
Hola :

Al hilo de todos estos (interesantísimos) post, ¿alguien me puede explicar la diferencia entre estas dos transacciones?.

Tengo que pelearme con una transacción de un programa Z que a todos los usuarios les funciona perfectamente excepto a uno que se pasa horas hasta que consigue entrar en ella, y creo que esto puede serme útil.

Gracias a todos.

piscu 28/01/10 08:22:22

DBIF_RSQL_INVALID_CURSOR --> Solucionado
 
Para todos aquellos que os dé este error en medio de SELECT - ENDSELECT, deciros que yo lo he podido solucionar de la siguiente manera :

Si os fijais en el apartado 'Anal. error' del DUMP sale lo siguiente:

Possible causes in the application program:
Within a loop (SELECT/LOOP/EXEC SQL), one of the following
statements is used:
- MESSAGE (apart from MESSAGE S...)
- COMMIT WORK
- ROLLBACK WORK
- CALL SCREEN
- CALL DIALOG
- CALL TRANSACTION
- SUBMIT
- BREAK-POINT
- WAIT

Yo mientras debugaba el programa veía que SAP me iba haciendo commits automáticos en casi cada sentencia (Mensaje :'El sistema ha ejecutado commit' ) --> Eso es justo lo que causa el dump, LOS COMMITS AUTOMÁTICOS QUE REALIZA SAP MIENTRAS ESTÁS DEBUGANDO.

Solución : Mientras esteis debugando y antes que os salte el dump ir a -> En el menú arriba -> Debugging ---> Base Datos ---> commit (desbloquear).

En la siguiente sesión de debugg (en esta ya no...) el sistema ya no ejecutará commits automáticos y el dump no saltará...


Husos Horarios son GMT. La hora en este momento es 13:46:01.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web