SQL优化器探讨

http://tech.ddvip.com   2006年12月30日    社区交流

本文详细介绍SQL优化器探讨

  多年以来,商业数据库生产商一直致力于提高数据库的查询性能。尽管他们持续地付出努力和辛勤地工作,我们还是无法看到关系型数据库系统(RDBMS)在性能上有显著的提高。用户继续忍受性能低下的SQL语句,数据库专家们继续在SQL语句优化的泥潭中痛苦挣扎。

  本文将介绍数据库查询优化器是如何工作的、为什么问题持续存在,并深入探讨数据库查询优化器将来的发展方向。

  数据库查询优化器

  数据库查询优化器是RDBMS服务器的一个组成部分。对于基于成本的优化,数据库查询优化器的任务是,通过产生可供选择的执行计划,找到最低估算成本的执行计划,来优化一条SQL语句。它在SQL语句性能表现上扮演了至关重要的角色。

  当一条SQL语句被送入RDBMS服务器,它将会被解析并提交给数据库查询优化器。查询优化器将会进行查询重写和表达式评估,以产生可供选择的执行计划。产生可供选择的执行计划的数量,取决于在RDBMS中定义的计划空间(PLAN SPACE)大小。对于每个待选的执行计划,成本估计将被计算,带有最小成本的执行计划将被选取用来执行SQL语句。这种方法存在着两个无法解决的问题:无法产生全部可能的可选执行计划和成本估计的不准确。

  新的SQL优化概念——外部SQL重写器

  一个有经验的程序员,把有问题的SQL语句的速度提高数千倍是很常见的。凭着对具体数据库特征的了解,对SQL语句进行语法的重新构造。一个开发人员能够帮助查询优化器获得更好的执行计划,而这执行计划是查询优化器无法靠自身独立工作产生的。这给予我们一个启示,我们是否能通过计算机模拟人的行为,来实现同样的目的呢?

  

来源:中国计算机报    作者:许丽明    责编:豆豆技术应用

正在加载评论...