openGauss學(xué)習(xí)筆記-237 openGauss性能調(diào)優(yōu)-SQL調(diào)優(yōu)-SQL執(zhí)行計劃介紹-概述

openGauss學(xué)習(xí)筆記-237 openGauss性能調(diào)優(yōu)-SQL調(diào)優(yōu)-SQL執(zhí)行計劃介紹-概述237.1 SQL執(zhí)行計劃概述237.1.1 執(zhí)行計劃顯示信息

openGauss學(xué)習(xí)筆記-237 openGauss性能調(diào)優(yōu)-SQL調(diào)優(yōu)-SQL執(zhí)行計劃介紹-概述

237.1 SQL執(zhí)行計劃概述

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

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

圖 1 SQL執(zhí)行計劃示例 [圖片上傳失敗...(image-60ba2f-1709718877377)]

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

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

  • 第一行(最上層節(jié)點)是執(zhí)行計劃總執(zhí)行開銷的預(yù)計。這個數(shù)值就是優(yōu)化器試圖最小化的數(shù)值。

237.1.1 執(zhí)行計劃顯示信息

除了設(shè)置不同的執(zhí)行計劃顯示格式外,還可以通過不同的EXPLAIN用法,顯示不同詳細(xì)程度的執(zhí)行計劃信息。常見有如下幾種,關(guān)于更多用法請參見EXPLAIN語法說明。

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

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

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

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

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

EXPLAIN PERFORMANCE輕量化執(zhí)行方式與EXPLAIN PERFORMANCE保持一致,在原來的基礎(chǔ)上減少了性能分析的時間,執(zhí)行時間與SQL執(zhí)行時間的差異顯著減少。

?? 點贊,你的認(rèn)可是我創(chuàng)作的動力!

?? 收藏,你的青睞是我努力的方向!

?? 評論,你的意見是我進(jìn)步的財富!

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容