摘要:在数据库开发和优化过程中,查询计划是一个重要的工具。它可以帮助我们理解 SQL查询的执行过程,从而优化查询性能。本文将系统阐述在GBase 8s数据库中查询计划的使用方法,同时详细解析如何读取与分析查询计划的具体内容。
在数据库开发和优化过程中,查询计划是一个重要的工具。它可以帮助我们理解 SQL查询的执行过程,从而优化查询性能。本文将系统阐述在GBase 8s数据库中查询计划的使用方法,同时详细解析如何读取与分析查询计划的具体内容。
数据准备
在脚本prepare_data.sh里,完成了建表,插入数据,截取内容如下:
set explain on
“set explain on”是GBase 8s后台查看执行计划的命令,在执行SQL语句执行该语句。
选项:
ON: 在为每个后续查询生成评估并将结果写入当前目录中的输出文件。如果文件已经存在,那么新输出会附加到现有文件中。
AVOID_EXECUTE:在数据库服务器将查询计划打印到输出文件中时,防止SELECT、INSERT、UPDATE 或者DELETE语句执行。
OFF: 终止SET EXPLAIN 语句,不再为后续查询生成评估或不再将评估写入输出文件。
FILE TO: 为每个后续查询生成评估并使能够指定输出文件的位置。
下面SQL语句的查询计划,执行该SQL语句:
如果只想了解SQL语句的查询计划但不希望执行SQL语句,可以执行:
如果想了解SQL语句的查询计划并将结果输出到自己指定的文件,该文件为数据库服务端的文件信息:
阅读查询计划
执行计划包含以下几部分:
(1)执行时间(OPTIMIZATION TIMESTAMP): 执行SQL语句的实际时间
(2)查询语句:执行计划的原SQL语句
(3)预估开销值(Estimated Cost):优化器用来决定查询路径的数值。与查询耗时不直接相关,不能用于比较不同SQL的执行效率,可用于比较相同SQL不同执行计划的执行开销。
(4)预估返回行数( Estimated # of Rows Returned):预估SQL语句返回的数据行数。
(5)表的访问顺序
(6)表的访问方法
(7)使用的索引路径
(8)实际执行情况统计
根据执行计划的划分,在下面的例子中一一对应说明:
GBASE有话说
通过本文的介绍,相信您已经了解如何在GBase 8s数据库中生成和查看查询计划,并对其内容进行解读和分析。借助查询计划工具,我们可以优化SQL查询逻辑,改善数据库运行性能,从而构建更高效的数据处理体系。
来源:GBASE南大通用