// //

Qué es SQLScript

Qué es SQLScript - Consultoria-SAP

¿Qué es SQLScript? 

La motivación para SQLScript es incrustar la lógica de la aplicación de uso intensivo de datos en la base de datos.

Actualmente, las aplicaciones solo descargan una funcionalidad muy limitada en la base de datos utilizando SQL, la mayor parte de la lógica de la aplicación normalmente se ejecuta en un servidor de aplicaciones. El efecto de eso es que los datos a operar deben copiarse de la base de datos al servidor de aplicaciones y viceversa. Al ejecutar la lógica intensiva de datos, esta copia de datos puede ser muy costosa en términos de tiempo de transferencia de datos y procesador. 




ABAP o JAVA

Además, cuando se usa un lenguaje imperativo como ABAP o JAVA para procesar datos, los desarrolladores tienden a escribir algoritmos que siguen una semántica de una tuple-at-a-time (por ejemplo, repasar filas en una tabla). Sin embargo, estos algoritmos son difíciles de optimizar y paralelizar en comparación con lenguajes declarativos orientados a conjuntos como SQL. 

HANA vs OpenSQL

La base de datos SAP HANA está optimizada para las tendencias tecnológicas modernas y aprovecha el hardware moderno, por ejemplo, al tener datos que residen en la memoria principal y permitir Paralelización masiva en CPUs multi-core. El objetivo de la base de datos SAP HANA es admitir los requisitos de la aplicación haciendo uso de dicho hardware. La base de datos SAP HANA expone una interfaz muy sofisticada para la aplicación, que consta de muchos idiomas. La expresividad de estos idiomas supera con creces la que se puede lograr con OpenSQL. 

El conjunto de extensiones de SQL para la base de datos de SAP HANA, que permite a los desarrolladores insertar lógica intensiva de datos en la base de datos, se denomina SQLScript. Conceptualmente, SQLScript está relacionado con procedimientos almacenados como se define en el estándar SQL, pero SQLScript está diseñado para proporcionar posibilidades de optimización superiores. SQLScript se debe usar en casos donde otras construcciones de modelado de SAP HANA, por ejemplo, vistas analíticas o vistas de atributos no son suficientes. 

El conjunto de extensiones SQL es la clave para evitar copias masivas de datos al servidor de aplicaciones y para aprovechar las sofisticadas estrategias de ejecución paralela de la base de datos. 

SQLScript resuelve los siguientes problemas: 
  • La descomposición de una consulta SQL solo se puede realizar mediante vistas. Sin embargo, al descomponer consultas complejas utilizando vistas, todos los resultados intermedios son visibles y deben escribirse explícitamente. Además, las vistas de SQL no se pueden parametrizar, lo que limita su reutilización. En particular, solo se pueden usar como tablas e incrustarse en otras sentencias de SQL. 
  • Las consultas de SQL no tienen características para expresar la lógica de negocios (por ejemplo, una conversión de moneda compleja). Como consecuencia, tal lógica de negocios no se puede insertar en la base de datos (incluso si se basa principalmente en agregaciones estándar como SUM (Ventas), etc.). 
  • Una consulta SQL solo puede devolver un resultado a la vez. Como consecuencia, el cálculo de los conjuntos de resultados relacionados se debe dividir en consultas separadas, generalmente no relacionadas. 
  • Como SQLScript alienta a los desarrolladores a implementar algoritmos utilizando un paradigma orientado a conjuntos y no utilizando una tupla a la vez, se requiere lógica imperativa, por ejemplo, por algoritmos de aproximación iterativa. Por lo tanto, es posible mezclar construcciones imperativas conocidas de procedimientos almacenados con declaraciones declarativas.

Descarga SAP HANA SQLScript Reference

El manual es oficial de SAP, y su contenido está en inglés.

Sigue los siguientes pasos para descargar gratis:
  1. Suscribirte gratis a nuestro boletín SAP #1
  2. Por favor, dale "me gusta" y seguinos en nuestra página de Consultoria-SAP en Facebook.



    Y no te olvides de seguirnos en las redes sociales para no perderte ninguna novedad:
  3. Copia la URL de éste artículo, e ingresa al foro de Ayuda SAP en español, ve a la parte de Manuales-SAP, y abre un tema nuevo explicando por qué te interesa aprender más sobre SAP, pega ahí la URL que has copiado, para que sepamos que estás cumpliendo estos tres puntos.

    Recuerda que en nuestra comunidad de Ayuda SAP no es solo "pedir" y nada más, lee las normas de solicitudes para descargar gratis que tendrás que cumplir.



    No te pierdas los beneficios de ser VIP en Consultoria-SAP




Contenido del manual SAP HANA SQLScript Reference

About SAP HANA
Backus Naur Form Notation
What is SQLScript?
SQLScript Security Considerations
SQLScript Processing Overview
Orchestration Logic
Declarative Logic
Data Type Extension
Scalar Data Types
Table Types
CREATE TYPE
DROP TYPE
Logic Container
Procedures
CREATE PROCEDURE
DROP PROCEDURE
ALTER PROCEDURE
ALTER PROCEDURE RECOMPILE
Procedure Calls
Procedure Parameters
Procedure Metadata
User Defined Function
CREATE FUNCTION
ALTER FUNCTION
Function Parameters
Function Metadata
Default Values for Parameters
Deterministic Scalar Functions
DROP FUNCTION
Anonymous Block
Declarative SQLScript Logic
Table Parameter
Local Table Variables
Table Variable Type Definition
Binding Table Variables
Referencing Variables
Column View Parameter Binding
Map Merge
HINTS: NO_INLINE and INLINE
Imperative SQLScript Logic
Local Scalar Variables
Global Session Variables
Variable Scope Nesting
Control Structures
Conditionals
While Loop
For Loop
Break and Continue 807.5 Cursors
Define Cursor
Open Cursor
Close Cursor
Fetch Query Results of a Cursor
Attributes of a Cursor
Looping over Result Sets
Autonomous Transaction
COMMIT and ROLLBACK
Dynamic SQL
EXEC
EXECUTE IMMEDIATE
APPLY_FILTER
Exception Handling
DECLARE EXIT HANDLER
DECLARE CONDITION
SIGNAL and RESIGNAL
Exception Handling Examples.997.10 ARRAY
DECLARE ARRAY-TYPED VARIABLE
SET AN ELEMENT OF AN ARRAY
RETURN AN ELEMENT OF AN ARRAY
UNNEST
ARRAY_AGG
TRIM_ARRAY
CARDINALITY
CONCATENATE TWO ARRAYS
Index-Based Cell Access to Table Variables
Emptiness Check for Tables and Table Variables
Get Number of Records for Tables and Table Variables
SQL Injection Prevention Functions
Explicit Parallel Execution
Calculation Engine Plan Operators
Data Source Access Operators
CE_COLUMN_TABLE
CE_JOIN_VIEW
CE_OLAP_VIEW
CE_CALC_VIEW
Relational Operators
CE_JOIN
CE_LEFT_OUTER_JOIN
CE_RIGHT_OUTER_JOIN
CE_PROJECTION
CE_CALC
CE_AGGREGATION
CE_UNION_ALL
Special Operators
CE_VERTICAL_UNION
CE_CONVERSION
TRACE
Procedure and Function Headers
HANA Spatial Support
System Variables
::CURRENT_OBJECT_NAME and ::CURRENT_OBJECT_SCHEMA
::ROWCOUNT
Query Parameterization: BIND_AS_PARAMETER and BIND_AS_VALUE
Supportability
M_ACTIVE_PROCEDURES
Retention and Memory Tracking in M_ACTIVE_PROCEDURES
 Query Export
SQLScript Query Export
Type and Length Check for Table Parameters
SQLScript Debugger
Conditional Breakpoints
Watchpoints
Break on Error
Save Table
Best Practices for Using SQLScript
Reduce Complexity of SQL Statements
Identify Common Sub-Expressions
Multi-Level Aggregation
Understand the Costs of Statements
Exploit Underlying Engine
Reduce Dependencies
Avoid Mixing Calculation Engine Plan Operators and SQL Queries
Avoid Using Cursors
Avoid Using Dynamic SQL
Developing Applications with SQLScript
Handling Temporary Data
SQL Query for Ranking
Calling SQLScript From Clients
Calling SQLScript from ABAP
Calling SQLScript from Java
Calling SQLScript from C#
Appendix
Example code snippets
ins_msg_proc

Más información



0 comments:

Publicar un comentario

Nota Importante: los comentarios son para agradecer, comentar o sugerir cambios (o hacer preguntas) sobre el artículo de arriba.


SAP y el logotipo de SAP son marcas comerciales registradas de SAP AG en Alemania y en varios otros países. No estamos afiliados ni relacionados con ninguna división o subsidiaria de SAP AG.