自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

高級(jí)SQL優(yōu)化系列之分組排序優(yōu)化

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

問題定義

在如何創(chuàng)建高效的數(shù)據(jù)庫(kù)索引中,我們說到過,可以通過有序的索引(B+tree)來避免排序操作,從而提升查詢的性能。但是如果排序子句或分組子句中的字段來自不同的表,那么數(shù)據(jù)庫(kù)優(yōu)化器就無法利用索引的有序性來避免一次排序操作。

但是如果能從查詢中推斷出排序字段與另一個(gè)表的某個(gè)字段具有等值的關(guān)系,可以使用此字段來替換原排序字段,從而利用索引的有序性,在進(jìn)行排序或分組時(shí)避免一次排序操作,從而提升SQL查詢性能。

譬如對(duì)于以下的SQL查詢:

select customer.* from customer, orders where c_custkey=o_custkey order by c_name, o_custkey;

序字段為 C_NAME, o_custkey,來自不同的兩個(gè)表,但是在查詢中條件c_custkey=o_custkey,所以可以用c_custkey來替換o_custkey, 重寫后的SQL如下:

select customer.* from customer, orders where c_custkey=o_custkey order by c_name, c_custkey;

適用條件

分組排序優(yōu)化是針對(duì)查詢塊(Queryblock)來進(jìn)行的,多個(gè)查詢塊可以獨(dú)立進(jìn)行此優(yōu)化。分組排序優(yōu)化的適用條件如下:

  • 在一個(gè)查詢塊中存在等于或大于2的排序字段或分組字段。
  • 排序字段或分組字段是數(shù)據(jù)表中的列(無函數(shù)或計(jì)算)。
  • 排序字段或分組字段來自不同的數(shù)據(jù)表。
  • 在此查詢塊中可以推導(dǎo)出與排序或分組字段的等值關(guān)系。
  • 經(jīng)過推導(dǎo)替換后的排序或分組字段來自同一個(gè)數(shù)據(jù)表。

性能驗(yàn)證

  • 重寫優(yōu)化前的執(zhí)行計(jì)劃如下,可以看到執(zhí)行時(shí)間為10ms,代價(jià)7849.64,執(zhí)行計(jì)劃的最后一步是排序操作。

圖片

  • 重寫優(yōu)化后,排序子句中的o_custkey被替換為c_custkey,執(zhí)行計(jì)劃如下??梢钥吹?,優(yōu)化后排序操作被消除了,其他部分沒有變化。執(zhí)行時(shí)間減少到2.58ms,性能提升了287.6%。

圖片

PawSQL對(duì)此優(yōu)化的支持

PawSQL針對(duì)所有數(shù)據(jù)庫(kù)默認(rèn)開啟此優(yōu)化,

  • 自動(dòng)優(yōu)化:用戶輸入待優(yōu)化SQL后,PawSQL對(duì)其進(jìn)行自動(dòng)化優(yōu)化,案例SQL的優(yōu)化詳情如下。

圖片

  • 規(guī)則啟用:用戶可以在自己的默認(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,Oracle等數(shù)據(jù)庫(kù),提供的SQL優(yōu)化產(chǎn)品包括

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

2023-11-03 07:29:51

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

2023-10-09 07:42:49

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

2023-11-28 07:54:18

2015-07-17 16:23:14

MySQL優(yōu)化

2023-10-23 09:19:47

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

2023-11-07 07:50:55

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

2019-07-25 13:22:43

AndroidAPK文件優(yōu)化

2013-12-17 16:21:17

iOSiOS性能優(yōu)化

2016-12-08 15:47:54

sql優(yōu)化數(shù)據(jù)

2018-01-09 16:56:32

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

2010-06-12 15:31:04

MySQL查詢優(yōu)化

2022-03-29 13:27:22

Android優(yōu)化APP

2022-07-19 16:47:53

Android抖音

2021-07-16 23:01:03

SQL索引性能

2011-03-31 11:14:51

Sql語句優(yōu)化

2016-12-14 19:04:16

Spark SQL優(yōu)化

2010-07-15 16:42:32

數(shù)據(jù)庫(kù)引擎

2021-07-26 18:23:23

SQL策略優(yōu)化

2021-03-04 07:24:28

排序算法優(yōu)化

2009-05-04 09:52:49

Oracle優(yōu)化排序
點(diǎn)贊
收藏

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