首页 理论教育分布式数据库技术:查询处理步骤

分布式数据库技术:查询处理步骤

【摘要】:从数据库里检索数据所涉及的活动称为查询处理。对于一个高级查询,DBMS可以使用不同的技术处理、优化和执行。在高级查询语言里,任何一个给定的查询可以有不同的处理方式,每个查询需要的资源也是不同的。图6.1SQL查询命令的执行步骤

从数据库里检索数据所涉及的活动称为查询处理(query processing)。查询处理的目的是将使用高级程序语言(如SQL语言)编写的程序转换成一种(实现关系代数的)使用低级语言表示的、正确的和有效的执行策略,并执行该策略,以检索所需要的数据。其中一个重要内容是查询优化(query optimization)。

选择处理查询的有效执行策略的活动称为查询优化。同一个高级查询有许多等价转换,优化即选出其中的一个,评判依据是选择使用的资源最少、花费的时间最短的那个。对于一个高级查询(SQL形态),DBMS可以使用不同的技术处理、优化和执行。大致过程为:首先扫描用高级查询语言标识的表达式,并分析和验证它们;然后用扫描器识别查询文本里的语言成分(称为token),用分析器检查查询语法的正确性,并(通过存取数据目录)验证属性名和关系名是否有效;最后生成该查询的内部表示(如查询树或查询图)。优化器会生成多个计划,从中选出估计执行开销最小的计划。

在高级查询语言里,任何一个给定的查询可以有不同的处理方式,每个查询需要的资源也是不同的。DBMS扮演的角色是选择优化的方式处理查询。由于受时间/空间复杂性的限制,优化器往往无法做到最优化,通俗来讲,优化器只试图找出足够好的策略。

查询优化的基本步骤如下。

●分析查询表达式,列举可选择的替代方案,一般替代方案数量很大。(www.chuimin.cn)

●估算列举的每个替代方案的开销,选择最小估算成本的方案。

这样,SQL查询命令的执行步骤如图6.1所示。

图6.1 SQL查询命令的执行步骤