国产粉嫩无码不卡在线观看,酒店大战丝袜高跟鞋人妻,特级精品毛片免费观看,欧美亚洲日本国产综合在线

硬核解讀,WeTune是如何提升數(shù)據(jù)庫查詢重寫性能?(數(shù)據(jù)庫查重語句)

近日,上海交通大學軟件學院副院長王肇國和高斯實驗室GaussDB數(shù)據(jù)庫優(yōu)化器專家Ethan聯(lián)手開展了一場以《智能優(yōu)化揭秘——GaussDB數(shù)據(jù)庫查詢重寫的自動挖掘與生成》為主題的技術(shù)對談,深入探討了WeTune 2.0的重寫規(guī)則與GaussDB的合作落地。直播過程包含對WeTune 2.0的項目背景、WeTune改寫規(guī)則的自動發(fā)掘方式及實現(xiàn)、WeTune 2.0版本優(yōu)勢、在GaussDB中的應(yīng)用與技術(shù)轉(zhuǎn)化、未來前景等內(nèi)容的解析與分享,一起傾聽他們產(chǎn)教融合背后的故事吧。以下是本訪談的文字記錄。

WeTune產(chǎn)品的項目背景

查詢改寫是數(shù)據(jù)庫SQL優(yōu)化過程中非常重要的部分,在語義不變的情況下,它可以把一條普通的或者性能不好的SQL語句優(yōu)化成一條性能更好的SQL語句,實現(xiàn)查詢效率的提升。改寫規(guī)則作為查詢改寫中最關(guān)鍵的一個組件,想要在數(shù)據(jù)庫里面添加改寫規(guī)則,往往依賴于數(shù)據(jù)庫專家經(jīng)驗的積累。如今,SQL語句的生成對象不再受限于程序員,外部框架和大模型也能夠自動生成,隨著生成源的增加,原來的SQL改寫規(guī)則不再適用。

由上海交通大學軟件學院副院長王肇國團隊開發(fā)出的WeTune剛好能解決這一問題,其核心思想就是自動發(fā)掘某些場景下的改寫規(guī)則。于是,華為云數(shù)據(jù)庫GaussDB團隊與王肇國教授團隊深度合作,成功完成WeTune 2.0在GaussDB產(chǎn)品上的落地。

WeTune改寫規(guī)則的自動發(fā)掘方式

自動挖掘的前提是暴力枚舉,枚舉之后檢驗語義是否正確,通過等價性驗證去把最后一道關(guān),所以,WeTune的等價性驗證能力決定了它能夠枚舉哪些規(guī)則。下面是WeTune的改寫規(guī)則的自動發(fā)掘方式:

方式一,嘗試暴力枚舉所有在語法上合法的改寫規(guī)則;

方式二,用形式化驗證的方式去驗證枚舉的規(guī)則是否正確(輸入、輸出的SQL是否在語義上等價);

方式三,借鑒數(shù)據(jù)庫cost estimation技術(shù)檢驗改寫規(guī)則是否有效,SQL優(yōu)化性能是否更好。
在實際運用中,以上改寫規(guī)則的三種自動發(fā)掘方式也面臨著一些現(xiàn)實層面的挑戰(zhàn)。

暴力枚舉雖然空間大,但開銷也大,導致很多算力浪費。不過,上海交通大學軟件學院副院長王肇國團隊通過開發(fā)的一種只枚舉小規(guī)則的技術(shù),用小規(guī)則去推大規(guī)則,解決算力浪費的問題。

等價性驗證。改寫規(guī)則等價性驗證,本質(zhì)上就是SQL等價性驗證,把不可判定問題的驗證轉(zhuǎn)換成可滿足性等價、可判定問題的驗證。另外,SQL等價性本身是一個關(guān)系型代數(shù),把它轉(zhuǎn)換成線性代數(shù)的求解。通過這兩個維度解決了現(xiàn)有的SQL等價性驗證問題,使得改寫規(guī)則的枚舉能力和范圍大大提升。目前WeTune 2.0支持SQL:1999所有語法的驗證。

除了借鑒數(shù)據(jù)庫cost estimation技術(shù)來檢驗SQL優(yōu)化性能是否更好以外,還會創(chuàng)建數(shù)據(jù)庫實例,將改寫規(guī)則在數(shù)據(jù)庫實例上運行,以保證SQL優(yōu)化效果最佳。

有了這三方面的解決方案之后,2022年,上海交通大學軟件學院副院長王肇國團隊對WeTune 1.0版本進行了一個性能測試。他們從GitHub上通過對起始時間、受歡迎程度等維度進行篩選排序,找了涵蓋電商、論壇等不同應(yīng)用場景的20個開源應(yīng)用,并在這些應(yīng)用上運行程序,共收集了大概8500多條SQL語句。結(jié)果顯示,WeTune 1.0優(yōu)化的SQL語句大概674條,而其他商業(yè)數(shù)據(jù)庫只能優(yōu)化427條。相較而言,WeTune 1.0 優(yōu)化效果大幅領(lǐng)先。

WeTune改寫規(guī)則的自動挖掘?qū)崿F(xiàn)

WeTune 2.0在SQL等價性驗證、枚舉的能力和范圍、規(guī)則的表達上都進行了精心設(shè)計,對GaussDB使用體驗有極大提升。

第一,WeTune有驗證規(guī)則的能力。對于開發(fā)流程來講,驗證規(guī)則是很重要的一步。

第二,WeTune有自動發(fā)現(xiàn)規(guī)則的能力。重寫規(guī)則依賴人工、偏場景化會導致發(fā)現(xiàn)規(guī)則比較緩慢。WeTune可以幫助做優(yōu)化,提高發(fā)現(xiàn)規(guī)則的效率。

第三,WeTune有自動枚舉的能力。等價驗證加上自動枚舉,自動挖掘一次能夠發(fā)現(xiàn)成千上萬條規(guī)則,相當于把查詢重寫整個模塊開發(fā)流程做了一個加速。對于一個商業(yè)的數(shù)據(jù)庫來講, WeTune自動挖掘可以減少開發(fā)人員冗余的規(guī)則添加,提高開發(fā)效率,降低人力成本。

第四,WeTune定義新的查詢重寫語言。WeTune應(yīng)用在GaussDB數(shù)據(jù)庫里,進行查詢重寫規(guī)則擴充的時候,其實定義了一種新的查詢重寫的語言。以前要寫很多行的代碼,才能給一套規(guī)則注入到引擎里面?,F(xiàn)在不用寫代碼,只需要兩三行的語言描述,通過規(guī)則驗證后,直接放在數(shù)據(jù)庫引擎里面,完成一個規(guī)則的實現(xiàn)。對開發(fā)者來說,體驗非常好,對驗證流程和開發(fā)流程幫助極大。

WeTune 2.0版本優(yōu)勢

相比WeTune 1.0版本,WeTune 2.0版本有幾個比較大的優(yōu)勢:

第一,增強的WeTune枚舉能力,包括枚舉的速度和枚舉更多的復雜規(guī)則;

第二,增強的WeTune驗證能力,可以支持更多的SQL特性;

第三,可以讓用戶可讀、可加載、甚至可以直接使用手寫。

對比現(xiàn)有基于代碼的查詢引擎,WeTune 2.0不需要代碼、不需要編譯、不需要去發(fā)布版本,客戶自己可以寫改寫規(guī)則,寫完之后,通過GaussDB提早準備的接口,直接放到數(shù)據(jù)庫里面就可以即時生效。GaussDB可以為用戶提前預留好很多重寫規(guī)則,后續(xù)如發(fā)現(xiàn)重寫規(guī)則不夠用,可自行增加,非常方便。

第四,改寫規(guī)則可在客戶端實現(xiàn)部署。WeTune目前主要部署在云端,后面改寫規(guī)則也可以部署在客戶端,進行自動加載,實現(xiàn)不同用戶間互不干擾。

WeTune 2.0在華為云GaussDB的落地

WeTune和現(xiàn)有數(shù)據(jù)庫應(yīng)用落地過程中,不同的架構(gòu)會面臨不同挑戰(zhàn)。WeTune 2.0在華為云GaussDB的落地,從技術(shù)角度來講,GaussDB數(shù)據(jù)庫是System-R架構(gòu),它的重寫規(guī)則是耦合在代碼里面,增加或卸載一個規(guī)則需要改寫查詢引擎。把WeTune應(yīng)用在System-R架構(gòu)上面涉及到理論、技術(shù)、工程層面的一些問題。

不過,上海交通大學華為的積極交流和深入探討,也為彼此提供了不同的視角。
在數(shù)據(jù)庫開發(fā)過程中,改寫規(guī)則非常依賴人工經(jīng)驗。隨著客戶場景越來越多,很多規(guī)則已經(jīng)超出了現(xiàn)有的承載能力。從產(chǎn)品開發(fā)流程層面上講,想要在GaussDB里面添加一個新的重寫規(guī)則,論證重寫規(guī)則是否等價是非常困難的。但是有了WeTune以后,開發(fā)者只要按照形式化語言去描述重寫規(guī)則,然后WeTune拿去做驗證,證明該規(guī)則在約束下是等價的,就可以放心地將該重寫規(guī)則添加到GaussDB中,節(jié)約驗證時間,對GaussDB的開發(fā)等流程非常有幫助。

WeTune從框架上去解決了這兩個重寫規(guī)則是否等價的問題,這是WeTune非常突出的貢獻點。對于客戶來說,在使用GaussDB進行SQL優(yōu)化時,只管放心用,優(yōu)化交給GaussDB;對于開發(fā)者來說,只需要關(guān)心SQL語義,性能交給GaussDB。

GaussDB引入WeTune2.0以后,自然會產(chǎn)生非常多的規(guī)則,幫助用戶優(yōu)化SQL的同時,也引入了另外一個成本,即會產(chǎn)生了SQL優(yōu)化代價。

如何解決引入大量規(guī)則之后,產(chǎn)生的性能問題?

從客戶角度來講,很多業(yè)務(wù)其實是相對比較固定的,而且上線之前也提前會做系統(tǒng)測試。若系統(tǒng)里面SQL優(yōu)化度很高,那么就不必改寫規(guī)則和暴力枚舉,這樣就可以降低優(yōu)化成本。

在實際環(huán)境中,大家希望數(shù)據(jù)庫有成千上萬條的改寫規(guī)則可以給用戶去用,可以生成改寫的SQL語句。但是,改寫規(guī)則非常多的時候,會導致改寫和規(guī)則匹配的時間非常長,導致資源的極大浪費,也會影響用戶體驗。那如何在性能上做加速呢?

目前來講,主要通過兩方面來去解決:

一方面是從通用的匹配算法入手。當改寫規(guī)則非常多的時候,匹配算法能夠幫助性能有數(shù)量級的提升;

另一方面,從應(yīng)用的場景或從SQL產(chǎn)生的源頭來進行分類。不同應(yīng)用場景下、不同業(yè)務(wù)目的、不同的框架需要的改寫規(guī)則不一樣,WeTune 2.0可以對于不同場景和需求來去做定制化的規(guī)則探索。

WeTune在數(shù)據(jù)庫產(chǎn)業(yè)的價值及未來前景

WeTune是多個技術(shù)合起來形成了一個規(guī)則挖掘。從學術(shù)角度來講,SQL等價性驗證可以往數(shù)據(jù)庫測試這個方向再邁一步。

在數(shù)據(jù)庫測試過程中,對于SQL的優(yōu)化引擎,可以使用差分測試。差分測試是一種很經(jīng)典的數(shù)據(jù)庫測試方式,驗證重寫規(guī)則可以使用,驗證SQL優(yōu)化引擎過程中也適用。WeTune等價性驗證器可以去枚舉語義等價但形式完全不同的兩條SQL,這樣可以確保在測試對比過程中,程序運行是不一樣的路徑,可以更高效或覆蓋面更廣地完成數(shù)據(jù)庫引擎的測試任務(wù)。

WeTune不僅減輕了數(shù)據(jù)庫開發(fā)者或者DBA的負擔,目前在教育領(lǐng)域里有一定的應(yīng)用,WeTune等價性驗證幫助國內(nèi)外很多高校助教批改學生的數(shù)據(jù)庫作業(yè),減輕數(shù)據(jù)庫教育工作者的工作壓力。

華為與高校的深度合作將持續(xù)推進,融合雙方的技術(shù)優(yōu)勢和科研力量,共同探索數(shù)據(jù)庫領(lǐng)域的前沿技術(shù),培養(yǎng)更多高水平的數(shù)據(jù)庫人才。未來,華為和上海交通大學研究團隊將攜手,共同突破數(shù)據(jù)庫查詢重寫技術(shù)的瓶頸,通過持續(xù)的創(chuàng)新和優(yōu)化,進一步提升GaussDB的查詢性能和效率。我們期待更多的技術(shù)合作和探索,推動數(shù)據(jù)庫技術(shù)向智能化、自動化方向發(fā)展,為廣大企業(yè)和用戶帶來更多價值。

關(guān)注#華為云開發(fā)者聯(lián)盟# 點擊下方,第一時間了解華為云新鮮技術(shù)~

華為云博客_大數(shù)據(jù)博客_AI博客_云計算博客_開發(fā)者中心-華為云

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。