服务热线:

4006-6500-28

新闻资讯
联系我们

电话:400-665-0028


您当前位置:首页 > 新闻资讯  > 行业资讯 > 正文行业资讯
学会查看数据库执行计划
服务热线:4006-6500-28 新购有特价、金蝶老客户升级金蝶云产品可以享受5折优惠,送手机、送话费,好礼不断!

什么是执行计划?

执行计划(execution plan,也叫查询计划或者解释计划)是数据库执行 SQL 语句的具体步骤,例如通过索引还是全表扫描访问表中的数据,连接查询的实现方式和连接的顺序等。


如何查看执行计划?

    以sqlserver为例



看懂执行计划

从上图可以看出,执行计划可以很直观的显示一个sql语句的执行过程,查询了那些表,怎么查询的,走没走索引,走的哪些索引,都可以一眼就看出来,这对我们分析sql语句的性能有很大帮助。


举例说明:

有这样一条sql语句:select * from test_table2 where pay_id in (1,2,3)

我们在表test_table2给pay_id加了索引,按理说它查找的时候会走索引,我们看看执行计划是怎么执行的。



68%的开销是用于键查找,没走索引, 32%的开销走了pay_id的索引查找,为什么加了索引,还有一部分没走索引呢?这是因为我们查找的select * ,查找的是所有字段,表的其他字段,每加索引,只有pay_id加了,所以只走了一部分索引查找,但是性能最高点,仍然是键查找,怎么让键查找变成索引查找呢?我们都会想到把表的所有字段都加上索引,当然这是不现实的,也是没必要的。


  1.     针对上面的问题,如果pay_id是主键索引,也不会走键查找,我们可以看看效果:

    表test_table2的主键是Id,通过主键id查找所有字段,可以看到是不会有键查找的,全部走的是聚集索引,不会二次查找,像非聚集索引会走二次查找,所以才会产生像刚刚发生的那样,走键查找的情况。

  2. 还有一种也可以避免走键查找,就是创建覆盖索引。像这样:


结论:

学会看执行计划,对我们分析sql语句性能很重要,也顺带介绍了聚集索引,非聚集索引,覆盖索引。