Auto DOP:讓并行執行實現智能調優 | OceanBase 實踐

隨著數據量的迅速增長,企業數據庫往往面臨著一個困局:復雜的分析查詢需要充分的資源來保證性能,但過多增加并行執行又會造成資源競爭,影響系統穩定性。傳統基于DBA人工干預的并行度調節機制,既低效又難以適應動態變化的負載需求。

再此背景下,Auto DOP(Automatic Degree of Parallelism,自動并行度)技術已成為新一代數據庫的必備能力之一。該技術通過實時分析查詢特征、數據量和系統資源狀況,實現智能資源調度能力——如同一位高效的"交通指揮官",動態調配最佳執行資源。無論是實時分析、AI模型訓練,還是混合負載管理和云資源優化,Auto DOP都能通過智能化并行處理,顯著提升企業數據處理效能。

本文將重點介紹在 OceanBase 數據庫中,Auto DOP 的核心參數、狀態監測及在 AP 場景、AP+TP 混布場景下的實踐,幫助數據庫破解資源爭用難題,實現復雜查詢毫秒級響應,保障系統穩定高效運行。

Auto DOP 核心參數解析

Auto DOP 在很大程度上解決了以往 DBA 需要手動設置并行度帶來的不便。在實際生產環境中,運用這一技術僅需兩步操作:

👉 首先,需要根據服務器的硬件性能,綜合考量可接受的復雜查詢對系統資源的占用比例,據此設置并行度上限,例如:set parallel_degree_limit = 32;

👉 然后,打開 Auto DOP:set parallel_degree_policy = AUTO。

在設置 Auto DOP 的過程中,有幾個關鍵參數,分別是資源管控參數 parallel_servers_target、parallel_degree_limit 以及執行優化層參數 parallel_min_scan_time_threshold。

1、parallel_servers_target

parallel_servers_target 屬于租戶級別的系統變量,它明確規定了租戶在每個節點上可申請的并行執行線程數量。其默認值是 MIN CPU * px_workers_per_cpu_quota。當這個參數指定的線程資源耗盡時,后續發起的并行執行請求需要進入排隊等待的狀態,直至有可用資源釋放。

圖片

2、parallel_degree_limit

parallel_degree_limit 主要用于約束 Auto DOP 開啟時,單條 SQL 語句所能達到的最大并行度,默認值為 0。當這個參數為 0 時,系統會自動借助 CPU 資源狀況和 parallel_servers_target 的設定,共同限制最大 DOP 值。

例如,當 parallel_degree_limit = 0 時,若 parallel_servers_target = 10,且通過 OceanBase.V$OB_UNITS 查詢得知 min_cpu = 2,同時單條 SQL 查詢所讀取的兩個分區分布在 2 臺?OBServer?上,那么經過計算,該場景下最大可用 DOP 為 min(10, 2 * 2) = 4。

圖片

3、parallel_min_scan_time_threshold

parallel_min_scan_time_threshold 以毫秒(為單位ms),默認值設置為 1000 ms,該參數對并行度的調整有著直接影響。具體來說,當基表的掃描代價高于該參數設定的值時,系統就會自動開啟并行處理模式。

假如適當調小 parallel_min_scan_time_threshold 的值,可以降低基表開啟并行處理的門檻,使得評估執行時間更短的基表掃描也能被納入并行處理范疇。對于已經處于并行處理狀態且數據量固定的表,也會相應地提升并行度,采用更大規模的并行掃描策略,以進一步優化處理效率。例如:

圖片

圖片

Auto DOP 執行狀態監測

在實際應用過程中,準確監測 Auto DOP 的執行狀態對于開發者優化數據庫性能、精準定位問題至關重要。OceanBase 提供了系統視圖特征碼解析以及內置 XPlan 工具包這兩大工具,助力開發者快速鎖定并行策略的執行軌跡,實現對資源調度的精準驗證。

方法一:通過查詢 $OB_PLAN_CACHE_PLAN_STAT 中的 OUTLINE_DATA 字段,判斷其中是否包含 PARALLEL(AUTO) ,以此來確定相關執行策略是否啟用了 Auto DOP。

圖片

方法二:通過 explain extended 指令或使用 dbms_xplan.display_cursor(強烈推薦開發者體驗,該函數在分析性能問題方面效果顯著),同樣能夠獲取關于 Auto DOP 執行狀態的詳細信息。

圖片

Auto DOP 最佳場景實踐

1、AP 場景

在純 AP 場景下,業務需求主要聚焦于運行少量極為復雜的大查詢,幾乎不存在急需優先處理的 DML 操作以及小查詢任務。此時,運用 Auto DOP 的方法極為簡便:

第一步,結合服務器硬件性能,綜合權衡可接受的復雜查詢對資源的占用比重,設置合理的并行度上限。例如:set parallel_degree_limit = 32;

第二步,輕松開啟 Auto DOP 功能:set parallel_degree_policy = AUTO;

2、AP+TP 混布場景

在 AP+TP 混布的復雜場景中,Auto DOP 旨在優化慢 SQL 的 RT(run time),但這一過程不可避免地會占用更多的線程資源,可能會引發少量 AP 大查詢和大量 TP 小查詢(小 DML)之間的資源爭用。AP 慢查詢如果借助 Auto DOP 開啟大量線程并行執行,會在一定程度上擠壓分配給小查詢的系統資源。

Auto DOP 并非萬能,它本身無法自動感知用戶心中對 SQL 優先級的設定,因此需要人為介入,明確告知數據庫不同 SQL 的優先級。具體解決方法是在租戶內部,為小查詢和大查詢分別規劃獨立的資源組,巧妙借助資源組(resource group)實現資源隔離。

OceanBase 在租戶內支持 User 級和 SQL 級兩種粒度的資源隔離方式。通過靈活配置各個 Resource Group 的 Max CPU 參數,即可實現讓不同 User 或者不同類型的 SQL 按需使用不同資源組的資源,有效緩解資源競爭壓力,保障各類業務穩定、高效運行。

Auto DOP 技術構建了一套完整且高效的并行執行優化體系,無論是在純 AP 場景下對復雜查詢效率的極致追求,還是在 AP+TP 混布場景中巧妙化解資源爭用難題,Auto DOP 都展現出了卓越的性能優勢與強大的適應性。OceanBase 也將不斷優化產品技術細節,為企業數字化轉型的深入推進提供堅實有力的數據支撐!


5 月 17 日,OceanBase 將在廣州召開 2025 開發者大會,本屆大會以「當 SQL 遇見 AI」為主題,將重磅發布面向 AI 時代的一體化產品矩陣,并分享 TP、AP、KV 及 AI 能力的最新實踐成果。歡迎大家點擊下方鏈接,報名參會!

>>2025 OceanBase 開發者大會

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/82301.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82301.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/82301.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【區塊鏈】Uniswap之滑點(Slippage)

一、滑點是什么? 滑點(Slippage)是指你下單預期價格和最終成交價格之間的差距。 在 DEX 中,你的交易會影響池子的價格(AMM機制),所以: 下單越大,滑點越大;…

[前端]Javascript獲取元素寬度

元素寬度屬性對比示意圖 ---------------------------------- | 外邊距(margin) | -------------------------------- | | 邊框(border) | | | -------------------------- | | | …

數字人驅動/動畫方向最新頂會期刊論文收集整理 | AAAI 2025

會議官方論文列表:https://ojs.aaai.org/index.php/AAAI/issue/view/624 以下論文部分會開源代碼,若開源,會在論文原文的摘要下方給出鏈接。 語音驅動頭部動畫/其他 EchoMimic: Lifelike Audio-Driven Portrait Animations through Editabl…

Windows系統下【Celery任務隊列】python使用celery 詳解(一)

Celery 是一個基于 Python 的分布式任務隊列框架,它允許你在不同的進程甚至不同的服務器上異步執行任務。 特點 簡單:易于使用和配置,提供了簡潔的 API。高可用:支持任務的可靠交付,即使在出現故障時也能保證任務不丟…

移動設備常用電子屏幕類型對比

概述 LCD 家族 (TN、STN、TFT、IPS、VA)依賴背光,性能差異主要來自液晶排列和驅動方式。OLED 以自發光為核心優勢,但成本與壽命限制其普及。E-Paper 專為低功耗靜態顯示設計,與傳統屏幕技術差異顯著。 參數LCD&#…

Vue3.5 企業級管理系統實戰(十八):用戶管理

本篇主要探討用戶管理功能,接口部分依然是使用 Apifox mock 模擬。 1 用戶 api 在 src/api/user.ts 中添加用戶相關 CRUD 接口,代碼如下: //src/api/user.ts import request from "/api/config/request"; // 從 "./type&q…

【C】初階數據結構14 -- 歸并排序

本篇文章主要是講解經典的排序算法 -- 歸并排序 目錄 1 遞歸版本的歸并排序 1) 算法思想 2) 代碼 3) 時間復雜度與空間復雜度分析 (1) 時間復雜度 (2) 空間復雜度 2 迭代版本的歸并…

【相機標定】OpenCV 相機標定中的重投影誤差與角點三維坐標計算詳解

摘要: 本文將從以下幾個方面展開,結合典型代碼深入解析 OpenCV 中的相機標定過程,重點闡述重投影誤差的計算方法與實際意義,并通過一個 calcBoardCornerPositions() 函數詳細講解棋盤格角點三維坐標的構建邏輯。 在計算機視覺領域…

RabbitMQ-運維

文章目錄 前言運維-集群介紹多機多節點單機多節點 多機多節點下載配置hosts?件配置Erlang Cookie啟動節點構建集群查看集群狀態 單機多節點安裝啟動兩個節點再啟動兩個節點驗證RabbitMQ啟動成功搭建集群把rabbit2, rabbit3添加到集群 宕機演示仲裁隊列介紹raft算法協議 raft基…

JVM之內存管理(一)

部分內容來源:JavaGuide二哥Java 圖解JVM內存結構 內存管理快速復習 棧幀:局部變量表,動態鏈接(符號引用轉為真實引用),操作數棧(存儲中間結算結果),方法返回地址 運行時…

無線射頻模塊如何通過CE RED認證?關鍵規范與準備策略詳解

隨著無線通信設備在歐洲市場的廣泛應用,CE RED認證已成為模塊類產品進入歐盟的強制通行證。作為專注于LoRa模塊、對講模塊與FSK射頻模塊研發的技術企業,我們深知從設計、測試到量產,每一個環節都需緊扣合規底線。本文將圍繞CE RED認證核心要求…

Golang中集合相關的庫

一切編程語言的底層結構都是數組,其它復雜數據結構如Map, Stack,Heap和Queue都是基于數組建立起來的。 Go語言主流工具庫推薦(含常用數據結構實現) 以下是目前Go生態中最主流且活躍的工具庫,包含隊列、棧、優先級隊列…

ABAP 導入Excel形成內表

文章目錄 創建導入模板程序實現代碼代碼解析運行結果 創建導入模板 程序實現 代碼 *&---------------------------------------------------------------------* *& Report Z_EXCEL_UPLOAD_LHY *&--------------------------------------------------------------…

特殊配合力(SCA)作為全基因組關聯分析(GWAS)的表型,其生物學意義和應用價值

生物學意義 解析非加性遺傳效應 特殊配合力(SCA)主要反映特定親本組合的雜交優勢,由非加性遺傳效應(如顯性、超顯性、上位性)驅動。顯性效應涉及等位基因間的顯性互作,上位性效應則涉及不同位點間的基因互作。通過SCA-GWAS,可以定位調控這些非加性效應的關鍵基因組區域…

應急響應基礎模擬靶機-security1

PS:杰克創建在流量包(result.pcap)在根目錄下,請根據已有信息進行分析 1、攻擊者使用的端口掃描工具是? 2、通過流量及日志審計,攻擊者上傳shell的時訪問web使用IP地址是多少? 3、審計流量日志,攻擊者反彈shell的地址及端口? 4、攻擊者…

uniapp-商城-47-后臺 分類數據的生成(通過數據)

在第46章節中,我們為后臺數據創建了分類的數據表結構schema,使得可以通過后臺添加數據并保存,同時使用云函數進行數據庫數據的讀取。文章詳細介紹了如何通過前端代碼實現分類管理功能,包括獲取數據、添加、更新和刪除分類。主要代…

ClickHouse的基本操作說明

說明 文章內容包括數據庫管理、表操作及查詢等核心功能 創建數據庫 -- 默認引擎(Atomic) CREATE DATABASE IF NOT EXISTS test_db; -- MySQL引擎(映射外部MySQL數據庫) CREATE DATABASE mysql_db ENGINE MySQL(host:port, m…

Nacos源碼—7.Nacos升級gRPC分析四

大綱 5.服務變動時如何通知訂閱的客戶端 6.微服務實例信息如何同步集群節點 6.微服務實例信息如何同步集群節點 (1)服務端處理服務注冊時會發布一個ClientChangedEvent事件 (2)ClientChangedEvent事件的處理源碼 (3)集群節點處理數據同步請求的源碼 (1)服務端處理服務注冊…

《Overlapping Experiment Infrastructure: More, Better, Faster》論文閱讀筆記

文章目錄 1 背景2 三個核心概念3 Launch層:特性發布的專用機制4 流量分發策略和條件篩選4.1 四種流量分發類型4.2 條件篩選機制 5 工具鏈與監控體系6 實驗設計原則7 培訓參考與推薦 1 背景 谷歌(Google)以數據驅動著稱,幾乎所有可…

國芯思辰| 醫療AED可使用2通道24位模擬前端SC2946(ADS1292)

生物電信號監測技術在醫療健康行業中發展迅速,成為評估人體生理健康狀況的關鍵手段。心電(ECG)、腦電(EEG)和肌電(EMG)等信號,通過精密模擬前端芯片捕捉和處理,對醫療診斷…