除了更好的SQL语义分析层以外,Inceptor包含强大的优化器保证SQL在引擎上有最佳的性能。Inceptor包含3级优化器:首先是基于规则的优化器,应用静态优化规则并生成一个逻辑执行计划,其次是基于成本的优化器,通过衡量多个不同执行计划的CPU,IO和网络成本,来选择一个更合理的计划并生成物理执行计划;最后是代码生成器,对一些比较核心的执行逻辑生成更高效的执行代码或者Java Byte Code,从而保证SQL业务在分布式平台上有最佳性能。、
存储过程编译器 PL/SQL Compiler
国内现有的数据仓库应用大都基于SQL 2003,而且大量使用存储过程来构建复杂应用。因此除了SQL编译器以外,Transwarp Inceptor还包含存储过程编译器用于对存储过程的编译和执行。
Inceptor支持Oracle PL/SQL 和 DB2 SQL PL两大主流SQL标准,包括完整的数据类型、流程控制、Package、游标、异常处理以及动态SQL执行,并且支持在存储过程中做高速统计,增删改查与分布式事务操作。因此,有了存储过程编译器的补充,Inceptor可以满足绝大部分数据应用的从关系型数据库到Inceptor平台的迁移。
除了SQL语法层面的支持,存储过程编译器包含一个完整的优化器,包含CFG Optimizer,Parallel Optimizer,和DAG Optimizer。CFG Optimizer对存储过程中的代码进行优化,完成循环展开,冗余代码消除,函数内联等主要优化。Parallel Optimizer将一些原本串行的逻辑做并行化处理,利用集群的计算能力来提高整体执行速度,对一些关键的功能如游标的性能提升非常明显。DAG Optimizer会根据生成的DAG图二次优化,生成更合理的物理执行计划,重点降低了shuffle等任务开销。
为了有效的和其他数据库兼容,Inceptor支持通过不同的方言设置来隔离不同的SQL标准之间的差异,从而避免数据计算和处理标准的二义性,因此保证数据处理的正确性。