日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

高級SQL優化之分組字段順序優化

注:本文所使用的執行計劃可視化工具為 PawSQL ExplAIn Visualizer , 支持MySQL、PostgreSQL、openGauss等數據庫執行計劃的分析。

問題定義

如果一個查詢中既包含來自同一個表的排序字段也包含分組字段,但字段順序不同,可以通過調整分組字段順序,使其和排序字段順序一致,這樣數據庫可以避免一次排序操作。

考慮以下兩個SQL, 二者唯一的不同點是分組字段的順序(第一個SQL是o_custkey, o_orderdate, 第二個SQL是o_orderdate, o_custkey),由于分組字段中不包括grouping set/cube/roll up等高級grouping操作,所以兩個SQL是等價的。但是二者的執行計劃及執行效率卻不一樣。第二個SQL的執行計劃由于避免了對o_orderdate的一次排序操作,性能比第一個SQL要好,因此可以考慮將第一個SQL重寫為第二個SQL。

select o_custkey, o_orderdate, sum(O_TOTALPRICE)
from orders
group by o_custkey,o_orderdate
order by o_orderdate;

重寫為:

select o_custkey, o_orderdate, sum(o_totalprice)
from orders
group by o_orderdate,o_custkey
order by o_orderdate;

適用條件

分組字段重排序優化是針對查詢塊(Queryblock)來進行的,多個查詢塊可以獨立進行此優化。分組字段重排序優化的適用條件如下:

  • 在一個查詢塊中存在2個及2個以上分組字段。
  • 在一個查詢塊中存在排序字段。
  • 分組及排序排序字段來自同一個數據表。
  • 分組排序字段無函數或計算。
  • 排序字段是分組字段的真子集。
  • 排序字段不是分組字段的前綴。

性能驗證

  • 優化前,在完成分組聚集運算后,還需要進行額外的排序操作,整體執行時間為339.64ms,其中排序所占用的時間為58.1ms。

高級SQL優化之分組字段順序優化

  • 重寫優化后,無需對分組聚集的結果進行排序,整體執行時間為139.28ms, 性能提升了143.8%,也無需占用額外的內存。

高級SQL優化之分組字段順序優化

PawSQL對此優化的支持

  • 自動優化:PawSQL針對所有數據庫默認開啟此優化,以上的SQL可以PawSQL可以自動進行優化。

高級SQL優化之分組字段順序優化

  • 啟用設置:用戶可以在自己的默認優化設置或是定義每個優化任務的時候自主啟用或禁用該選項。

高級SQL優化之分組字段順序優化

關于PawSQL

PawSQL專注數據庫性能優化的自動化和智能化,支持MySQL,PostgreSQL,openGauss,Oracle等數據庫,提供的SQL優化產品包括

  • PawSQL Cloud,在線自動化SQL優化工具,支持SQL審查,智能查詢重寫、基于代價的索引推薦,適用于數據庫管理員及數據應用開發人員,
  • PawSQL Advisor,IntelliJ 插件, 適用于數據應用開發人員,可以IDEA/DataGrip應用市場通過名稱搜索“PawSQL Advisor”安裝。
  • PawSQL Engine, 是PawSQL系列產品的后端優化引擎,可以以Docker鏡像的方式獨立安裝部署,并通過http/json的接口提供SQL優化服務。

分享到:
標簽:優化 SQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定