关键词:
Cbase数据库
编译原理
SQL引擎
预编译技术
摘要:
网络的普及和手机银行的使用,使得金融业务的数据量大增,给金融系统的数据库带来很大的压力。在银行普遍使用的DB2价格高昂且逐渐不堪重负的情况下,某银行自主研发了Cbase分布式数据库,根据金融业务进行定制性开发。根据银行的具体需求来看,Cbase目前开发的主要目标是对其查询速度,更新速度,事务处理能力等方面的整体性能进一步提升,以在特殊的交易高峰期也能轻松承受负荷。在深入分析了Cbase数据库的SQL查询引擎部分的具体设计,并对比了当前主流数据库的设计思路和整体架构的基础上,发现Cbase目前查询优化不够完善,生成可执行计划需要较长时间。并且Cbase内部结构复杂,对SQL注入难以防范。预编译功能可以使相同SQL一次编译多次使用,从而减少了对复杂SQL的编译次数,降低生成可执行计划的时间开销,通过降低SQL引擎解析SQL的时间来提高处理速度,达到降低响应时间的目的。从而弥补查询优化暂时不足的情况,提升Cbase的吞吐量,预编译使用参数化查询还可以防止注入攻击。为了解决Cbase对性能提升的需求,对SQL引擎这一问题进行优化,并对SQL注入进行防范,需要使用预编译技术对SQL引擎使用预编译技术开发预编译功能,并使预编译可持久化。在对Cbase中SQL引擎深入分析和研究的基础上,主要做了以下工作:(1)对性能优化方式进行了分析,并对预编译功能的接口需求做了详细分析和设计。(2)根据Cbase的开发规范和SQL引擎的架构设计思路,按照实际需求对预编译功能进行接口设计,整体流程设计以及存储和管理机制设计,还分析了预编译可持久化的问题,设计出相应的处理方式,以及针对防注入问题设计参数化查询,并按照设计进行开发。(3)最后阐述Cbase系统运行硬件条件,采用测试用例和测试思路结合的方式介绍系统测试过程,并根据测试结果进行分析并给出结论。测试结果表明,预编译功能的使用不仅能降低查询优化的缺陷对SQL引擎的影响,还提升了SQL引擎对所有查询和更新SQL的处理速度,并且预编译功能支持参数化查询,对防止SQL注入也提供了帮助,对数据库多了一层保护。