Reading Query Plans
这是有关性能调优的三部分系列文章中的第一篇,其中包含以下文章:
第1部分:阅读查询计划
第2部分: 使用系统表对Vertica查询性能进行故障排除
第3部分:重新设计投影以进行查询优化
Query Plans
查询计划是Vertica查询优化器为在Vertica数据库中执行语句而选择的一系列阶梯状的路径。Vertica可以以多种不同的方式执行查询以达到相同的结果。查询优化器创建一个计划,以最低的执行成本执行查询。Vertica用户对查询运行EXPLAIN,以分析数据库如何处理查询并查看Vertica用于执行查询的路径的直观表示。
The EXPLAIN Statement
EXPLAIN语句返回指定sql的执行步骤,该步骤会被优化器进行优化。您可以使用此信息来分析和研究查询。默认情况下,EXPLAIN 将查询计划表示为层次结构。每个级别表示优化器为执行查询而定义的单个数据库操作。解释输出还将. dot语言附加到源文件中,使您能够以图形方式显示此输出。
考虑以下带有EXPLAIN语句的查询。
EXPLAIN SELECT DISTINCT s.product_key,p.product_description
FROM store.store_sales_fact S,public.product_dimension p
WHERE s.product_key = p.product_key
AND s.product_version = p.product_version
AND s.store_key IN(
SELECT store_key
FROM store.store_dimension
WHERE store_state ='MA')
ORDER BY s.product_key;
下一节将提供有关EXPLAIN语句和输出选项的详细信息。
EXPLAIN Output Options
EXPLAIN语句具有以下类型的输出:
EXPLAIN option:EXPLAIN 返回有关查询执行计划的详细信息,而不执行查询。您可以将输出查看为文本输出还是图形输出。
EXPLAIN LOCAL VERBOSE option:EXPLAIN LOCAL VERBOSE 返回用于分析复杂查询的详细信息。详细信息包括成本和每个资源的内存使用情况。您可以将输出查看为文本输出还是图形输出。
EXPLAIN Results
EXPLAIN option 返回有关查询执行计划的详细信息,而不执行查询。查询优化器考虑不同的查询sql,投影组合和JOIN顺序,从而导致不同的执行计划。
然后,为了选择最佳查询计划,优化器将执行统计分析。它为每个操作分配成本,并选择成本最低的计划作为执行计划。Vertica使用两种不同的EXPLAIN option 返回所选的查询计划:
Textual output:查询计划的纯文本表示。查询计划详细列出了步骤,Vertica从下到上执行查询计划。
Graphical output:查询计划使用.DOT语言。
您可以使用管理控制台查看树路径。
您可以使用Graphviz等Web可视化工具来查看图形表示。
与纯文本计划相比,此表示提供了更多细节,并为复杂查询提供了更好的可读性和表示形式。
Textual Output for EXPLAIN
本文档前面显示的示例查询的访问路径信息描述了该查询的运算符,成本,投影,用到的列名和路径ID。
<