背景資訊
ODC SQL 視窗提供了用於處理資料的使用者介面。在 SQL 視窗中,您可以對 SQL 陳述式進行系統評估、執行詳情和執行的全鏈路耗時資訊。
本文檔以表 employee 為例,介紹如何對查詢 SQL 陳述式進行系統評估。
執行計畫
在 SQL 視窗中,編輯 SQL 陳述式以查詢插入表
employee的資料。
SELECT `emp_no`, `birthday`, `name`, `time`, `test_col`, `status`, `age`, `state` FROM `employee`;如上圖所示,選中 SQL 陳述式並單擊執行計畫表徵圖,可以在執行 SQL 陳述式前系統預估執行資料(EXPLAINPLAN 操作的結果),展示的執行資料可能與實際執行語句後的資料略有不同。

在 計劃詳情 頁面中,單擊 文本視圖 切換至格式化展示頁面。
執行詳情
對於 OceanBase V4.2.4 之前的版本,執行 SQL 陳述式時,您可以通過結果集頁簽中 執行詳情 查看 SQL 執行的基本資料、耗時統計、I/O 統計、執行的 SQL 陳述式、計劃統計和大綱。

對於 OceanBase V4.2.4 及之後且 OceanBase V4.3.0 之前的版本或者 OceanBase V4.3.3.1 及之後的版本,您在執行查詢/插入/更新/刪除/檢索資料庫中的資料時,您可以通過 執行畫像 即時查詢 SQL 執行的執行剖析,通過執行剖析可以快速查詢 SQL 執行詳情和識別效能瓶頸。
執行畫像入口
入口一:在 SQL 視窗執行 SQL 陳述式時,執行過程中可以在 日誌 頁簽單擊 查看執行畫像。
重要如果 SQL 陳述式的執行耗時低於 1 秒,日誌頁簽中可能不會展示執行畫像入口。

入口二:SQL 陳述式執行完成後,可以在執行結果中單擊執行畫像表徵圖。

入口三:SQL 陳述式執行完成後,單擊 執行記錄 頁簽中的 TRACE ID 可進入執行畫像介面。

執行剖析
執行詳情 即執行畫像是對 SQL 執行計畫的可視化和資料擷取,支援即時查看運算元執行狀態、耗時詳情、I/O 和運行時資料,並對全域執行耗時進行匯總和排序。

通過執行畫像,您可以:
以圖格式查看 OceanBase 的實際執行計畫,更方便理解運算元執行順序和串連關係。
通過執行概覽、即時 I/O 統計和耗時 Top5 快速進行執行瓶頸識別,ODC 根據 CPU time 進行耗時排序。
即時查詢運算元的執行狀態、時間和吐行行數,通過單擊運算元節點,您可以在右側擷取到運算元屬性、耗時詳情,以及 I/O 及其它運行時資料。

支援分析單機執行計畫和分析分布式執行計畫,並存執行運算元支援按照 DB 耗時、IO 記憶體和吐行行數排序,快速定位元據傾斜。
SQL 執行概覽
類型 | 參數說明 |
SQL 執行概覽 |
|
運算元執行概覽 |
|
I/O 統計
類型 | 參數說明 |
運算元 I/O 統計 |
|
節點屬性
節點屬性由運算元的輸出資訊和運行時資料(Other statistics)構成。
更多節點輸出資訊,請參見 OceanBase 官網文檔,例如Table Scan 運算元的屬性。
運行時資料在不同運算元上表示不同的意義,是一些重要的監控指標。關於此類指標,請參見 V$SQL_MONITOR_STATNAME 視圖。
執行計畫
與 SQL 視窗中的 執行計畫 不同,執行畫像 中的執行計畫展示的是實際執行的計劃,因此包含 實際行 和 實際代價。ODC 通過 DBMS_XPLAN 工具包擷取當前計劃。

您也可以單擊右上方的 文本視圖 切換視圖,查詢更全面的計劃資訊,便於進行更進一步的 SQL 調優。

全鏈路診斷
當 OceanBase 版本高於 4.2.0 時(如需通過 OBProxy 串連,版本應為 OBProxy V4.2.0 及之後),ODC 支援查看 SQL 的全鏈路診斷可視化資訊。更多請參見OceanBase 全鏈路追蹤概述。
ODC 對於 OceanBase 的全鏈路診斷資料,提供了 Trace 視圖 和 列表視圖 兩種可視化視圖。
Trace 視圖展示了 SQL 執行的總時間線,支援節點的展開和收合,且支援搜尋高亮。將滑鼠置於時間軸上,可以查看當前節點的執行節點、開始、結束時間,以及詳細資料。

單擊表格視圖
可以切換視圖,允許對 Span 進行各維度篩選和排序。

ODC 支援匯出 JSON 格式的全鏈路診斷資料,相容 OpenTracing 協議,您可以將其匯入 Jaeger 中進行進一步分析。
DB 耗時

在 執行記錄 頁簽中,可將滑鼠箭頭放置在 DB 耗時 資訊後的提示表徵圖上,彈出的提示資訊中可查看對 SQL 執行的全鏈路耗時資訊,以驗證各個階段的耗時與實際是否相符。

