五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

云數(shù)據(jù)庫(kù)GaussDB SQL執(zhí)行計(jì)劃概述

SQL執(zhí)行計(jì)劃是一個(gè)節(jié)點(diǎn)樹(shù),顯示GaussDB執(zhí)行一條SQL語(yǔ)句時(shí)執(zhí)行的詳細(xì)步驟。每一個(gè)步驟為一個(gè)數(shù)據(jù)庫(kù)運(yùn)算符。

使用EXPLAIN命令可以查看優(yōu)化器為每個(gè)查詢生成的具體執(zhí)行計(jì)劃。EXPLAIN給每個(gè)執(zhí)行節(jié)點(diǎn)都輸出一行,顯示基本的節(jié)點(diǎn)類型和優(yōu)化器為執(zhí)行這個(gè)節(jié)點(diǎn)預(yù)計(jì)的開(kāi)銷值。如圖1所示。

最底層節(jié)點(diǎn)是表掃描節(jié)點(diǎn),它掃描表并返回原始數(shù)據(jù)行。不同的表訪問(wèn)模式有不同的掃描節(jié)點(diǎn)類型:順序掃描、索引掃描等。最底層節(jié)點(diǎn)的掃描對(duì)象也可能是非表行數(shù)據(jù)(不是直接從表中讀取的數(shù)據(jù)),如VALUES子句和返回行集的函數(shù),它們有自己的掃描節(jié)點(diǎn)類型。

如果查詢需要連接、聚集、排序、或者對(duì)原始行做其它操作,那么就會(huì)在掃描節(jié)點(diǎn)之上添加其它節(jié)點(diǎn)。 并且這些操作通常都有多種方法,因此在這些位置也有可能出現(xiàn)不同的執(zhí)行節(jié)點(diǎn)類型。

第一行(最上層節(jié)點(diǎn))是執(zhí)行計(jì)劃總執(zhí)行開(kāi)銷的預(yù)計(jì)。這個(gè)數(shù)值就是優(yōu)化器試圖最小化的數(shù)值。

云數(shù)據(jù)庫(kù)GaussDB SQL執(zhí)行計(jì)劃顯示格式

GaussDB對(duì)執(zhí)行計(jì)劃提供了normal、pretty、summary、run四種顯示格式:

normal:代表使用默認(rèn)的打印格式。圖1中即為此顯示格式。

pretty:代表使用GaussDB改進(jìn)后的新顯示格式。新的格式層次清晰,計(jì)劃包含了plan node id,性能分析簡(jiǎn)單直接。如圖2。

summary:是在pretty的基礎(chǔ)上增加了對(duì)打印信息的分析。

run:在summary的基礎(chǔ)上,將統(tǒng)計(jì)的信息輸出到csv格式的文件中,以便于進(jìn)一步分析。

通過(guò)設(shè)置GUC參數(shù)explain_perf_mode,可以顯示不同格式的執(zhí)行計(jì)劃。下文的用例默認(rèn)顯示pretty格式。

云數(shù)據(jù)庫(kù)GaussDB SQL執(zhí)行計(jì)劃顯示信息

除了設(shè)置不同的執(zhí)行計(jì)劃顯示格式外,還可以通過(guò)不同的EXPLAIN用法,顯示不同詳細(xì)程度的執(zhí)行計(jì)劃信息。

EXPLAIN statement: 只生成執(zhí)行計(jì)劃,不實(shí)際執(zhí)行。其中statement代表SQL語(yǔ)句。

EXPLAIN ANALYZE statement:生成執(zhí)行計(jì)劃,進(jìn)行執(zhí)行,并顯示執(zhí)行的概要信息。顯示中加入了實(shí)際的運(yùn)行時(shí)間統(tǒng)計(jì),包括在每個(gè)規(guī)劃節(jié)點(diǎn)內(nèi)部花掉的總時(shí)間(以毫秒計(jì))和它實(shí)際返回的行數(shù)。

EXPLAIN PERFORMANCE statement:生成執(zhí)行計(jì)劃,進(jìn)行執(zhí)行,并顯示執(zhí)行期間的全部信息。

為了測(cè)量運(yùn)行時(shí)在執(zhí)行計(jì)劃中每個(gè)節(jié)點(diǎn)的開(kāi)銷,EXPLAIN ANALYZE或EXPLAIN PERFORMANCE會(huì)在當(dāng)前查詢執(zhí)行上增加性能分析的開(kāi)銷。在一個(gè)查詢上運(yùn)行EXPLAIN ANALYZE或EXPLAIN PERFORMANCE有時(shí)會(huì)比普通查詢明顯的花費(fèi)更多的時(shí)間。超支的數(shù)量依賴于查詢的本質(zhì)和使用的平臺(tái)。

因此,當(dāng)定位SQL運(yùn)行慢問(wèn)題時(shí),如果SQL長(zhǎng)時(shí)間運(yùn)行未結(jié)束,建議通過(guò)EXPLAIN命令查看執(zhí)行計(jì)劃,進(jìn)行初步定位。如果SQL可以運(yùn)行出來(lái),則推薦使用EXPLAIN ANALYZE或EXPLAIN PERFORMANCE查看執(zhí)行計(jì)劃及其實(shí)際的運(yùn)行信息,以便更精準(zhǔn)地定位問(wèn)題原因。

GaussDB優(yōu)質(zhì)文章錦集