云服务器内容精选
-
功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,这是计划生成器估算执行该语句将花费多长的时间。 若指定了ANALYZE选项,则该语句会被执行,然后根据实际的运行结果显示统计数据,包括每个计划节点内时间总开销(毫秒为单位)和实际返回的总行数。这对于判断计划生成器的估计值是否接近实际值非常有用。
-
语法格式 显示SQL语句的执行计划,支持多种选项,对选项顺序无要求。 1 EXPLAIN [ ( option [, ...] ) ] statement; 其中选项option子句的语法为。 1 2 3 4 5 6 7 8 9 10 11 12 13 ANALYZE [ boolean ] | ANALYSE [ boolean ] | VERBOSE [ boolean ] | COSTS [ boolean ] | CPU [ boolean ] | DETAIL [ boolean ] | NODES [ boolean ] | NUM_NODES [ boolean ] | BUFFERS [ boolean ] | TIMING [ boolean ] | PLAN [ boolean ] | BLOCKNAME [ boolean ] | FORMAT { TEXT | XML | JSON | YAML } 显示SQL语句的执行计划,且要按顺序给出选项。 1 EXPLAIN { [ ANALYZE | ANALYSE ] [ VERBOSE ] | PERFORMANCE } statement;
-
参数说明 statement 指定要分析的SQL语句。 ANALYZE boolean | ANALYSE boolean 显示实际运行时间和其他统计数据。当两个参数同时使用时,在option中排在后面的一个生效。 取值范围: TRUE(缺省值):显示实际运行时间和其他统计数据。 FALSE:不显示。 VERBOSE boolean 显示有关计划的额外信息。 取值范围: TRUE(缺省值):显示额外信息。 FALSE:不显示。 COSTS boolean 包括每个规划节点的估计总成本,以及估计的行数和每行的宽度。 取值范围: TRUE(缺省值):显示估计总成本和宽度。 FALSE:不显示。 CPU boolean 打印CPU的使用情况的信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE(缺省值):显示CPU的使用情况。 FALSE:不显示。 DETAIL boolean 打印DN上的信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE(缺省值):打印DN的信息。 FALSE:不打印。 NODES boolean 打印query执行的节点信息。 取值范围: TRUE(缺省值):打印执行的节点的信息。 FALSE:不打印。 NUM_NODES boolean 打印执行中的节点的个数信息。 取值范围: TRUE(缺省值):打印DN个数的信息。 FALSE:不打印。 BUFFERS boolean 包括缓冲区的使用情况的信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE:显示缓冲区的使用情况。 FALSE(缺省值):不显示。 TIMING boolean 包括实际的启动时间和花费在输出节点上的时间信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE(缺省值):显示启动时间和花费在输出节点上的时间信息。 FALSE:不显示。 PLAN boolean 是否将执行计划存储在plan_table中。当该选项开启时,会将执行计划存储在plan_table中,不打印到当前屏幕,因此该选项为on时,不能与其他选项同时使用。 取值范围: TRUE(缺省值):将执行计划存储在plan_table中,不打印到当前屏幕。执行成功返回EXPLAIN SUC CES S。 FALSE:不存储执行计划,将执行计划打印到当前屏幕。 BLOCKNAME boolean 是否显示计划的每个操作所处于的查询块。当该选项开启时,会将每个操作所处于的查询块的名字输出在Query Block列上,方便用户获取查询块名字,并使用Hint修改执行计划: TRUE(缺省值):显示计划时,将每个操作所处于的查询块的名字输出在新增列Query Block列上。该选项需要在pretty模式下使用。见指定Hint所处的查询块Queryblock章节。 FALSE:不对计划显示产生影响。 FORMAT 指定输出格式。 取值范围:TEXT,XML,JSON和YAML。 默认值:TEXT。 PERFORMANCE 使用此选项时,即打印执行中的所有相关信息。下述为部分信息描述: ex c/r:代表平均每行使用cpu周期数,等于(ex cyc)/(ex row)。 ex row:执行行数。 ex cyc:代表使用的cpu周期数。 inc cyc:代表包含子节点使用的总cpu周期数。 shared hit:代表算子的share buffer命中情况。 loops:算子循环执行次数。 total_calls:生成元素总数。 remote query poll time stream gather:算子用于侦听各DN数据到达CN的网络poll时间。 deserialize time:反序列化所需时间。 estimated time:估计时间。 Network Poll Time:分布式stream网络通信时,表示libcomm接收侧等待数据耗时。 Stream Send time:分布式stream网络通信时,表示libcomm或libpq发送数据耗时。 OS Kernel Send time:分布式stream网络通信时,表示操作系统层发送数据耗时,大于0才会显示。 Wait Quota time:分布式stream网络通信时,表示libcomm等待对端发送quota流控大小耗时,大于0才会显示。 Data Serialize time:分布式stream网络通信时,表示数据序列化时间 。 Data Copy time:分布式stream网络通信时,表示数据复制时间,大于0才会显示。
-
参数说明 statement 指定要分析的SQL语句。 ANALYZE boolean | ANALYSE boolean 显示实际运行时间和其他统计数据。当两个参数同时使用时,在option中排在后面的一个生效。 取值范围: TRUE(缺省值):显示实际运行时间和其他统计数据。 FALSE:不显示。 VERBOSE boolean 显示有关计划的额外信息。 取值范围: TRUE(缺省值):显示额外信息。 FALSE:不显示。 COSTS boolean 包括每个规划节点的估计总成本,以及估计的行数和每行的宽度。 取值范围: TRUE(缺省值):显示估计总成本和宽度。 FALSE:不显示。 CPU boolean 打印CPU的使用情况的信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE(缺省值):显示CPU的使用情况。 FALSE:不显示。 DETAIL boolean 打印数据库节点上的信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE(缺省值):打印数据库节点的信息。 FALSE:不打印。 BUFFERS boolean 包括缓冲区的使用情况的信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE:显示缓冲区的使用情况。 FALSE(缺省值):不显示。 TIMING boolean 包括实际的启动时间和花费在输出节点上的时间信息。需要结合ANALYZE或ANALYSE选项一起使用。 取值范围: TRUE(缺省值):显示启动时间和花费在输出节点上的时间信息。 FALSE:不显示。 PLAN boolean 是否将执行计划存储在plan_table中。当该选项开启时,会将执行计划存储在plan_table中,不打印到当前屏幕,因此该选项为on时,不能与其他选项同时使用。 取值范围: ON(缺省值):将执行计划存储在plan_table中,不打印到当前屏幕。执行成功返回EXPLAIN SUCCESS。 OFF:不存储执行计划,将执行计划打印到当前屏幕。 BLOCKNAME boolean 是否显示计划的每个操作所处于的查询块。当该选项开启时,会将每个操作所处于的查询块的名字输出在Query Block列上,方便用户获取查询块名字,并使用Hint修改执行计划: TRUE(缺省值):显示计划时,将每个操作所处于的查询块的名字输出在新增列Query Block列上。该选项需要在pretty模式下使用。见指定Hint所处于的查询块Queryblock。 FALSE:不对计划显示产生影响。 OUTLINE boolean 是否显示计划的Outline Hint信息。 ON:显示计划时,将Outline Hint显示在计划下方 。该选项需要在pretty模式下使用。见Outline Hint。 OFF(缺省值):不显示计划的Outline Hint信息。 ADAPTCOST boolean 在Normal模式下是否显示计划的基数估计方式信息。 ON(缺省值):Normal模式下,在计划节点上展示基数估计的方式,包含默认方式和反馈方式,不对预备语句生效。 OFF:不展示基数估计的方式信息。 FORMAT 指定输出格式。 取值范围:TEXT,XML,JSON和YAML。 默认值:TEXT。 PERFORMANCE 使用此选项时,即打印执行中的所有相关信息。下述为部分信息描述: ex c/r:代表平均每行使用cpu周期数,等于(ex cyc)/(ex row)。 ex row:执行行数。 ex cyc:代表使用的cpu周期数。 inc cyc:代表包含子节点使用的总cpu周期数。 shared hit:代表算子的share buffer命中情况。 loops:算子循环执行次数。 total_calls:生成元素总数。 remote query poll time stream gather:算子用于侦听各DN数据到达CN的网络poll时间。 deserialize time:反序列化所需时间。 estimated time:估计时间。 OPTEVAL boolean 是否显示SCAN算子(当前仅支持seqscan、indexscan、indexonlyscan、bitmapheapscan)的代价淘汰明细,当开启此开关的时候,会在执行计划中显示一个名字为Cost Evaluation Info (identified by plan id)的计划块,该选项仅仅可以和COSTS、VERBOSE、FORMAT三个选项共存。此计划块中的具体参数明细,请参考示例2。 取值范围: TRUE:显示SCAN算子的代价淘汰明细。 FALSE(缺省值):不显示。
-
语法格式 显示SQL语句的执行计划,支持多种选项,对选项顺序无要求。 EXPLAIN [ ( option [, ...] ) ] statement; 其中选项option子句的语法为。 ANALYZE [ boolean ] | ANALYSE [ boolean ] | VERBOSE [ boolean ] | COSTS [ boolean ] | CPU [ boolean ] | DETAIL [ boolean ] | BUFFERS [ boolean ] | TIMING [ boolean ] | PLAN [ boolean ] | BLOCKNAME [ boolean ] | OUTLINE [ boolean ] | ADAPTCOST [ boolean ] | FORMAT { TEXT | XML | JSON | YAML } | OPTEVAL [ boolean ] 显示SQL语句的执行计划,且要按顺序给出选项。 EXPLAIN { [ ANALYZE | ANALYSE ] [ VERBOSE ] | PERFORMANCE } statement;
-
功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,这是计划生成器估算执行该语句将花费多长的时间。 若指定了ANALYZE选项,则该语句会被执行,然后根据实际的运行结果显示统计数据,包括每个计划节点内时间总开销(毫秒为单位)和实际返回的总行数。这对于判断计划生成器的估计值是否接近实际值非常有用。
-
示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 --创建表reason。 gaussdb=# CREATE TABLE reason ( CD_DEMO_SK int NOT NULL, CD_GENDER varchar(10), CD_MARITAL_STATUS varchar(10) ); --为一个INSERT语句创建一个预备语句然后执行它。 gaussdb=# PREPARE insert_reason(int,varchar(10),varchar(10)) AS INSERT INTO reason VALUES($1,$2,$3); gaussdb=# EXECUTE insert_reason(52, 'AAAAAAAADD', 'reason 52'); --查询数据。 gaussdb=# SELECT * FROM reason; cd_demo_sk | cd_gender | cd_marital_status ------------+------------+------------------- 52 | AAAAAAAADD | reason 52 (1 row) --删除表reason。 gaussdb=# DROP TABLE reason;
-
示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 --创建表reason。 gaussdb=# CREATE TABLE reason ( CD_DEMO_SK int NOT NULL, CD_GENDER varchar(10), CD_MARITAL_STATUS varchar(10) ); --为一个INSERT语句创建一个预备语句然后执行它。 gaussdb=# PREPARE insert_reason(int,varchar(10),varchar(10)) AS INSERT INTO reason VALUES($1,$2,$3); gaussdb=# EXECUTE insert_reason(52, 'AAAAAAAADD', 'reason 52'); --查询数据。 gaussdb=# SELECT * FROM reason; cd_demo_sk | cd_gender | cd_marital_status ------------+------------+------------------- 52 | AAAAAAAADD | reason 52 (1 row) --删除表reason。 gaussdb=# DROP TABLE reason;
-
注意事项 EXPLAIN PLAN不支持在DN上执行。 对于执行错误的SQL语句无法进行计划信息的收集。 PLAN_TABLE中的数据是session级生命周期并且session隔离和用户隔离,用户只能看到当前session、当前用户的数据。 PLAN_TABLE无法与GDS外表进行关联查询。 对于不能下推的查询,执行EXPLAIN PLAN后PLAN_TABLE中的object仅收集到REMOTE_QUERY或CTE等信息。详见示例 2。 EXPLAIN中的PLAN选项表示需要将计划信息存储于PLAN_TABLE中,存储成功将返回“EXPLAIN SUCCESS”。 用户可通过STATEMENT_ID对查询设置标签,输入的标签信息也将存储于PLAN_TABLE中。 执行EXPLAIN PLAN 后会将计划信息自动存储于PLAN_TABLE中,不支持对PLAN_TABLE进行INSERT、UPDATE、ANALYZE等操作。PLAN_TABLE详细介绍见PLAN_TABLE。
-
注意事项 数据库节点对于执行错误的SQL无法进行计划信息的收集。 PLAN_TABLE中的数据是session级生命周期并且session隔离和用户隔离,用户只能看到当前session、当前用户的数据。 EXPLAIN中的PLAN选项表示需要将计划信息存储于PLAN_TABLE中,存储成功将返回“EXPLAIN SUCCESS”。 STATEMENT_ID用户可以对查询设置标签,输入的标签信息也将存储于PLAN_TABLE中。 执行EXPLAIN PLAN 后会将计划信息自动存储于PLAN_TABLE中,不支持对PLAN_TABLE进行INSERT、UPDATE、ANALYZE等操作。PLAN_TABLE详细介绍见PLAN_TABLE。
-
示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 --创建表reason。 gaussdb=# CREATE TABLE reason ( CD_DEMO_SK int NOT NULL, CD_GENDER varchar(10), CD_MARITAL_STATUS varchar(10) ); --为一个INSERT语句创建一个预备语句然后执行它。 gaussdb=# PREPARE insert_reason(int,varchar(10),varchar(10)) AS INSERT INTO reason VALUES($1,$2,$3); gaussdb=# EXECUTE insert_reason(52, 'AAAAAAAADD', 'reason 52'); --查询数据。 gaussdb=# SELECT * FROM reason; cd_demo_sk | cd_gender | cd_marital_status ------------+------------+------------------- 52 | AAAAAAAADD | reason 52 (1 row) --删除表reason。 gaussdb=# DROP TABLE reason;
-
示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 --创建表reason。 gaussdb=# CREATE TABLE reason ( CD_DEMO_SK int NOT NULL, CD_GENDER varchar(10), CD_MARITAL_STATUS varchar(10) ); --为一个INSERT语句创建一个预备语句然后执行它。 gaussdb=# PREPARE insert_reason(int,varchar(10),varchar(10)) AS INSERT INTO reason VALUES($1,$2,$3); gaussdb=# EXECUTE insert_reason(52, 'AAAAAAAADD', 'reason 52'); --查询数据。 gaussdb=# SELECT * FROM reason; cd_demo_sk | cd_gender | cd_marital_status ------------+------------+------------------- 52 | AAAAAAAADD | reason 52 (1 row) --删除表reason。 gaussdb=# DROP TABLE reason;
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格