技术开发 频道

DM6.0基于成本的优化机制原理

  【IT168 文档】“成本”一词被广泛使用,一般指进行某项工作花费的代价。目前,数据库产品中也引入了基于成本的优化方法。达梦数据库(以下简称DM)中优化器是采用基于成本的优化,对SQL语句执行中各个环节进行代价评估,基于DM成本计算模型计算出成本,形成最优的执行计划去执行。总之,DM基于成本优化的最终目的是花费最小的代价,达到最优的性能。

  DM中成本计算的依据是统计信息,主要包含表数据的分布、重复率、索引信息等。对于一个多表连接查询,优化器首先根据待处理数据库对象的统计信息,计算出相应的成本;然后调整表对象的执行顺序、连接方式、选择合适的索引,形成最优的执行计划;最后执行并输出结果。

  以上对DM基于成本的优化机制做了简要介绍,对相关概念进行阐述,下面对DM优化机制的发展进行对比分析,最后通过具体例子证明基于成本的优化机制带来的好处。供客户、相关技术人员参考。

  DM的查询优化机制经历了从基于规则的到基于成本的发展,下面简要介绍这两种机制在的处理过程。

  (1)DM5.0优化机制

  DM5是基于规则和成本的混合优化机制,其中成本优化只是进行简单情况的成本计算,可以认为DM5.0是基于规则的优化。语句执行过程是首先将语句转换成系统可识别的语法树,然后进行词法、语法分析,接着进行优化处理,最后形成执行计划去执行。具体过程如图1所示:

  (2)DM6.0优化机制

  DM6.0庰弃了基于规则的优化方式,采用完全基于成本的计划,通过各个环节的成本计算,形成最优执行计划,语句处理过程如图2所示:

  (3)DM5.0与DM6.0优化机制的异同

  在处理数据量小、简单查询的情况下,DM5.0和DM6.0的优化机制基本会采用相同的处理方式,甚至基于规则的优化会更高效,因为可以省去过多的成本计算和对比分析。

  对于复杂查询、大数据量的情况下,基于成本的优势就体现出来,尽管会进行较多的成本计算分析,但是这些消耗对于性能的提升基本可以忽略。

  DM5.0采用基于规则和成本的混合优化机制,虽然包含了简单的成本计算,但是不够完善和成熟,基本上还是依赖既定的规则进行优化,部分情况下无法生成最优执行路径,例如在索引选择、驱动表的指定、连接方式等方面成为性能瓶颈的重要因素之一。

  DM6.0采用基于成本的优化机制,在处理SQL语句方面充分体现了灵活性和智能性。针对不同的数据量、数据分布、索引类型等信息,会采用不同的方式进行处理,有效的利用系统资源,提高执行效率。

  实际应用中,DM5.0和DM6.0对于同样的语句环境,分别会采用各自的处理方式,具体可参考下图:

DM5.0和DM6.0处理方式对比

  从以上例子可以看出,基于成本的优化总是会根据上下文环境,通过代价计算选择最优的执行路径,达到较好的性能。可见DM基于成本的优化机制带来的好处还是值得我们坚定地去使用和完善它。

  DM成本优化机制是一套完整的优化体系,内部的相关性很强,是优化器的核心。移植到DM的应用系统性能均有一定程度的提升,得到客户的一致认可和好评。随着DM产品不断的完善,DM成本优化机制会越来越智能,满足客户更高层次的需求。

0
相关文章