技术开发 频道

数据库性能调优技术之单表执行计划

  【IT168 文档一、概述

  这篇文章是数据库性能调优技术的第二篇。上一篇讲解的索引调优是数据库性能调优技术的基础。这篇讲解的深入理解单表执行计划,是数据库性能调优的有力工具。

  查询语句可以有多种可选执行计划,如何选择效率最高的执行计划?达梦数据库、oracle数据库、sql server数据库都是采用基于成本的查询优化,对备选执行计划进行打分,选择大家最小的执行计划进行执行。这些内容,我会在后续的几篇文章中进行详细的描述。在此之前,我们首先需要掌握如何理解数据库执行计划。这篇文章讲解只涉及单表操作的执行计划。

  达梦数据库、oracle数据库、sql server数据库都可以显示给定语句的执行计划。我详细分析了这三个数据库的执行计划,三者之间并无本质区别。

  所以本文的内容适合于这三个数据库。同样,也应该适合绝大多数其它的数据库。

  单表执行的深入理解,是了解多表执行计划的基础。达梦数据库显示的执行计划时,显示的信息会多一些。

  因此,这篇文章中我选择达梦数据库作为实例数据库来讲解执行计划的原理。

  读完本文后,应该能够读懂这三个数据库的单表执行计划。

  二、深入理解数据库执行计划

  达梦数据库的执行计划有两种显示方式:第一种为图形化的显示方式;第二种为文本式的显示方式。这里采用第二种方式进行讲解。

  理解执行计划,是迈向理解数据库性能调优的重要一步。从执行计划中,我们可以看出数据库是如何执行查询语句,并根据执行计划判断出该查询语句的执行是否高效,以及如何进行优化。

  下面我们将通过一些例子来理解数据库执行计划。

  1.没有索引的全表扫描过滤如何执行?

  构造处执行场景:

  create table t1(c1 int,c2 int);
  
insert into t1 values(1,1);
  
insert into t1 values(2,2);
  
insert into t1 values(3,3);
  
insert into t1 values(4,4);
  
insert into t1 values(5,5);
  
insert into t1 values(6,6);

  查询语句为:

 select * from t1 where c1=2;
0
相关文章