MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 16/03/06, 13:59:07
suvjulen suvjulen is offline
Junior Member
 
Fecha de Ingreso: mar 2006
Mensajes: 3
Medición del tiempo de ejecución

hola compañeros Abaperos, soy nuevo en el foro y tengo una preguntilla relacionada con la medición del tiempo de ejecución.

Mediante la SE30 se puede medir el tiempo de ejecución de un programa, pero cual debería ser la gráfica ideal para un programa, demasiada parte de abap, demasiada de acceso a base de datos.

Actualemente tengo un programa que me lleba:

28,8 de Abap
70,8 de Base de datos
0,4 de sistema.

Creo que esto se debe mejorar.

Me podeis hechar una mano?.

gracias.
Responder Con Cita
  #2  
Viejo 16/03/06, 14:29:08
Avatar de tracer
tracer tracer is offline
Administrator
 
Fecha de Ingreso: feb 2006
Localización: España (Madrid)
Mensajes: 503
Hola suvjulen,

Puedo observar que sois unos buenos profesionales , no todo el mundo se molesta en pasar herramientas de análisis de código después de completar los programas.

Me ha parecido tan interesante tu pregunta que he pensado que voy a escribir un artículo con las principales herramientas de análisis y optimización de sap con una pequeña overview .

Contestando a tu respuesta la verdad es que yo personalmente no puedo decirte si estos tiempos son buenos o malos sin conocer que es lo que hace el programa y cual es el tiempo total que dura su ejecución ya que solo nos has dado porcentajes relativos. Además en todo esto influyen muchos factores como nivel de llenado de tablas, tipo de tablas a las que estas accediendo (SIL,...) ....

No se quizás alguien te pueda aportar algo más.
Un saludo
__________________
Si precisas una mano, recuerda que yo tengo dos.
Responder Con Cita
  #3  
Viejo 16/03/06, 15:10:37
suvjulen suvjulen is offline
Junior Member
 
Fecha de Ingreso: mar 2006
Mensajes: 3
MEdición del tiempo de ejecución.

Muchas gracias Tracer.

La verdad es que si que me preocupo por eso, por que estamos accediendo a 4 tablas, lo hacemos mediante uan vista genérica y en realidad el tiempo de ejecución no es excesivo, pero haciendo el trace, veo que ese select se lleba el 62% del proceso....un poco raro la verdad.

Ahora estamos en una situación ideal con pocos usuarios y pocos datos, no quiero ni pensar que pasaria en pleno apogeo....

Se trata del siguiente select:

SELECT codcsan
nhc
episodio
numpre
codcsan_4
nhc_4
codcsan_5
nhc_5
episodio_5
codcsan_6
nhc_6
episodio_6
dni
nombre
apellidos
cip
nass
tip_doc
codi_doc
direccion
poblacion
cod_postal
pais
provincia
codi_mun
telefon
sexo
fecha_nac
perfil
pac_ll_est
tipo_episodio
fecha_ing
hora_ing
fecha_alta
hora_alta
mot_alta
tipo_reg_ec
stipo_reg_ec
tipo_financ
cod_financ
cod_ccaa
cod_ccii
cod_ccee
nom_financ
cognom_financ
direccion_financ
poblac_financ
codpos_financ
provin_financ
pais_financ
telef_financ
nif_financ
numref
cod_pres
cant_pres
um_pres
prec_pres
mon_pres
est_pres
data_ini_pres
hora_ini_pres
data_fin_pres
hora_fin_pres
serv_realiz_pres
gfh_pres
obs_pres
up_org
flg_docc_pres
num_sol_ext
num_ass_urg
fac_impr_sis_ext
factura_ext
pos_factura_ext
fec_factura_ext
numped
posped
numfac
posfac
incidencia
fec_inc
hora_inc
obs_inc
usu_inc
fichact
linfichact
fecfichat
cap
un_pr_ics
un_pr_real
un_neg
pos_fact_scs
activo
FROM z27sd081
INTO TABLE g_t_repositorio
WHERE codcsan IN s_codcsa
AND data_ini_pres IN s_data
AND est_pres IN s_est_pr
AND nhc IN s_nhc
AND numpre IN so_numpr
AND un_neg IN s_un_neg
AND activo EQ space
AND tipo_reg_ec IN s_kdgrp
AND cod_financ EQ g_cliente_scs. "Inclusión de registros SCS

es un poco largo pero las normas de optimización aconsejan este tipo de selects pero no hay manera de bajar ese 62% de tiempo de ejecución total.

Mira que le hemos hecho buffering a la vista, ademas de los indices correspondientes y nada de nada.

saludos.
Responder Con Cita
  #4  
Viejo 16/03/06, 15:49:12
Avatar de tracer
tracer tracer is offline
Administrator
 
Fecha de Ingreso: feb 2006
Localización: España (Madrid)
Mensajes: 503
Pero es un tabla Z .

¿Cuantos registros tiene esta tabla? no debería ser un select muy pesado.

De todas formas asegúrate de acceder por campos clave y si es necesario defínete más índices. Por cierto creo que si metes todos los campos en el select de la tabla da lo mismo poner *.

Un saludo .
__________________
Si precisas una mano, recuerda que yo tengo dos.
Responder Con Cita
  #5  
Viejo 16/03/06, 16:06:03
SapAbapMVO SapAbapMVO is offline
Junior Member
 
Fecha de Ingreso: mar 2006
Mensajes: 16
Thumbs up

Hola Abaperos, el codigo de tu select es bastante como te indican podrias utilizar SELECT * o el move-correspondimg. sobre el tiempo de ejecucion considero que no es mucho el tiempo, tambien depende de la maquina en la que corras SAP, cuantos mandantes existen en el, etc ... podrias apoyarte en algun Basis para despejar tu duda.
cuando trabajes con varias tablas utiliza el JOIN

Saludos desde Ecuador
Responder Con Cita
  #6  
Viejo 29/12/06, 08:55:44
BY_MY BY_MY is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Mensajes: 130
Buenas compañeros.

Yo tengo un problema similar y he realizado pruebas viendo los resultados con las transacciones st05 y se30 (Tiempos de uso de la maquina y tracer). Pero al ser la primera vez que lo realizo no se muy bien que significa toda la informacion que recoje.

La cuestion es que necesito optimizar una transaccion que tarda 15 Min. y la he bajado a 7 min. pero este tiempo depende tambien de la hora a la que se lance (supongo que por cargas del sistema) de todas maneras creo que podria ser por la maquina aunque en codigo se podria optimizar un poco.


Al ser labores de mantenimiento no es sencillo el cambiar codigo y volver a construirlo todo. ¿Como podria saber si es del codigo o de la maquina? y ¿Hay algun manual que explique u oriente sobre esto?


Un saludo y muchas gracias.
Responder Con Cita
  #7  
Viejo 29/12/06, 08:55:45
BY_MY BY_MY is offline
Senior Member
 
Fecha de Ingreso: nov 2006
Mensajes: 130
Buenas compañeros.

Yo tengo un problema similar y he realizado pruebas viendo los resultados con las transacciones st05 y se30 (Tiempos de uso de la maquina y tracer). Pero al ser la primera vez que lo realizo no se muy bien que significa toda la informacion que recoje.

La cuestion es que necesito optimizar una transaccion que tarda 15 Min. y la he bajado a 7 min. pero este tiempo depende tambien de la hora a la que se lance (supongo que por cargas del sistema) de todas maneras creo que podria ser por la maquina aunque en codigo se podria optimizar un poco.


Al ser labores de mantenimiento no es sencillo el cambiar codigo y volver a construirlo todo. ¿Como podria saber si es del codigo o de la maquina? y ¿Hay algun manual que explique u oriente sobre esto?


Un saludo y muchas gracias.
Responder Con Cita
  #8  
Viejo 02/01/07, 07:06:50
LouieBoy LouieBoy is offline
Member
 
Fecha de Ingreso: ago 2006
Mensajes: 86
Buenas, A ver... si ejecutais una herramienta de medicion varias veces podeis haceros una idea de lo q puede tardar el programa, me explico, si ejecutas la herramienta 20 veces, y el programa tarde de entre 10 a 15 minutos (para decir algo...) entonces es "problema" del programa si el tiempo que he mencionado antes varia de 10 a 20 luego 30, 40, otra vez 20, etc.. eso significa q la ejecución es lenta por culpa de sobrecarga del sistema, es cuestión de hacer un poco de estadistica .
Otra cosa es q quieras optimizar el codigo, mirate cuantos selects-endselect hay por ahi supongo q podras recortar bastante tiempo de ejecucion.
Respecto a lo de la query veo q utilizas muchos rangos en la seleccion, esto te puede relentizar muchisimo la consulta, utilizar mas indices puede ser una buena solucion, otra idea, es intentar delimintar los rangos, como por ejemplo declararlos como obligatorios o intentar utilizar paramentros, en lugar de tanto select option, no se si utilizaras toda la clave para acceder a la tabla pero esto tambien ayuda bastante, otro recurso es utilizar una vista donde hagas una selección previa de dicha tabla donde descartes resultados que por logica no necesitas.

En fin, espero haber sido de ayuda.

Saludos.

LouieBoy
Responder Con Cita
  #9  
Viejo 03/01/07, 15:09:30
jsanz jsanz is offline
Junior Member
 
Fecha de Ingreso: nov 2006
Mensajes: 19
Hola foro.
No llevo mucho tiempo con SAP pero me ha tocado retocar código para optimizarlo hace poco y esto es un poco lo que pude sacar en claro:

Al principio de este hilo se plantearon unos porcentajes. Navegando un poco por documentación nos dicen que estos porcentajes no deberían de exceder del 50% en el caso de sentencias ABAP y del 30% de consultas a BD, dejando el 20% al sistema.
De todas formas estos valores dependen de qué tipo de funcionalidad tenga el programa, claro está, de hecho no suele ser fácil cumplirlos en cuanto tengas unas cuantas tablas con un gran volumen de datos.

·Es importante utilizar tablas internas con SELECT ... INTO TABLE <itab> y
después hacer LOOP en la tabla interna en vez de SELECT ... ENDSELECT.
·Siempre que se pueda utilizar SELECT SINGLE ...
·Es más rápido (según la documentación) un select largo como el que se pone
más arriba que un SELECT * (incluso aunque cojas todos los campos ).
·Utilizar INNER JOIN antes que FOR ALL ENTRIES, y utilizar vistas en lugar que
INNER JOIN.
·Realizar lo select por índices o campos claves de las tablas.

Seguro que hay gente que sabe muuucho más sobre el tema y las herramientas para solucionarlo, pero esa es mi aportación.
Espero que sea de ayuda.

Úlima edición por jsanz fecha: 03/01/07 a las 15:11:51.
Responder Con Cita
  #10  
Viejo 04/01/07, 07:49:05
marcpelao marcpelao is offline
Junior Member
 
Fecha de Ingreso: sep 2006
Localización: Barcelona
Mensajes: 4
Documento Medición Tiempo ejecución?

Hola a todos,

este es mi primer post ... He estado leyendo lo interesante de la medición del tiempo de ejecución. He entrado en las transacciones que nombráis pero no llego a entender varios conceptos. Alguien tiene algun manual sobre el tiempo de ejecución o algo?

gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 07:31:57.


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