✒️ABAP / El lenguaje SQL y la sentencia SELECT Por Mauro Repetto

Selector Alummnos / Empresas

ABAP El lenguaje SQL y la sentencia SELECT

ABAP El lenguaje SQL y la sentencia SELECT
El acceso a la base de datos es el factor número uno que define si un programa ABAP vuela o se arrastra. Como programador experto, tu objetivo principal siempre debe ser delegar el trabajo pesado al motor de la base de datos y minimizar el tráfico de red entre este y el servidor de aplicaciones.
En el mundo moderno de SAP (especialmente con bases de datos in-memory como HANA), el paradigma es "Code-to-Data": envía la lógica a los datos, no los datos a la lógica.
A continuación, desglosamos las prácticas que debes erradicar y las que debes adoptar en tu día a día.
Las Peores Prácticas (Anti-patrones de Rendimiento)
1. El pecado capital: SELECT dentro de un LOOP
Esta es la forma más rápida de destruir el rendimiento de un sistema SAP. Si tu tabla interna tiene 10,000 registros, ejecutarás 10,000 consultas individuales a la base de datos, saturando la red (conocido como el problema N+1).
ABAP
" TERRIBLE PRÁCTICA (¡Nunca hagas esto!)
LOOP AT lt_pedidos INTO DATA(ls_pedido).
" Un viaje a la base de datos por cada iteración del bucle
SELECT SINGLE name1
FROM kna1
INTO @DATA(lv_nombre)
WHERE kunnr = @ls_pedido-kunnr.
ENDLOOP.
2. Traer datos de más con SELECT *
Tablas estándar como MARA o VBAK tienen cientos de columnas. Si usas * cuando solo necesitas un par de campos, estás desperdiciando ancho de banda de red y llenando la memoria RAM del servidor de aplicaciones con basura.
ABAP
" MALA PRÁCTICA
SELECT *
FROM vbak
INTO TABLE @DATA(lt_pedidos_completos)
WHERE erdat = @sy-datum.
3. Filtrar datos en el servidor de aplicaciones
Extraer miles de registros de la base de datos para luego descartarlos manualmente con sentencias IF o CHECK dentro de la memoria de ABAP.
ABAP
" MALA PRÁCTICA (SELECT ... ENDSELECT es obsoleto y lento)
SELECT matnr, mtart, ersda
FROM mara
INTO @DATA(ls_mara).
" Filtrando en el lado del servidor ABAP en lugar de usar el WHERE
CHECK ls_mara-ersda > '20240101'.
APPEND ls_mara TO lt_materiales.
ENDSELECT.
Las Mejores Prácticas (El Enfoque Senior)
1. Lectura en bloque (Array Fetch) y restricción de columnas
Pide única y exclusivamente los campos que vas a procesar. Además, extrae los datos de un solo golpe directamente a una tabla interna usando INTO TABLE, evitando bucles de comunicación.
ABAP
" BUENA PRÁCTICA
SELECT matnr, mtart
FROM mara
INTO TABLE @DATA(lt_materiales)
WHERE mtart = 'FERT'
AND ersda > '20240101'. " El filtro se hace en la base de datos
2. Cruce de datos masivos (FOR ALL ENTRIES vs JOIN)
Cuando necesitas cruzar datos que ya tienes en una tabla interna con otra tabla de la base de datos, debes usar extracciones en bloque.
Opción A: Usando FOR ALL ENTRIES (Útil cuando los datos de origen no vienen de la base de datos).
ABAP
" BUENA PRÁCTICA
" 1. REGLA DE ORO: ¡Siempre verifica que la tabla no esté vacía primero!
IF lt_pedidos IS NOT INITIAL.
" Extraemos todos los clientes asociados de un solo golpe
SELECT kunnr, name1
FROM kna1
INTO TABLE @DATA(lt_clientes)
FOR ALL ENTRIES IN @lt_pedidos
WHERE kunnr = @lt_pedidos-kunnr.
ENDIF.
Opción B: Usando JOIN (El preferido si todo viene de la base de datos).
ABAP
" EXCELENTE PRÁCTICA
" Cruza las tablas directamente en el motor de base de datos
SELECT v~vbeln, v~kunnr, k~name1
FROM vbak AS v
INNER JOIN kna1 AS k
ON v~kunnr = k~kunnr
INTO TABLE @DATA(lt_pedidos_clientes)
WHERE v~vkorg = '1000'.
3. Delegar cálculos matemáticos a la Base de Datos
Si necesitas sumar, contar, encontrar el máximo o calcular promedios, no bajes los registros a una tabla interna para iterarlos. Usa funciones de agregación (SUM, COUNT, MAX, MIN, AVG).
ABAP
" EXCELENTE PRÁCTICA
" Que la base de datos sume y agrupe; nosotros solo recibimos el resultado final
SELECT vkorg, SUM( netwr ) AS total_ventas
FROM vbak
INTO TABLE @DATA(lt_resumen_ventas)
WHERE erdat = @sy-datum
GROUP BY vkorg.


 

Escanear / Compartir

 

 


Sobre el autor

Publicación académica de Mauro Repetto, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.

SAP Junior

Mauro Repetto

Profesión: Pm It - Uruguay - Legajo: AZ19X

✒️Autor de: 6 Publicaciones Académicas

🎓Cursando Actualmente: Carrera Consultor ABAP Nivel Inicial

Certificación Académica de Mauro Repetto

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El lenguaje SQL y la sentencia SELECT" de la mano de nuestros alumnos.

SAP Junior

El acceso a la base de datos es el factor número uno que define si un programa ABAP vuela o se arrastra. Como programador experto, tu objetivo principal siempre debe ser delegar el trabajo pesado al motor de la base de datos y minimizar el tráfico de red entre este y el servidor de aplicaciones. En el mundo moderno de SAP (especialmente con bases de datos in-memory como HANA), el paradigma es "Code-to-Data": envía la lógica a los datos, no los datos a la lógica. A continuación, desglosamos las prácticas que debes erradicar y las que debes adoptar en tu día a día. Las Peores Prácticas (Anti-patrones de Rendimiento) 1. El pecado capital: SELECT dentro de un LOOP Esta...

Acceder a esta publicación

Creado y Compartido por: Mauro Repetto

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


1. El Lenguaje SQL (Structured Query Language) Es un lenguaje de consulta estructurado utilizado como interfaz para comunicarse con las bases de datos y realizar operaciones de acceso y manipulación de la información. Estándar y Variaciones: Aunque es un estándar mantenido por ANSI, cada sistema de gestión (como Oracle o SAP HANA) puede tener sus propias extensiones propietarias,. Clasificación de sentencias: DDL (Lenguaje de Definición de Datos): Se utiliza para definir la estructura de la base de datos (tablas, índices, etc.). Incluye sentencias como CREATE, ALTER y DROP,. DML (Lenguaje de Manipulación de Datos): Permite manipular los datos (consultar,...

Acceder a esta publicación

Creado y Compartido por: Gabriel José Luces González

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

El lenguaje SQL y la sentencia SELECT 1| El lenguaje SQL Para acceder y manipular los datos que se encuentran almacenados en las tablas de la base de datos centralizada de SAP vamos a utilizar el lenguaje SQL. SQL Sus siglas significan Lenguaje de Consulta Estructurado. Es un lenguaje de consulta, usado como interfaz para comunicarse con bases de datos y realizar operaciones de acceso y manipulación de la información almacenada. Es un lenguaje sencillo de consulta, que permite realizar operaciones de selección, inserción, actualización y borrado de datos, así como operaciones administrativas sobre las bases de datos. Tiene la capacidad de hacer cálculos avanzados y álgebra. Es utilizado...

Acceder a esta publicación

Creado y Compartido por: Felipe De Jesus Arrona Rodriguez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master


El lenguaje SQL y la sentencia SELECT SQL es un lenguaje de consulta estructurado usado como interfaz para comunicarse con bases de datos, permitiendo operaciones de selección, inserción, actualización y borrado de datos, además de tareas administrativas. Permite hacer cálculos avanzados y álgebra. Es el lenguaje de programación más usado para bases de datos relacionales y está estandarizado por ANSI. Sistemas gestores de base de datos comunes que usan SQL incluyen Oracle, SAP HANA, MySQL, Microsoft SQL Server, Microsoft Access, e Ingres. Aunque SQL es estándar, cada sistema puede tener sus propias extensiones propietarias. El conocimiento de SQL básico facilita trabajar...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

SQL Sus siglas significan Lenguaje de Consulta Estructurado. Es un lenguaje de consulta, usado como interfaz para comunicarse con bases de datos y realizar operaciones de acceso y manipulación de la información almacenada. Es un lenguaje sencillo de consulta, que permite realizar operaciones de selección, inserción, actualización y borrado de datos, así como operaciones administrativas sobre las bases de datos. Tiene la capacidad de hacer cálculos avanzados y álgebra. Es utilizado en la mayoría de las empresas que almacenan datos en una base de datos. Ha sido y sigue siendo el lenguaje de programación más usado para bases de datos relacionales. El lenguaje SQL es...

Acceder a esta publicación

Creado y Compartido por: Mara Fadua Romero Hernandez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Introducción: SQL es el lenguaje universal para gestionar datos en bases relacionales. En SAP ABAP, dominar sus sentencias (especialmente SELECT) es crucial para acceder, filtrar y manipular información eficientemente. Fundamentos de SQL en ABAP Clasificación de sentencias: Tipo Siglas Función Comandos Clave DDL Lenguaje de Definición de Datos Crear/modificar estructuras CREATE, ALTER, DROP DML Lenguaje de Manipulación de Datos Gestionar registros ...

Acceder a esta publicación

Creado y Compartido por: Oscar Aravena Muller / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Junior

El lenguaje SQL Y la sentencia SELECT 1 | El lenguaje SQL Para acceder y manipular los datos que se encuentran almacenados en las tablas de la base de datos centralizada de SAP vamos a utilizar el lenguaje SQL. SQL Sus siglas significan Lenguaje de Consulta Estructurado. Es un lenguaje de consulta, usado como interfaz para comunicarse con bases de datos y realizar operaciones de acceso y manipulación de la información almacenada. Es un lenguaje sencillo de consulta, que permite realizar operaciones de selección, inserción, actualización y borrado de datos, así como operaciones administrativas sobre las bases de datos. Tiene la capacidad de hacer cálculos avanzados y álgebra Es utilizado...

Acceder a esta publicación

Creado y Compartido por: Gustavo Jose Rondon Hernandez / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


El lengaje SQL y la sentencia SELECT 1 El leguaje SQL Es el estándar utilizado para acceder, manipular y administrar datos almacenados en bases de datos relacionales. En SAP, este lenguaje es fundamental para interactuar con las tablas de la base de datos centralizada. Características principales: Permite realizar operaciones de: Selección (SELECT) Inserción (INSERT) Actualización (UPDATE / MODIFY) Borrado (DELETE) Administración de estructuras (CREATE, ALTER, DROP) SQL es mantenido como estándar por ANSI, lo que garantiza similitudes...

Acceder a esta publicación

Creado y Compartido por: Geovanny Martínez Campoverde

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert



El lenguaje SQL y la sentencia SELECT en ABAP En el entorno de programación ABAP (Advanced Business Application Programming), el lenguaje SQL se utiliza para interactuar con bases de datos SAP mediante sentencias conocidas como Open SQL. Estas sentencias permiten acceder y manipular datos de forma independiente del sistema de base de datos subyacente. Una de las sentencias más utilizadas es SELECT, que permite leer registros desde una o más tablas de base de datos. En ABAP, la sentencia SELECT puede usarse para recuperar datos en estructuras o tablas internas, facilitando el procesamiento posterior en el programa. Es posible aplicar condiciones con cláusulas como WHERE, ordenar resultados con ORDER BY, o limitar...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

El lenguaje SQL y la sentencia SELECT 1. El lenguaje SQL Para acceder y manupular los datos que se encuentran almacenados en las tablas de la base de datos centralizada de SAP vamos a utilizar el lenguaje SQL. < SQL: Lenguaje de Consulta Estructurado. Es un lenguaje de consulta, usado como interfaz para comunicarse con bases de datos y realizar operaciones de acceso y manipulación de la información almacenada. > Las sentencias del lenguaje SQL pueden ser clasificadas en tre grupos que son los siguientes: Lenguaje de Definición de Datos (DDL): Se utiliza para definir estructuras como el esquema, la base de datos, las tablas de la base de datos, las restricciones, etc. * CREATE: Se utiliza para crear una base de...

Acceder a esta publicación

Creado y Compartido por: Yeny Gisela Yanes Bautista

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

🔎Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!