新聞中心
用戶 SQL 寫法未遵循 OceanBase 數據庫開發(fā)規(guī)范
用戶 SQL 的寫法對 SQL 的執(zhí)行性能有決定性的作用。在使用過程中,用戶應盡量遵循 OceanBase 數據庫開發(fā)規(guī)范的要求。

公司主營業(yè)務:成都網站建設、成都網站設計、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出雙遼免費做網站回饋大家。
代價模型缺陷導致的執(zhí)行計劃選擇錯誤
OceanBase 數據庫內建的代價模型是服務器的固有邏輯,最佳的執(zhí)行計劃依賴此代價模型。因此,一旦出現(xiàn)由代價模型導致的計劃選擇錯誤,用戶只能通過執(zhí)行計劃綁定來確保選擇“正確”的執(zhí)行計劃。
數據統(tǒng)計信息不準確
查詢優(yōu)化過程依賴數據統(tǒng)計信息的準確性,OceanBase 數據庫的優(yōu)化器默認會在數據合并過程中收集一些統(tǒng)計信息,當用對數據進行了大量修改時,可能會導致統(tǒng)計信息落后于真實數據的特征,用戶可以通過發(fā)起每日合并,主動更新統(tǒng)計信息。
除了優(yōu)化器收集的統(tǒng)計信息以外,優(yōu)化器還會根據查詢條件對存儲層進行采樣,用以后續(xù)的優(yōu)化選擇。OceanBase 數據庫目前僅支持對本地存儲進行采樣,對于數據分區(qū)在遠程節(jié)點上的情況,只能使用默認收集的統(tǒng)計信息進行代價估計,可能會引入代價偏差。
數據庫物理設計降低查詢性能
查詢的性能很大程度上取決于數據庫的物理設計,包括所訪問對象的 schema 信息等。例如,對于二級索引,如果所需的投影列沒有包括在索引列之中,則需要使用回表的機制訪問主表,查詢的代價會增加很多。此時,可以考慮將用戶的投影列加入到索引列中,構成所謂的“覆蓋索引”,避免回表訪問。
系統(tǒng)負載影響單條 SQL 的響應時間
系統(tǒng)的整體負載除了會影響系統(tǒng)的整體吞吐量,也會引起單條 SQL 的響應時間變化。OceanBase 數據庫的 SQL 引擎采用隊列模型,針對用戶請求,如果可用線程全部被占用,則新的請求需要在請求隊列中排隊,直到某個線程完成當前請求。請求在隊列中的排隊時間可以在 (g)v$sql_audit 中看到。
客戶端路由與服務器之間出現(xiàn)路由反饋邏輯錯誤
OBProxy 的一個主要功能是將 SQL 查詢路由到恰當的服務器節(jié)點。具體來說,如果用戶查詢沒有指定使用弱一致性讀屬性,Proxy 需要將其路由到所涉及的表(或具體分區(qū))的主節(jié)點上,以避免服務器節(jié)點之前的二次轉發(fā);否則,Proxy 會根據預先設置好的規(guī)則將其轉發(fā)到恰當的節(jié)點。
由于 Proxy 與服務器之間采用松耦合的方式,Proxy 上緩存的數據物理分布信息刷新可能不及時,導致錯誤的路由選擇??赡軐е侣酚尚畔⒆兓膱鼍坝校?/p>
-
網絡不穩(wěn)導致服務器間重新選主
-
由服務器上下線、輪轉合并等導致的重新選主
-
負載均衡導致重新選主
當在 SQL audit 或執(zhí)行計劃緩存中發(fā)現(xiàn)有大量遠程執(zhí)行時,需要考慮是否與上述場景吻合??蛻舳伺c服務器之間有路由反饋邏輯,一旦發(fā)生錯誤,客戶端會主動刷新數據物理分布信息,隨后路由的選擇也將恢復正常。
網頁名稱:創(chuàng)新互聯(lián)OceanBase教程:OceanBaseSQL調優(yōu)常見問題
當前URL:http://fisionsoft.com.cn/article/djchjio.html


咨詢
建站咨詢
