Académique Documents
Professionnel Documents
Culture Documents
Derechos de Autor
© 2007, everis. All rights reserved
2
índice
1. Introducción ABAP Tuning.
2. Arquitectura del Sistema SAP para desarrolladores ABAP.
3. Performance Analysis Tools
4. Procesos en Paralelo.
5. Proceso de datos con SQL.
6. Búfer de los datos.
7. Procesamiento de Tablas Internas.
8. Preparación de código de cara a la migración de SAP HANA
9. Optimización de código para SAP HANA
3
Introducción ABAP Tuning
Introducción
Todos los programas ABAP deberían desarrollarse utilizando los medios más
eficientes posibles.
4
Introducción ABAP Tuning
¿Qué es la programación eficiente?
Programación eficiente implica resolver un problema tan rápido como sea posible
mientras que los recursos del sistema son usados con la mayor moderación posible.
5
Introducción ABAP Tuning
Factores que impactan el rendimiento de aplicaciones
• Estructura de un programa
Programador/a • Programación lenguaje de comandos / sintaxis
• Sentencias SQL
ABAP • Operaciones entrada / salida
6
Introducción ABAP Tuning
Rendimiento responsabilidad de Programador/a ABAP
Sentencias SQL
La eficiencia de las sentencias SQL pueden afectar drásticamente el
rendimiento del programa.
Operaciones entradas/salidas
La cantidad de lectura y escritura a base de datos de un programa tendrá un
impacto en el rendimiento del programa. Se debe ir con cuidado para eliminar
cualquier entrada/salida innecesaria.
7
Introducción ABAP Tuning
Rendimiento responsabilidad de BASIS
8
índice
1. Introducción ABAP Tuning.
2. Arquitectura del Sistema SAP para desarrolladores ABAP.
3. Performance Analysis Tools
4. Procesos en Paralelo.
5. Proceso de datos con SQL.
6. Búfer de los datos.
7. Procesamiento de Tablas Internas.
8. Preparación de código de cara a la migración de SAP HANA
9. Optimización de código para SAP HANA
9
Arquitectura del Sistema SAP para
desarrolladores ABAP
Arquitectura del Sistema SAP
• Presentación.
• Aplicación.
• Base de Datos.
10
Arquitectura del Sistema SAP para
desarrolladores ABAP
Tiempos de respuesta que pueden influir en el desarrollo
11
índice
1. Introducción ABAP Tuning.
2. Arquitectura del Sistema SAP para desarrolladores ABAP.
3. Performance Analysis Tools
4. Procesos en Paralelo.
5. Proceso de datos con SQL.
6. Búfer de los datos.
7. Procesamiento de Tablas Internas.
8. Preparación de código de cara a la migración de SAP HANA
9. Optimización de código para SAP HANA
12
Performance Analysis Tools
Inicio
Aquí se va a detallar los programas que se puede utilizar para el análisis de tiempo
de ejecución, cuándo y cómo se usan y qué procedimientos se recomienda en
cada situación en particular.
Hay varias herramientas que se pueden utilizar para el análisis de los problemas
de rendimiento según los diferentes puntos en el tiempo que se den.
13
Performance Analysis Tools
Herramientas
Aquí se va a detallar los programas que se puede utilizar para el análisis de tiempo
de ejecución, cuándo y cómo se usan y qué procedimientos se recomienda en
cada situación en particular.
Hay varias herramientas que se pueden utilizar para el análisis de los problemas
de rendimiento según los diferentes puntos en el tiempo que se den.
14
Performance Analysis Tools
Herramientas
Transacción Descripción
SE30 – ABPA Trace Con el análisis de tiempo de ejecución se
puede analizar el desempeño de los
programas ABAP.
ST05 – Performance Trace – SQL Trace Con la traza de SQL, se puede rastrear
los accesos a la BD y cuánto tiempo
toma el acceso a ellas (base de datos).
ST05 – Performance Trace – Buffer Con la traza de Buffer, se puede analizar
Trace los accesos a la tabla buffer, y cuanto
tiempo toma el acceso y cuanto tiempo la
tabla buffer esta cargada.
ST05 – Performance Trace – RFC Trace Con la traza de RFC, se puede analizar
el rastreo de las llamadas remotas que
su aplicación se ejecuta, en qué
dirección van, qué cantidad de datos se
han transferido y la duración de las
llamadas tomó.
15
Performance Analysis Tools
Herramientas
Transacción Descripción
ST05 – Performance Trace – Enqueue Con la traza de Enqueue, puede
Trace determinar qué enqueue solicita su
aplicación o el sistema SAP ejecuta en
objetos de bloqueo que, y qué
parámetros usa el sistema para estos
pone en cola.
ST12 – ABAP and Performance Trace Mediante la transacción ST12, puede
iniciar transacciones SE30 y ST05
juntos. Por otra parte, se puede evaluar
la traza ABAP con opciones adicionales
en comparación a transacciones SE30.
STAD – Business Transaction Analysis La pantalla de registros estadísticos
permite mostrar los registros estadísticos
de las solicitudes y evaluarlos.
16
Performance Analysis Tools
Herramientas
Transacción Descripción
SM50/SM66 – Work Process Monitor Se puede utilizar “work process monitor”
para obtener información sobre procesos
que se están ejecutando en el momento.
S_MEMORY_INSPECTOR – Memory Es una herramienta para visualizar y
Inspector analizar instantáneas de memoria.
ST22 – ABAP Dump Analysis Si se produjo un error de ejecución en un
programa ABAP, usted tiene la opción de
acceder a la información asociada a la
terminación y analizarla.
OK-Code /h or /ha – ABAP Debugger El depurador es una herramienta de
análisis que se ejecutan programas
ABAP por línea o por sección. Usted
puede utilizar el depurador de ABAP para
mostrar el contenido de los objetos de
datos y verificar la lógica de flujo de los
programas.
17
Performance Analysis Tools
Herramientas
Transacción Descripción
DB05 – Selectivity Analysis Usted puede utilizar el análisis de
selectividad para analizar el número de
valores únicos de un campo (o
combinaciones de campo) de una tabla
de base de datos. Además, puede usar
esta operación para determinar el
tamaño de las tablas que se admiten
para ser amortiguada. (to be buffered).
ST10 – Table Call Statistics Con base en las estadísticas de tabla de
llamadas, puede hacer que el sistema
muestre las estadísticas de llamadas
para tablas almacenadas en búfer o sin
búfer. Para tablas almacenadas en búfer,
el sistema muestra el estado de la tabla
en la memoria intermedia.
18
Performance Analysis Tools
Tiempos de uso de las Herramientas – Sistemas SAP
Las herramientas se pueden utilizar en diferentes puntos en el tiempo y en diferentes
sistemas. Para los sistemas SAP, se puede distinguir entre desarrollo, pruebas y
producción.
19
Performance Analysis Tools
Tiempos de uso de las Herramientas – Programas SAP
Para un programa, a diferenciar el desarrollo, ejecución y tiempo de ejecución.
20
Performance Analysis Tools
Trazas de rendimiento
Las trazas más importantes para el análisis del rendimiento son:
21
Performance Analysis Tools
SAP Code Inspector (Transacción SCI)
El inspector de código permite el análisis de la definición estática de código ABAP y
otros objetos del repositorio. Dentro del alcance de prueba de rendimiento
automatizado utilizando la transacción ST30. El inspector de código también es
compatible con el análisis de trazas de SQL que se ejecutan dinámicamente código.
El inspector del código examina la codificación interna, mientras que las trazas sólo
examinan las partes de código ejecutadas. Debido a las pruebas estáticas, las
notificaciones del inspector del código proporcionar información sobre posibles
problemas, mientras que los resultados de las trazas se miden valores que indican
problemas definitivos.
Los grupos destinatarios para el cual se desarrolló el inspector del código son los
desarrolladores y administradores de calidad.
El inspector del código cubre diferentes categorías de pruebas. Por ejemplo incluye
controles generales, control de rendimiento, controles de seguridad, controles de
sintaxis generada, convenciones de programación, métricas y estadísticas, interfaces
de usuarios, búsqueda de funciones, control de la aplicación, etcétera.
22
Performance Analysis Tools
SAP Code Inspector (Transacción SCI)
23
Performance Analysis Tools
Análisis Selectivo (Transacción DB05)
El uso de Transacción DB05 asume un volumen de datos representativa. El análisis
de selectividad es una herramienta para analizar la distribución de datos y para
definir el tamaño de las tablas. Por lo general, esta herramienta se utiliza para el
diseño de índice y para el análisis de tablas de almacenamiento en búfer.
Para las grandes tablas,
seleccione la opción del trabajo en
segundo plano para no bloquear el
proceso de diálogo por mucho
tiempo o para no recibir un tiempo
de espera en el diálogo.
24
Performance Analysis Tools
Análisis Selectivo (Transacción DB05)
El resultado del análisis se muestra en la figura.
En el caso que se lance en fondo el resultado se encuentra en la transacción
SM37.
El área superior de la pantalla de resultados contiene el análisis del tamaño de
la tabla. Puede ver los datos, el tiempo y la tabla analizada, así como el número
de filas (cross-cliente) y la longitud de una fila. Unicode y la longitud fija de los
campos en ABAP se tienen en cuenta aquí.
26
Performance Analysis Tools
Proceso del Programa (Transacción SM50/SM66)
El análisis de procesos es una herramienta para la administración del sistema y
contiene muchas funciones y opciones de análisis cuyas descripciones no van
a ser tratadas hoy.
27
Performance Analysis Tools
Proceso del Programa (Transacción SM50/SM66)
Un proceso de trabajo ABAP puede asumir cuatro estados:
28
Performance Analysis Tools
Proceso del Programa (Transacción SM50/SM66)
Para el RUNNING, se puede obtener más información en la columna Action.
Principalmente hay tres acciones:
29
Performance Analysis Tools
Proceso del Programa (Transacción SM50/SM66)
En el depurador, utiliza el análisis de la memoria para ver una lista de los objetos de
datos más grandes.
31
Performance Analysis Tools
Debugger – Análisis de Memoria
La lista de los objetos más grandes, puede utilizar el BOTÓN MEMORY OBJETOS, para
mostrar la lista de los objetos más grandes de memoria (paso 2).
32
Performance Analysis Tools
Memory Inspector (Transacción S_MEMORY_INSPECTOR)
Se utiliza para el análisis de instantáneas de memoria.
El Inspector de Memoria considera los datos de objeto dinámico, como las tablas
internas. Al iniciar el Inspector de memoria, el sistema muestra una pantalla que
se divide en dos partes ven en la siguiente función.
33
Performance Analysis Tools
Llamada a la tabla de estadísticas (Transacción ST10)
Transacción ST10 fue asignado al análisis en tiempo de ejecución para señalar que
el estado de las tablas almacenadas en búfer debe ser analizado inmediatamente,
es decir, en tiempo de ejecución, porque el estado de las tablas almacenadas en
búfer puede cambiar. No debe usar transacción ST10 hasta que se asume que no
es la instrucción SQL la que impide el acceso a la memoria intermedia.
34
Performance Analysis Tools
Llamada a la tabla de estadísticas (Transacción ST10)
35
Performance Analysis Tools
Performance Trace – Información General (ST05)
El rendimiento se puede subdividir en las siguientes áreas:
1. SQL trace.
2. RFC trace.
3. Enqueue trace.
4. Tabla de seguimiento del Buffer
36
Performance Analysis Tools
Performance Trace – Información General (ST05)
Como funciona la transacción.
37
Performance Analysis Tools
ABAP Trace ( Transacción SE30)
Puede analizar el desempeño de los programas ABAP. Los resultados de la
traza se guardan en archivos que luego se puede analizar. En base a estos
resultados se puede identificar la larga durada de los estados de carga que se
llama con frecuencia en a la CPU del servidor de aplicaciones.
38
Performance Analysis Tools
ABAP Trace ( Transacción SE30 )
Estructura de la transacción SE30
1. Antes de registrar una traza, hay
variantes que especifican qué datos
deben ser registrados.
La medición de las
unidades particulares,
será especialmente útil
para la aplicación de
diálogo con múltiples
pantallas o pasos y que
solo se quiere análizar
una de sola.
40
Performance Analysis Tools
ABAP Trace ( Transacción SE30 )
Crear trazas
Evaluar trazas
41
Performance Analysis Tools
ABAP Trace ( Transacción SE30 )
42
Performance Analysis Tools
Tips & Tricks (SE30 )
43
Performance Analysis Tools
Single transaction analysis( Transacción ST12 )
En comparación con la transacción SE30, Transacción ST12 proporciona beneficios
tanto en relación con el registro y la evaluación de trazas agregados. Por ejemplo,
puede utilizar Transacción SE12 para activar una traza ABAP junto con un rastreo de
rendimiento (transacción ST05).
44
Performance Analysis Tools
Single transaction analysis( Transacción ST12 )
45
Performance Analysis Tools
Single transaction analysis( Transacción ST12 )
46
Performance Analysis Tools
E2E Trace
47
Performance Analysis Tools
Sinlge Record Statistics (Transacción STAD)
No necesita ser activa, ya lo esta por
defecto.
Esto significa que los parámetros más
críticos que todavía puede ser analizada
cuando el programa se esta ejecutando.
1. Display Mode Aquí puede especificar
cómo los datos deben ser formateados.
2. Read Interval Aquí se especifica la fecha
y hora en que desea analizar las
estadísticas de los registros individuales.
Además se debe introducir un intervalo.
3. Filter Parameter Aquí se pueden
establecer filtros diferentes para buscar
los registros deseados estadísticos.
4. Tools Aquí se puede establecer las
herramientas que se van a usar.
48
índice
1. Introducción ABAP Tuning.
2. Arquitectura del Sistema SAP para desarrolladores ABAP.
3. Performance Analysis Tools
4. Procesos en Paralelo.
5. Proceso de datos con SQL.
6. Búfer de los datos.
7. Procesamiento de Tablas Internas.
8. Preparación de código de cara a la migración de SAP HANA
9. Optimización de código para SAP HANA
49
Procesos en Paralelo
Introducción
Las aplicaciones que necesitan procesar datos en masa debe ser capaces de
procesar en paquetes y en paralelo, por lo que puede adaptarse de forma flexible a
los recursos de hardware propuestos y utilizar estos recursos de forma apropiada.
50
Procesos en Paralelo
Empaquetado (packaging)
51
Procesos en Paralelo
Proceso en Paralelo
52
Procesos en Paralelo
Ejemplo (Caso de Negocio)
53
Procesos en Paralelo
Ejemplo (Caso de Negocio)
54
Procesos en Paralelo
Proceso en Paralelo (Ejemplo)
Paso 2: Crear un módulo de funciones que actualiza los datos a la tabla uno a uno.
55
Procesos en Paralelo
Proceso en Paralelo (Ejemplo)
Paso 3: Crear 2 programas, uno con cursor paralelo y otro sin y comparar el
rendimiento de ambos.
56
Procesos en Paralelo
Limitaciones de este método de optimización
• Todos los módulos de funciones que están habilitados como RFC pueden usar
esta técnica
57
índice
1. Introducción ABAP Tuning.
2. Arquitectura del Sistema SAP para desarrolladores ABAP.
3. Performance Analysis Tools
4. Procesos en Paralelo.
5. Proceso de datos con SQL.
6. Búfer de los datos.
7. Procesamiento de Tablas Internas.
8. Preparación de código de cara a la migración de SAP HANA
9. Optimización de código para SAP HANA
58
Proceso de datos con SQL
Arquitectura
En cuanto a la arquitectura descrita anteriormente, el cuello de botella
siguiente son posibles.
- Conexión entre la Base de Datos y el servidor SAP NetWeaver AS.
- La disposición de la CPU.
- La disposición de la memoria principal.
- La conexión entre la Base de Datos y el almacenamiento del sistema.
- El rendimiento del sistema de almacenamiento
59
Proceso de datos con SQL
Eficiencia SQL – Principos Basicos
Hay cuatro factores principales que influyen:
- La estrategia de acceso y el volumen de datos de navegación.
- El conjunto resultante.
- La frecuencia de ejecución.
- La utilización de API (Application Programming Interface)
60
Proceso de datos con SQL
Conjunto Resultante – Acceder a la tabla
Reducir Filas
Para reducir el volumen de datos, especifique sólo las columnas que el programa realmente
requiere.
Restringir con
WHERE el volumen
de datos.
62
Proceso de datos con SQL
Conjunto Resultante -
Lectura de un número determinado de filas
63
Proceso de datos con SQL
Conjunto Resultante - Agregación
Funciones de agregación:
• Contar (count)
• Sumar (sum)
• Mínimo Valor (min)
• Máximo Valor (max)
• Promedio Valor (avg)
64
Proceso de datos con SQL
Conjunto Resultante - Comprobaciones / Actualizaciones
Comprobaciones
Si desea determinar si una tabla contiene registros de datos de una
condición particular.
Actualizaciones
El sistema transfiere la actualización de la base de datos.
65
Proceso de datos con SQL
Diseñar Índices
Antes de crear un índices es importante saber para que sentencia SQL se va usar. Esta
cuestión se puede abordar de diferentes prospectivas.
• Perspectiva des del desarrollo de aplicaciones.
Esto por lo general consiste en reducir el tiempo de respuesta de larga ejecución de
sentencias de SQL en el programa para el que los usuarios tengan que esperar o que
debe completarse dentro de un período definido de tiempo debido al procesamiento
durante la noche. En comparación con otras, estas declaraciones pueden ser
relativamente rápidas.
• Perspectiva desde la administración del sistema.
Desde el punto de vista de la administración del sistema, las sentencias SQL que
consumen la mayoría de los recursos son de particular interés. Esta instrucción SQL
consume recursos y afecta el rendimiento del sistema (y por consiguiente otras
aplicaciones que se ejecutan al mismo tiempo).
Reglas a la hora de crear índices
• No se debe crear más de cinco índices a cada tabla.
• Un índice no debe contener más de cinco columnas.
• Las columnas deben ser ordenados por su selectividad.
66
Proceso de datos con SQL
Diseñar Índices – Leer o Escribir Procesamiento
• Las declaraciones INSERT y DELETE siempre hay que mantener todos los índices
existentes para cualquier registro de dato insertado o suprimido.
• La declaración UPDATE, tiene que mantener todos los índices que contienen campos
que deberían ser actualizados.
67
Proceso de datos con SQL
Diseñar Índices – Acceder Procesamiento
Para las combinaciones de campo, a menudo se recomienda colocar los campos más
selectivos en la secuencia de campo a la izquierda en el índice. Esta recomendación es
cierto en general.
68
Proceso de datos con SQL
Ejecución Frecuente
No se puede acelerar una sentencia SQL. Solo se puede mejorar el rendimiento si la
declaración se ejecuta con menos frecuencia.
Ventajas
• Los campos contenidos en ambos tablas se transfieren sólo una vez.
• Optimización de la base de datos.
• A medida que se consulta la VISTA, esta reduce el numero de consultas a
la base de datos, reduciendo el esfuerzo de comunicación.
70
Proceso de datos con SQL
Ejecución Frecuente - Join
La diferencia con las Vistas es que los Join son más flexibles. El problema es
que se deben indicar con hard-code.
71
Proceso de datos con SQL
Ejecución Frecuente – FOR ALL ENTRIES
El FOR ALL ENTRIES, es una opción elegante para agrupar sentencias SELECT en bucle para
reducir aún más el número de consultas y el esfuerzo de comunicación con la base de datos.
• Se puede ordenar el FAE del comando SELECT solo mediante la clave primaria (ORDER
BY PRIMARY KEY).
• Las funciones de agregados (GROUP BY, COUNT, SUM, …) no están permitidas en la
FAE.
• No igual (<>) o condiciones negativas (NOT) no están permitidas en la FAE.
• No esta permitido el uso de más de una tabla interna para el FAE.
En términos de rendimiento es importante tener en cuenta los dos siguientes aspectos para FAE:
• Para consultas FAE, no utilice tablas complejas alcance, además de evitar que el sistema
genera sentencias SQL complejas.
• La tabla interna utilizados para la declaración FAE no debe estar vacío. Si el interior tabla
está vacía, el sistema ignora toda condición WHERE y lee el mesa completa (o el cliente
actual completa).
72
índice
1. Introducción ABAP Tuning.
2. Arquitectura del Sistema SAP para desarrolladores ABAP.
3. Performance Analysis Tools
4. Procesos en Paralelo.
5. Proceso de datos con SQL.
6. Búfer de los datos.
7. Procesamiento de Tablas Internas.
8. Preparación de código de cara a la migración de SAP HANA
9. Optimización de código para SAP HANA
73
Buffer de los datos
Resumen
El objetivo de la utilización del buffering es para almacenar temporalmente los datos para su
reutilización con el fin de…
74
Buffer de los datos
Overview con todos los tipos de buffer
User-specific buffering
Cross-user buffering
75
índice
1. Introducción ABAP Tuning.
2. Arquitectura del Sistema SAP para desarrolladores ABAP.
3. Performance Analysis Tools
4. Procesos en Paralelo.
5. Proceso de datos con SQL.
6. Búfer de los datos.
7. Procesamiento de Tablas Internas.
8. Preparación de código de cara a la migración de SAP HANA
9. Optimización de código para SAP HANA
76
Procesamiento de Tablas Internas
Visión general Tablas Internas
Las tablas internas están completamente
especificado por cuatro propiedades:
1. Tipos de Tablas. El tipo de acceso para el tipo
de tabla determina el acceso ABAP a las filas
individuales de la tabla.
2. Tipos de Columnas. El tipo de fila de una
tabla interna puede ser cualquier tipo de datos
ABAP.
3. “Uniqueness” de clave. La clave puede
especificarse como único o no único. En caso
de claves únicas, hay varias entradas (con
respecto a la clave) en las tablas internas. La
singularidad se basa en el tipo de tabla. Las
tablas estándar sólo permiten claves no únicas
y las tablas hash sólo permite las claves
únicas.
4. Los componentes clave (teniendo en cuenta
la secuencia). Los componentes clave y su
secuencia especificar los criterios basados en
la cual el filas de la tabla se identifican.
77
Procesamiento de Tablas Internas
Organización Memoria Principal
En la memoria principal, las tablas internas, al igual que las tablas de bases de datos
están organizados en bloques o páginas.
Cuando una tabla interna se declara en un programa ABAP, el sistema sólo crea
una referencia (referencia de tabla) inicialmente en la memoria principal. Sólo cuando las
entradas se escriben en la tabla interna es el sistema que crea un encabezado de tabla y
un cuerpo de la tabla.
El encabezado de la
tabla incluye la
información más
importante acerca de
una tabla interna.
78
Procesamiento de Tablas Internas
Organización Memoria Principal
INITIAL SIZE: se debe especificar siempre si requiere sólo unas pocas filas y las
tabla interna existe con frecuencia. Para las tablas anidadas, si una tabla interna es
parte de un fila de otra tabla interna.
79
Procesamiento de Tablas Internas
Tipos de Tablas
Las tablas internas se pueden subdividir en tablas de índices y tablas hash.
80
Procesamiento de Tablas Internas
Tipos de Tablas – Tablas de Índices
Los índices para tablas de índices sólo se crean cuando la secuencia física
ya no corresponde a la secuencia lógica, es decir, cuando uno de los
comandos INSERT, DELETE o SORT se ejecuta sobre la tabla y se aplican
las siguientes condiciones:
81
Procesamiento de Tablas Internas
Tipos de Tablas – Tablas de Índices
82
Procesamiento de Tablas Internas
Tipos de Tablas – Tablas Hash
83
Procesamiento de Tablas Internas
Tipos de Tablas – Resumen
Recomendaciones para cuando usar uno u otro tipo de tablas.
Las tablas estándar sólo debe utilizarse si todas las entradas deben ser
procesados secuencialmente después del llenado o si las tablas internas se debe tener acceso
flexible y eficaz utilizando varias claves diferentes.
Las tablas hash son óptimas si se accede sólo a través de la clave de la tabla. Si la clave tiene
un significado izquierdo alto, también puede utilizar una tabla única ordenados porque en este
caso surgen ventajas de rendimiento para la búsqueda binaria cuando tiene acceso a filas
individuales. 84
Procesamiento de Tablas Internas
Aspectos de Rendimiento – Rellenar
Al igual que para los accesos de bases de datos, las operaciones de la matriz y las
operaciones individuales de registro también están disponibles para la tabla interna.
Operaciones Array
Los correspondientes estados ABAP son:
Para las tablas de hash, sólo se puede utilizar la instrucción INSERT, y para las tablas de
índice se puede utilizar tanto APPEND y INSERT. Si anexa filas utilizando APPEND, para
tablas ordenadas debe asegurarse de que la secuencia de clasificación de las tablas internas
se mantenga.
Asignaciones utilizando MOVE y = también pertenecen a las operaciones de matriz a las
tablas internas.
85
Procesamiento de Tablas Internas
Aspectos de Rendimiento – Rellenar
Costos de Operaciones registro único para llenar las tablas internas
86
Procesamiento de Tablas Internas
Aspectos de Rendimiento – Leer (Multiple Rows (LOOP) )
87
Procesamiento de Tablas Internas
Aspectos de Rendimiento – Leer (Single Rows)
88
Procesamiento de Tablas Internas
Aspectos de Rendimiento – Modificar
89
Procesamiento de Tablas Internas
Aspectos de Rendimiento – Eliminar
90
Procesamiento de Tablas Internas
Aspectos de Rendimiento – Condensar
El uso del comando COLLECT, puede crear conjuntos de datos resumidos en las tablas
internas. Los costos del comando son significativamente determinada por el esfuerzo de
buscar la fila correspondiente.
Para las tablas ordenadas (sort), la entrada se especifica internamente mediante una
búsqueda binaria, mientras que el esfuerzo para buscar entradas depende logarítmicamente
en el número de entradas en la tabla interna
COLLECT deben utilizarse principalmente para las tablas hash debido a que tienen una clave
de tabla única y una administración Hash estable.
91
Procesamiento de Tablas Internas
Aspectos de Rendimiento – Ordenar
Las tablas estándar y hash, se pueden ordenar por cualquier campo de la tabla
con el comando SORT. Para las tablas ordenadas (sort) no se puede usar el
comando SORT, este tipo de tablas ya están ordenadas internamente mediante
los campo claves.
92
índice
1. Introducción ABAP Tuning.
2. Arquitectura del Sistema SAP para desarrolladores ABAP.
3. Performance Analysis Tools
4. Procesos en Paralelo.
5. Proceso de datos con SQL.
6. Búfer de los datos.
7. Procesamiento de Tablas Internas.
8. Optimización de código para SAP HANA
93
Optimización de código para SAP HANA
Correcciones funcionales al código existente ABAP
Por norma general el código ABAP funciona correctamente en SAP HANA como
hasta ahora. Solamente deberemos analizar al detalle el código específico de BD.
Solución recomendada
Usar Open SQL siempre que sea posible, adaptando las sentencias de SQL
nativo y hints de BD si son necesarios.
94
Optimización de código para SAP HANA
Correcciones funcionales al código existente ABAP
Para todo tipo de errores podremos encontrar una solución utilizando el Code Inspector:
95
Optimización de código para SAP HANA
Nueva herramienta: ABAP Test Cockpit
Está basado en Code Inspector pero añade nuevas herramientas y una mejor
usabilidad.
http://scn.sap.com/docs/DOC-31773
96
everis.com