Está en la página 1de 4

NOTAS PERFORMANCE SAP

El sistema SAP es implementado como un sistema con arquitectura cliente/servidor


multitier (capa de presentacin, capa de aplicacin y capa de Base de Datos.). Las
capas de Presentacin y Aplicacin del Sistema SAP son escalables, lo que quiere
decir, que pueden agregarse servidores adicionales de frontend y aplicacin para
resolver cuellos de botella de hardware, en contraste, la capa de base de datos el
repositorio centran de datos- no es escalable. De acuerdo a lo anterior, existen dos
objetivos principales para el anlisis de desempeo ABAP: Reducir el tiempo de
ejecucin de los programas en el servidor de aplicacin (Carga de CPU) y reducir la
carga de base de datos. Reducir la carga de dase de datos es de particular, porque
el servidor de base de datos es un recurso central. Si la informacin est disponible en
los buffers de los servidores de aplicacin SAP, obtenerla toma alrededor de
0.1ms/registro. Cuando los registros son ledos del buffer de la base de datos se
necesita aproximadamente 1ms/registro y cuando es necesario leer la informacin
desde el disco, aproximadamente 10ms/registro son necesarios. Un proceso de trabajo
(work process) reserva alrededor de 5MB de memoria, el buffer de tablas de SAP
alrededor de 120MB (40MB para lectura de registros sencillos, 80MB para tablas
genricas) de memoria y los buffers de base de datos alrededor de 500MB (stos son
requerimientos mnimos de un sistema de produccin de SAP). La base de datos puede
alcanzar un tamao de varios terabytes en los discos. La informacin es transferida
entre el frontend y el servidor de aplicacin en bloques de 2-3K c/u, mientras que los
bloques transferidos entre el servidor de aplicacin y la base de datos usualmente
miden 32K.

SQL Trace

Para iniciar el SQL Performance Trace debe de entrar a la transaccin ST05 o escoger el
path de men: System Utilities Performace Trace

Problematic Statements
Algunos componentes de las sentencias SQL pueden provocar que en optimizer use un ndice subptimo o que no use ninguno.

Figura 125: Negaciones en la condicin WHERE.


Las negaciones en la condicin WHERE (operador NOT) usualmente evitarn que el optimizer
considere el campo en cuestin cuando busque un ndice adecuado. Si esto hace imposible el
encontrar un rango de bsqueda adecuado, determinar la lista correspondiente de resultados
puede ser de procesamiento intensivo resultando en tiempos de ejecucin muy largos.
Por lo tanto, debern de ser evitadas las negaciones en campos potenciales de ndice siempre
que sea posible.
En contraste, las negaciones que involucran campos que no estn contenidos en el
ndice, no provocan ningn problema, slo son usados para reducir el nmero de
resultados.

OR VS. IN

Debern de ser reemplazados las condiciones OR internas con condiciones IN


siempre que sea posible, en general, las condiciones OR externas, aquellas fuera del
parntesis de la condicin WHERE son mejores que las clusulas complejas con ORs
internos.

Order by VS short abap


Si se desea ordenar una consulta, se debe de ver esto:
-

Si se ordenara en base al ndice o PK de la BD, hacerlo desde la consulta con


el order by, en caso de querer ordenarlo por otro campo que no sea
ninguno de estos, es conveniente regresar as la consulta, y ordenar con el
SHORT de ABAP, no ordenar con un order by por un campo que no sea PK o
ndice de la BD, eso reduce el performance.

Si se desea que una sentencia SQL devuelva un resultado ordenado, puede ser usada
la clusula ORDER BY para hacerlo en la base de datos o puede usarse la sentencia
ABAP SORT para una tabla interna. La base de datos es un recurso central no escalable,
por lo tanto, deber de usarse ABAP para manejar las operaciones de ordenamiento
siempre que sea posible. Si se est usando el mismo ndice de base de datos para
ordenar los registros de informacin y para seleccionarla (de acuerdo a la clusula
WHERE) tambin puede hacer que la base de datos realice la operacin de
ordenamiento, la base de datos puede manejar el ordenamiento usando el ndice
primario (ORDER BY PRIMARY INDEX), si no se ha usado un ndice primario para
seleccionar la informacin, ORDER BY PRIMARY INDEX ser contra producente.

Ya que no todas las bases de datos soportadas por SAP soportan la sintaxis estndar para
condiciones ON, una sintaxis restringida debe ser usada para asegurar que nicamente JOINs que
devuelvan el mismo set de resultados en todos los sistemas de base de datos sean permitidos:

nicamente puede haber una tabla o vista a la derecha del operador JOIN, no puede tener otra
expresin JOIN.
nicamente AND puede ser usado como operador lgico en una condicin ON.
Cada comparacin en la condicin ON debe de contener un campo de la tabla a la derecha.
Ninguno de los campos en la tabla de la derecha puede aparecer en las condiciones WHERE
del LEFT OUTER JOIN.
Para mayor informacin acerca de la implementacin de funciones JOIN, refirase a la
documentacin ABAP.
Una base de datos lgica es una rutina de lectura reutilizable que, una vez definida, puede ser
usada por mltiples desarrolladores en mltiples aplicaciones.
La estructura de una base de datos lgica define la jerarqua y la secuencia de lectura de los
nodos. La profundidad de la lectura de informacin depende de un reporte de los eventos GET del
programa. La base de datos lgica lee hasta el evento GER ms profundo de todos los nodos que
estn en camino de acceso directo. Los eventos GET son procesados varias veces en un
programa, es decir, una sentencia GET es como un ciclo de procesamiento. Por lo tanto, no deber
de ser programada una sentencia SELECT dentro de un evento GET, ya que esto corresponde a
un SELECT anidado. Derivado de la secuencia predefinida de lectura, debe evitarse el programar
eventos GET que se refieran a nodos jerrquicos profundos que no requieran informacin de nodos
superiores de la jerarqua.
No es recomendable el uso de sentencias SELECT en los bloques GET, ya que tienen los mismos
resultados que un SELECT anidado.
Para mayor informacin acerca de la programacin con bases de datos lgicas,
refirase a la documentacin.

Classic List Processing


Asas

Pueden agruparse elementos de pantalla que de manera lgica deben de estar juntos
usando la extensin BEGIN OF BLOCK <block>. Tambin puede colocarse un marco
alrededor de stos elementos usando WITH FRAME. Se pueden anidar hasta una
profundidad de 5 marcos. Antes de disear una pantalla de seleccin deber de estar
familiarizado con las guas de diseo de pantallas enumeradas en la transaccin BIBS.

Que es un grupo de funciones

jh

También podría gustarte