在 ABAP 层执行 Open SQL 的幕后操作 - 武侠版

简介: 在 ABAP 层执行 Open SQL 的幕后操作 - 武侠版

在ABAP系统中使用事务码编写OPEN SQL向数据库发起查询时,应用层和数据库层之间会发生一系列的交互。让我们详细介绍这个过程,并结合下面这张 ABAP 三层架构图:


image.png

用户触发事务码:

用户在ABAP系统中输入事务码,比如SE38(ABAP编辑器)或SE11(数据字典),并按下回车键。这将触发ABAP系统在应用层执行相应的事务处理。


事务处理的开始:

当事务码被触发后,ABAP系统开始执行相应的事务处理逻辑。这包括处理用户输入、验证数据、调用相应的函数模块、方法或类等。


编写OPEN SQL查询:

在事务处理逻辑中,开发人员编写OPEN SQL查询语句。OPEN SQL是ABAP语言的一种特殊语法,它允许在ABAP应用程序中直接向关系型数据库发送SQL查询。


SQL解析和优化:

当OPEN SQL查询被执行时,ABAP系统将解析查询语句并生成相应的SQL命令。然后,数据库优化器将对SQL命令进行优化,确定最佳的查询执行计划。


数据库连接:

ABAP系统通过数据库连接池与底层数据库建立连接。数据库连接池是一组预先创建的数据库连接,可以重复使用以提高性能和效率。ABAP系统从连接池中获取一个可用的连接与数据库通信。


数据库请求传输:

ABAP系统通过已建立的数据库连接将SQL命令传输到数据库服务器。这涉及将SQL命令封装成数据库可以理解的格式,并通过网络协议发送给数据库服务器。


SQL执行和数据处理:

数据库服务器接收到SQL命令后,执行相应的查询操作。它会读取、更新或删除数据库中的数据,并将结果返回给ABAP系统。


数据传输:

数据库服务器将查询结果封装成适当的格式,并通过网络协议将数据传输回ABAP系统。


数据处理和展示:

ABAP系统接收到数据库返回的查询结果后,对数据进行处理和转换,以适应应用程序的需求。开发人员可以使用结果集进行进一步的计算、转换或展示。


事务处理的完成:

一旦数据被处理和展示,事务处理过程完成。ABAP系统可能会执行后续的逻辑,例如提交事务或回滚事务。


总结起来,当在ABAP系统中使用事务码编写OPEN SQL向数据库发起查询时,应用层负责解析和执行查询,并通过数据库连接与数据库服务器进行通信。数据库服务器负责接收和处理SQL命令,并返回查询结果。这种应用层和数据库层之间的交互使得ABAP系统能够与底层数据库进行有效的数据交互和操作。


上述介绍的武侠版:


那时,在ABAP的江湖里,一位勇敢的开发者挥舞着键盘,触发着事务码的咒语。他的手指在键盘上跳跃,犹如江湖剑客舞动着刀剑,开启了一场应用层和数据库层的纷争。


事务处理的旗帜在ABAP的天空中升起,纷飞的代码随之而来。在这场纷争的核心,开发者运筹帷幄,编写OPEN SQL的战书。这是一种特殊的武艺,让他可以直接向数据库发起查询的挑战。


SQL语句如潮水般涌现,被纳入系统的怀抱。它们被解析,优化,然后转化成无形的剑气。数据库优化器展现了它的身手,决定了最佳的查询计划,如同武林中的绝学。


随后,ABAP的使者与数据库建立了纽带。数据库连接池成了他们的武器库,提供了可重复使用的连接,为纷争增添了一份高效与快速。一根根连接之线被拉起,链接着江湖与山河。


纷争进入高潮,SQL命令腾空而起,穿越了时空的屏障。它们化作电光,穿越网络的长空,奔向数据库的世界。那里,一位高手静待着,他接收命令,执剑行刺。


刹那间,数据库内部燃起了熊熊烈火。数据被揭示,被改写,被删除,如同江湖中的英雄传说。那位高手,数据库的守护者,将数据的命运牢牢把握在手中,诉说着它们的故事。


胜负已分,结果如风从数据库传回。ABAP的使者捧着这些珍贵的战果,带回了自己的世界。数据经过处理和转换,为江湖中的人们所用。它们如同虚实交错的奇珍异宝,经过开发者的巧手,展现出不同的光芒。


纷争结束,事务处理告一段落。ABAP的江湖中响起了胜利的欢呼声。这位勇敢的开发者,可能还会继续后续的挑战,提交或者回滚,如同江湖中的招式。然而,他心知肚明,这场纷争只是江湖中的一小朵浪花,新的挑战即将来临。

相关文章
|
7月前
|
SQL 网络协议 数据库连接
在 ABAP 层执行 Open SQL 的幕后操作 - 武侠版
在 ABAP 层执行 Open SQL 的幕后操作 - 武侠版
36 0
|
2天前
|
Java SQL 数据库
ABAP 7.40 新语法介绍系列之五 - 增强的 ABAP OPEN SQL 语法介绍试读版
ABAP 7.40 新语法介绍系列之五 - 增强的 ABAP OPEN SQL 语法介绍试读版
16 0
ABAP 7.40 新语法介绍系列之五 - 增强的 ABAP OPEN SQL 语法介绍试读版
|
8月前
|
SQL 数据库
使用事务码 SAT 比较传统的 SELECT SQL 语句和 OPEN / FETCH CURSOR 分块读取 ABAP 数据库表两种方式的性能差异试读版
使用事务码 SAT 比较传统的 SELECT SQL 语句和 OPEN / FETCH CURSOR 分块读取 ABAP 数据库表两种方式的性能差异试读版
65 0
|
SQL 数据挖掘
【数据开发系列】 - 数据开发常用SQL汇总
数据开发或数据分析同学常用的很多SQL并不一定会记全,但是必须得记住。熟记心里提升工作效率!
483 0
|
SQL 存储 算法
MySQL数据库:第十六章:sql高级函数
MySQL数据库:第十六章:sql高级函数
|
SQL 存储 数据可视化
程序员必须清楚的 10 个高级 SQL 概念!
随着数据量持续增长,对合格数据专业人员的需求也会增长。具体而言,对SQL流利的专业人士的需求日益增长,而不仅仅是在初级层面。 因此,Stratascratch的创始人Nathan Rosidi以及我觉得我认为10个最重要和相关的中级到高级SQL概念。
130 0
程序员必须清楚的 10 个高级 SQL 概念!
|
SQL 数据库
德国同事Heiko开发的ABAP工具,能检测HANA数据库执行SQL的CPU tim
德国同事Heiko开发的ABAP工具,能检测HANA数据库执行SQL的CPU tim
84 0
德国同事Heiko开发的ABAP工具,能检测HANA数据库执行SQL的CPU tim
|
SQL
ABAP 740新的OPEN SQL增强特性
ABAP 740新的OPEN SQL增强特性
100 0
ABAP 740新的OPEN SQL增强特性
|
BI SQL 项目管理
一次"失败的"SQL开发经历
趁着项目上线的空闲,给大家总结一下,在开发项目过程中遇到的一些问题。之所以说它是"失败的"项目,是因为遇到的一些问题是完全可以避免,即使最后按要求完成了任务需求。
1285 0
一次"失败的"SQL开发经历
|
SQL 分布式计算 Apache
【译】用SQL统一所有:一种有效的、语法惯用的流和表管理方法
现在还没有一个统一的流式SQL语法标准,各家都在做自己的。本文在一些业界应用的基础上提出了一个统一SQL语法的建议。Spark同样存在这个问题,社区版本在流式SQL上迟迟没有动作。EMR Spark在今年上半年提供了自己设计版本的流式SQL支持,也会在后续的更新中吸收和支持这些优秀的设计建议。