SQLScript 背后的动机是将数据密集型应用程序逻辑嵌入到数据库中。目前,应用程序使用 SQL 仅将非常有限的功能卸载到数据库中,大多数应用程序逻辑通常在应用服务器上执行。其影响是,需要将要进行操作的数据从数据库复制到应用程序服务器,反之亦然。在执行数据密集型逻辑时,就处理器和数据传输时间而言,这种数据复制可能非常昂贵。此外,使用 ABAP 或 JAVA 等命令语言处理数据时,开发人员倾向于编写遵循一次性语义(例如,对表中的行循环)的算法。但是,与声明性集导向型语言(如 SQL)相比,这些算法很难进行优化和并行化。
SAP HANA 数据库针对现代技术趋势进行了优化,并利用了现代硬件,例如,将数据驻留在主内存中并允许多核 CPU 上大规模并行化。SAP HANA 数据库的目标是通过使用此类硬件来支持应用程序需求。SAP HANA 数据库向应用程序公开了一个非常复杂的界面,由多种语言组成。这些语言的可表达性远远超出了 OpenSQL 所能实现的。SAP HANA 数据库的 SQL 扩展集(允许开发人员将数据密集型逻辑推送到数据库)称为 SQLScript。从概念上讲,SQLScript 与 SQL 标准中定义的存储过程相关,但 SQLScript 旨在提供卓越的优化可能性。SQLScript 应在 SAP HANA 的其他建模结构(例如分析视图或属性视图)不足时使用。有关如何以最佳方式利用不同视图类型的详细信息,请参阅“利用基础引擎”。
SQL 扩展集是避免大量将数据复制到应用服务器以及利用数据库的复杂并行执行策略的关键。SQLScript 可解决以下问题: