摘要
基于多核CPU和GPU异构平台的列数据库可用于海量数据和复杂查询,但其优化主要集中在底层,并且后端的执行序列只能通过手工硬编码生成,不能适应多样的SQL查询语句。针对该问题,设计并实现一个将SQL查询语句自动转化成执行序列的编译器,研究多个复杂表达式中的公共子表达式消除和原语依赖图合并方法。与手工编码的比较结果表明,该编译器能够提高算术表达式的计算速度,缩短执行SQL查询语句的时间。
A column-oriented database based on a heterogeneous platform of multi-core CPU and GPU can be used for mass data and complex queries. However, the optimization in this database is mainly on physical level and execution sequence for its back-end can only be generated manually, resulting in hard adaptation to varieties of SQL query statements. To solve this problem, this paper designs and implements a compiler that translates SQL query statements into execution sequence. It studies Common Subexpression Elimination(CSE) method in multiple complex expressions and merging method of multiple primitive dependency graphs. Comparing the results with situations where no compiler is used in GSQL, it can be found that this compiler can improve speed of computing multiple complex expressions efficiently and reduce time of processing multiple SQL query statements.
出处
《计算机工程》
CAS
CSCD
2013年第6期60-65,共6页
Computer Engineering
基金
广东省科技计划基金资助项目(2011A010801008
2011A090200122
2011A090200027)
关键词
列数据库
原语
编译器
依赖图
公共子表达式消除
查询优化
column-oriented database
primitive
compiler
dependency graph
Common Subexpression Elimination(CSE)
queryoptimization