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

SQL優(yōu)化神器PawSQL Advisor使用手冊(最新版)

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

概述

PawSQL Advisor是由PawSQL團隊開發(fā)的,面向數(shù)據(jù)庫應(yīng)用開發(fā)人員的自動化、智能化SQL優(yōu)化工具, 它融合了業(yè)界關(guān)于數(shù)據(jù)庫優(yōu)化的最佳實踐, 從正確性和性能兩個方面對SQL進行審查和重寫優(yōu)化;并基于SQL查詢的結(jié)構(gòu)、數(shù)據(jù)庫對象的定義及統(tǒng)計信息,提供智能索引推薦功能,幫助數(shù)據(jù)應(yīng)用開發(fā)人員一鍵提升應(yīng)用性能。

核心功能

  • 基于規(guī)則的SQL審查,包括正確性審查和性能優(yōu)化審查規(guī)則。
  • 基于規(guī)則的重寫優(yōu)化,推薦語義等價、但執(zhí)行效率更高的SQL。
  • 智能索引推薦,滿足各種SQL語法組合的場景下,推薦最優(yōu)的索引組合。
  • 基于代價的優(yōu)化驗證,確?;赟QL重寫和索引推薦的新方案有著更好的性能。
  • 索引分析引擎,對已有的索引進行分析,識別冗余索引。

支持數(shù)據(jù)庫

PawSQL基于自研的SQL解析器,支持多種數(shù)據(jù)庫類型以及SQL方言,當前支持的數(shù)據(jù)庫列表如下,還在不斷增加中...

  • MySQL 5.6及以上 (official)
  • PostgreSQL 9.1及以上 (official)
  • openGauss 1.0及以上 (official)
  • MariaDB 5.6及以上(β測試)
  • Oracle 9i及以上(β測試)
  • KingbaseES V8(β測試)

使用手冊

1、插件安裝

PawSQL Advisor是基于IntelliJ的IDE插件,支持的Jetbrain工具包括IntelliJ IDEA,DataGrip,PyCharm,Android Studio, AppCode, DataSpell, GoLand, PhpStorm, WebStorm等, 可以通過Jetbrain應(yīng)用市場安裝。

圖片

2、配置頁面

PawSQL Advisor提供一個項目級的配置頁面,供用戶進行優(yōu)化任務(wù)輸入、輸出、數(shù)據(jù)源以及執(zhí)行過程的參數(shù)配置。

圖片

(1)優(yōu)化配置

圖片

  • 輸入類型,指定輸入待分析SQL的類型,目前支持以下兩種格式,
  • SQL 文件,代表待優(yōu)化的SQL來自原生SQL文件, 支持ANSI標準的SQL語法及多種SQL方言,多個SQL之間通過;分割。
  • Mapper 文件,從Mybatis的mapper配置文件里提取SQL, 并通過解析獲取所有可能的SQL組合。然后對mapper文件中的占位符根據(jù)其上下文推斷其數(shù)據(jù)類型并對其賦于一個合法的常量,從而使其能夠生產(chǎn)合法的SQL語句,以便進行后續(xù)的查詢語句結(jié)構(gòu)分析。

注意:Mapper文件作為輸入對于應(yīng)用開發(fā)人員非常重要,因為在應(yīng)用開發(fā)初期,開發(fā)人員對于前端的輸入組合無法完全掌握,所能組合的SQL業(yè)務(wù)無法確定,此選項可以確保對于所有的組合,都能夠合適的索引推薦出來以提升性能。但是由于Mapper配置文件可能書寫不夠規(guī)范,導(dǎo)致組合出的某些SQL語句在真實的場景下永遠不會出現(xiàn),進而推薦出無用的索引。


  • 結(jié)果展示,用來設(shè)定輸出的SQL優(yōu)化建議的語言,目前支持中文及英文兩種。
  • 是否啟用重寫優(yōu)化,此選項控制是否啟用重寫優(yōu)化,在SQL以及上線的情況下,修改SQL可能無法立即實施,在此情況下,可以禁用此選項,來獲取索引推薦的建議,快速進行性能優(yōu)化。
  • 是否啟用What-If性能驗證,此選項控制是否對推薦的優(yōu)化建議進行性能驗證,如果啟用此選項,PawSQL在優(yōu)化詳情中會提供SQL優(yōu)化前后的執(zhí)行計劃及代價信息,從而確保推薦的優(yōu)化建議(重寫優(yōu)化及索引推薦)能夠真實提升數(shù)據(jù)庫性能。
  • 性能驗證時是否執(zhí)行SQL,如果啟用此選項,則在進行What-If性能驗證時獲取SQL的真實解析及執(zhí)行時間,避免了MySQL對中間結(jié)果表explain的缺陷,代價估算更加精確。

注意:最后兩個性能驗證的選項應(yīng)避免在生產(chǎn)庫上使用,因為對于沒有內(nèi)置what-if(內(nèi)置虛擬索引)的數(shù)據(jù)庫(MySQL/Postgres皆是)來說,性能驗證是通過創(chuàng)建推薦索引并進行explain分析執(zhí)行計劃,然后刪除推薦索引的方式來做的。這個過程在生產(chǎn)庫上會消耗一定的資源,且執(zhí)行時間可能會比較長,可能對生產(chǎn)庫上的業(yè)務(wù)運行產(chǎn)生影響。

(2)數(shù)據(jù)庫配置

圖片

在PawSQL Advisor中,數(shù)據(jù)庫連接信息作用有兩個:一用來獲取SQL對應(yīng)的數(shù)據(jù)庫對象,包括數(shù)據(jù)庫表、視圖、列、索引信息。二是用來對優(yōu)化建議進行What-If性能驗證,以確保優(yōu)化建議能夠提升SQL的查詢性能。

  • 數(shù)據(jù)庫類型,指定連接的數(shù)據(jù)庫類型,目前支持MySQL,PostgreSQL,Opengauss, Oracle, MariaDB, KingbaseES六種數(shù)據(jù)庫.
  • 地址,數(shù)據(jù)庫地址。
  • 端口,數(shù)據(jù)庫端口。
  • 用戶,數(shù)據(jù)庫用戶。
  • 密碼,數(shù)據(jù)庫用戶密碼。
  • 默認數(shù)據(jù)庫,默認數(shù)據(jù)庫名稱,鏈接默認的數(shù)據(jù)庫名稱。
  • 數(shù)據(jù)庫或是模式列表,數(shù)據(jù)庫列表(MySQL)或是模式列表(PostgreSQL/Opengauss),PawSQL會將列表項下的表、視圖、索引及其對應(yīng)的統(tǒng)計信息作為SQL性能優(yōu)化的輸入。

(3)索引推薦配置

圖片

  • 是否和現(xiàn)有索引去重,此選項表示推薦索引時,是否考慮現(xiàn)有索引,并把現(xiàn)有索引能夠覆蓋的推薦索引排除掉。啟用此選項的場景是不考慮刪除現(xiàn)有的索引,因為輸入的SQL只是并不能代表這個數(shù)據(jù)庫上所有的SQL場景,所以只考慮新增對輸入SQL有幫助的索引。如果能夠確保輸入的SQL包含此數(shù)據(jù)庫所有的查詢,那么只保留推薦的索引就可以了,這種情況下可以不選擇此選項,并且使用新推薦的索引代替現(xiàn)有的索引。
  • 是否推薦覆蓋索引,此選項表示推薦索引時是否考慮覆蓋索引策略。覆蓋索引可以讓查詢只訪問索引而不需要訪問數(shù)據(jù)表(請參考《高效索引的準則》),在一些場景下,覆蓋索引能夠大幅提示查詢性能。但是覆蓋索引會包含查詢條件中沒有使用的列,從而增加索引所占的磁盤空間大小。
  • 覆蓋索引的最大列數(shù),此項設(shè)置表示在進行覆蓋索引推薦時,索引的最大列數(shù)限制。如以上所述,覆蓋索引會包含查詢條件中沒有使用的列,從而增加索引所占的磁盤空間大小。此選項可以控制覆蓋索引所占空間的大小,讓PawSQL能夠為用戶提供一定空間限制的情況下利用覆蓋索引的非回表特性。
  • 索引的最大列數(shù),此選項限制索引的最大列數(shù),索引會占用一定的磁盤空間,且太多列的索引會讓索引樹的層級加深,從而增加索引訪問的代價。用戶可以通過此項設(shè)置控制索引的最大列數(shù)。
  • 單表最大索引數(shù)目,如《高效索引的準則》中所述,索引不是免費的午餐,它會占用磁盤空間,并對對DML操作產(chǎn)生負面影響,因為對于數(shù)據(jù)庫管理器寫入表的每一行,它還必須更新任何受影響的索引。因此,PawSQL通過此選項來審查單表的索引數(shù)量,并進行警告提示。

3、執(zhí)行優(yōu)化

(1)對文件/文件夾中的SQL進行優(yōu)化

右鍵點擊需要進行分析的SQL文件或是文件夾,點擊PawSQL Advisor->Optimize,啟動對此文件或是文件夾中的所有SQL語句的優(yōu)化。

圖片

您也可以點擊PawSQL Advisor->Optimize Config...,此按鈕將調(diào)出參數(shù)配置頁面,方便您在執(zhí)行前對執(zhí)行參數(shù)進行配置,并立即進行優(yōu)化執(zhí)行。

(2)對選中的SQL文本進行優(yōu)化

在IDE的文本/代碼編輯器中選中待優(yōu)化的SQL,點擊右鍵,點擊PawSQL Advisor->Optimize Selected.

圖片


同樣的,您也可以點擊PawSQL Advisor->Optimize Selected Config...,此按鈕將調(diào)出參數(shù)配置頁面,方便您在執(zhí)行前對執(zhí)行參數(shù)進行配置,并立即進行優(yōu)化執(zhí)行。

(3)優(yōu)化過程日志

查詢優(yōu)化的執(zhí)行過程可以通過下方的日志終端查看。

圖片

4、執(zhí)行結(jié)果解讀

當優(yōu)化完成后,PawSQL會生成一個優(yōu)化匯總信息文件,并自動打開該文件。此文件是以pawTunningSummary結(jié)尾的markdown文件,建議您安裝Markdown插件(在應(yīng)用市場搜索"Markdown"進行安裝),以便能夠通過超鏈接查看單SQL的優(yōu)化詳情。

(1)整體優(yōu)化建議

查看pawTuningSummary文件獲取優(yōu)化的整體信息,主要包括三部分。

  • 整體優(yōu)化概要
  • 推薦索引信息
  • SQL優(yōu)化列表

4.2 單SQL優(yōu)化詳情

點擊整體優(yōu)化建議pawTunningSummary中的SQL優(yōu)化列表中具體的SQL名稱,可以進入到單SQL的優(yōu)化詳情文件。此文件中的內(nèi)容主要包括:

  • 原始SQL
  • 重寫優(yōu)化
  • 重寫后的SQL
  • 重寫所應(yīng)用的優(yōu)化策略,
  • 重寫優(yōu)化對應(yīng)的SQL片段

圖片

規(guī)則審查情況:

  • 違反的審查規(guī)則
  • 違反規(guī)則的SQL片段

索引推薦情況:

  • 推薦的索引
  • 索引推薦的依據(jù)

圖片


索引分析:

  • 各個表上的索引列表
  • 索引如何幫助此SQL執(zhí)行
  • 冗余索引分析
  • 單表索引個數(shù)超過閾值提示

圖片


性能驗證:

  • 性能提升比
  • 驗證生效的推薦索引
  • 優(yōu)化之前的執(zhí)行計劃
  • 優(yōu)化之后的執(zhí)行計劃

圖片


關(guān)于PawSQL

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

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

2009-10-26 11:11:33

linux Emacs

2010-08-31 08:59:06

marginHTML

2009-12-02 18:03:00

PHP cURL

2011-08-09 13:22:31

iPhoneSqlite數(shù)據(jù)庫

2010-05-21 12:37:49

SVN使用教程

2010-05-26 14:01:47

SVN安裝使用手冊

2010-05-19 10:57:34

Subversion配

2010-05-26 12:59:48

SVN簡易使用手冊

2013-10-31 14:55:22

2010-05-26 13:17:55

SVN簡易使用手冊

2010-05-20 19:12:37

2010-06-07 12:38:37

Cacti使用手冊

2010-05-27 13:35:43

SVN簡易使用手冊

2010-05-26 13:51:40

SVN安裝使用手冊

2010-06-09 17:01:26

Cacti使用手冊

2011-09-05 16:57:40

MTK開發(fā)工具

2010-08-25 10:53:04

CSSmargin-bott

2015-08-06 11:10:46

開源IaaS軟件ZStack本地存儲

2010-05-26 12:45:49

SVN使用手冊

2010-05-27 13:08:46

SVN簡易使用手冊
點贊
收藏

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