成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

高級(jí)SQL優(yōu)化之查詢折疊

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
PawSQL Cloud,在線自動(dòng)化SQL優(yōu)化工具,支持SQL審查,智能查詢重寫、基于代價(jià)的索引推薦,適用于數(shù)據(jù)庫(kù)管理員及數(shù)據(jù)應(yīng)用開(kāi)發(fā)人員。PawSQL Advisor,IntelliJ 插件, 適用于數(shù)據(jù)應(yīng)用開(kāi)發(fā)人員,可以IDEA/DataGrip應(yīng)用市場(chǎng)通過(guò)名稱搜索“PawSQL Advisor”安裝。

定義

查詢折疊指的是把查詢中的視圖、CTE或是DT子查詢展開(kāi),并與引用它的查詢語(yǔ)句合并,從而減少查詢語(yǔ)句的子查詢數(shù)目,降低其復(fù)雜度的一種優(yōu)化算法。其收益有以下三個(gè)方面:

  • 避免中間結(jié)果集的物化。
  • 啟用更多的連接順序規(guī)劃。
  • 提供更多的索引建議機(jī)會(huì)(PawSQL索引推薦引擎)。

考慮下面的例子:

SELECT * FROM (SELECT c_custkey, c_name FROM customer) AS dt;

重寫后的SQL為:

SELECT c_custkey, c_name FROM customer

注1. 在下文中,我們將使用“視圖”一詞,但所有描述也適用于CTE或是DT子查詢。

注2. 本文所使用的執(zhí)行計(jì)劃可視化工具為 PawSQL Explain Visualizer , 支持MySQL、PostgreSQL、openGauss等數(shù)據(jù)庫(kù)。

查詢折疊的兩種類型

PawSQL優(yōu)化引擎針對(duì)不同的SQL語(yǔ)法結(jié)構(gòu),支持兩種查詢折疊的優(yōu)化策略。

查詢折疊類型 I

適用條件

  • 在視圖本身中,沒(méi)有distinct關(guān)鍵字;
  • 在視圖本身中,沒(méi)有分組、聚集函數(shù)或窗口函數(shù);
  • 在視圖本身中,沒(méi)有LIMIT子句;
  • 在視圖本身中,沒(méi)有UNION或者UNION ALL;
  • 在外部查詢塊中,被折疊的視圖不是外連接的一部分。

重寫策略

將視圖拆分并合并到外部查詢塊中。

案例

  • 原始查詢
select c.c_name, sum(o_totalprice) price
from customer c, (select o_custkey, o_totalprice from orders where o_shippriority=0)dt
where c.c_custkey = dt.o_custkey
group by c.c_name
  • 原執(zhí)行計(jì)劃

圖片

  • 優(yōu)化后的查詢
select c.c_name, sum(o_totalprice) as price
from customer c, orders
where c.c_custkey = o_custkey and o_shippriority=0
group by c.c_name
  • 優(yōu)化后的執(zhí)行計(jì)劃

圖片

我們可以看到,原查詢的執(zhí)行計(jì)劃中有一個(gè)物化步驟,通過(guò)SQL重寫后,消除了此物化步驟。

查詢折疊類型 II

適用條件:

  • 外部查詢塊中,視圖是唯一的表引用。
  • 在外部查詢塊中,沒(méi)有分組、聚集函數(shù)和窗口函數(shù)。
  • 在視圖內(nèi)部沒(méi)有使用窗口函數(shù)。

重寫策略:

將外部查詢合并至視圖,并刪除外部查詢。

案例

  • 原始查詢
select dt.price
from (select c.c_name, sum(o_totalprice) price
 from customer c, orders
 where c.c_custkey = orders.o_custkey
 group by c.c_name) dt
where dt.c_name like '139%';
  • 原執(zhí)行計(jì)劃

圖片

  • 優(yōu)化后的查詢
select sum(o.O_TOTALPRICE)
from customer as c, orders o
where c.c_custkey = o.o_custkey
and c.c_name like '139%'
group by c.c_name
  • 優(yōu)化后的執(zhí)行計(jì)劃

圖片

與類型1類似,我們可以看到重寫優(yōu)化后消除了物化步驟,同時(shí)性能提升了231.83%。

注3. 其中對(duì)于第一種類型,MySQL 5.7以及PostgreSQL 14.0以上的版本都在優(yōu)化器內(nèi)部進(jìn)行了支持;而第二類查詢折疊的優(yōu)化,在最新的MySQL及PostgreSQL版本中都沒(méi)有支持。

PawSQL對(duì)查詢折疊優(yōu)化的支持

  • 自動(dòng)優(yōu)化:PawSQL針對(duì)所有數(shù)據(jù)庫(kù)默認(rèn)開(kāi)啟此優(yōu)化,以下是案例2在PawSQL中的優(yōu)化結(jié)果;可以看到,基于重寫后的SQL,PawSQL進(jìn)一步推薦了更高效的索引。

圖片

  • 點(diǎn)擊優(yōu)化頁(yè)面的執(zhí)行計(jì)劃對(duì)比圖標(biāo),可以看到優(yōu)化前后的執(zhí)行計(jì)劃對(duì)比。

圖片

  • 啟用設(shè)置:用戶可以在自己的默認(rèn)優(yōu)化設(shè)置或是定義每個(gè)優(yōu)化任務(wù)的時(shí)候自主啟用或禁用該選項(xiàng)。

圖片

關(guān)于PawSQL

PawSQL專注數(shù)據(jù)庫(kù)性能優(yōu)化的自動(dòng)化和智能化,支持MySQL,PostgreSQL,Opengauss等,提供的SQL優(yōu)化產(chǎn)品包括

  • PawSQL Cloud,在線自動(dòng)化SQL優(yōu)化工具,支持SQL審查,智能查詢重寫、基于代價(jià)的索引推薦,適用于數(shù)據(jù)庫(kù)管理員及數(shù)據(jù)應(yīng)用開(kāi)發(fā)人員。
  • PawSQL Advisor,IntelliJ 插件, 適用于數(shù)據(jù)應(yīng)用開(kāi)發(fā)人員,可以IDEA/DataGrip應(yīng)用市場(chǎng)通過(guò)名稱搜索“PawSQL Advisor”安裝。
  • PawSQL Engine, 是PawSQL系列產(chǎn)品的后端優(yōu)化引擎,可以以docker鏡像的方式獨(dú)立安裝部署,并通過(guò)http/json的接口提供SQL優(yōu)化服務(wù)。
責(zé)任編輯:姜華 來(lái)源: PawSQL
相關(guān)推薦

2023-10-09 07:42:49

PawSQL數(shù)據(jù)庫(kù)管理

2023-11-07 07:50:55

LIMIT子句下推優(yōu)化

2023-10-23 09:19:47

PawSQL數(shù)據(jù)庫(kù)

2010-06-12 15:31:04

MySQL查詢優(yōu)化

2023-11-03 07:29:51

QL優(yōu)化分組字段順序優(yōu)化

2023-10-16 07:49:25

PawSQL數(shù)據(jù)庫(kù)

2018-01-09 16:56:32

數(shù)據(jù)庫(kù)OracleSQL優(yōu)化

2017-09-05 09:02:06

Oraclenot null優(yōu)化

2021-07-16 23:01:03

SQL索引性能

2011-02-23 13:26:01

SQL查詢優(yōu)化

2010-06-10 17:59:05

2018-04-19 09:02:14

SQL ServerSQL性能優(yōu)化

2021-05-11 09:01:37

SQL優(yōu)化索引

2023-07-12 08:55:16

PawSQL數(shù)據(jù)庫(kù)

2021-08-17 10:39:54

SQL Server數(shù)據(jù)庫(kù)優(yōu)化

2021-07-26 18:23:23

SQL策略優(yōu)化

2020-07-13 07:10:09

SQLSQL語(yǔ)句查詢

2010-07-01 14:23:25

SQL Server查

2011-08-18 15:03:47

SQL Server多優(yōu)化方案

2018-10-19 12:47:35

MySQLSQL優(yōu)化數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 激情 婷婷| 日本不卡一区二区三区在线观看 | www亚洲精品 | 久久久久中文字幕 | 欧洲av在线 | 日韩精品视频在线播放 | 人人鲁人人莫人人爱精品 | 欧美久久精品 | 精品久久久久久亚洲综合网 | 久久99精品久久久久久国产越南 | 国产一区不卡 | 国产 日韩 欧美 中文 在线播放 | 五月天激情电影 | 天堂一区二区三区 | 日韩在线视频精品 | av手机免费在线观看 | 久久精品国产亚洲 | 中文字幕 视频一区 | 欧美日韩精品在线免费观看 | 国产精品久久久久久久久久久免费看 | 中文字幕亚洲精品 | 一区二区免费在线 | 免费观看www7722午夜电影 | dy天堂| 久久久久久中文字幕 | 成人国产精品色哟哟 | 国产www在线| 久草精品视频 | 亚洲黄色av网站 | 99精品国产一区二区青青牛奶 | 久久中文视频 | 狠狠干狠狠操 | 亚洲精品久久久久久久久久久久久 | 国产一区二区欧美 | gav成人免费播放视频 | 九色av | 国产黄色一级片 | 欧美日韩一 | 久久不卡区 | 欧美久久久久 | 精品三区|