全部產品
Search
文件中心

PolarDB:使用說明

更新時間:Jul 06, 2024

PolarDB MySQL版提供的SQL Trace功能,用於跟蹤SQL語句的執行資訊,如:執行計畫和執行統計資訊(包括掃描行數、執行時間等)。可以協助您快速地發現因執行計畫變更而引發的效能變化,並統計當前叢集中消耗負載較大的TopSQL。

前提條件

PolarDB叢集版本需滿足以下條件之一:

  • PolarDB MySQL版8.0.1版本且修訂版本為8.0.1.1.30及以上。

  • PolarDB MySQL版8.0.2版本且修訂版本為8.0.2.2.12及以上。

您可以通過查詢版本號碼來確認叢集版本。

使用限制

SQL Trace功能不會跟蹤與帳號相關的操作。如:CREATE USERDROP USERGRANT等。

參數說明

參數名稱

描述

loose_sql_trace_type

SQL Trace跟蹤類型。取值範圍如下:

  • OFF(預設):不跟蹤任何SQL語句。

  • DEMAND:跟蹤指定的SQL語句。

  • ALL:跟蹤所有的SQL語句。

  • SLOW_QUERY:跟蹤所有的慢查詢。

說明

僅支援在PolarDB MySQL版8.0.1版本,且修訂版本為8.0.1.1.34及以上的版本使用SLOW_QUERY

loose_sql_sharing_size

儲存SQL Sharing(SQL Trace中的基礎組件)的最大使用記憶體。

取值範圍:8388608~1073741824。單位:位元組。預設值為134217728。

loose_sql_trace_plan_expire_time

SQL Trace跟蹤的執行計畫失效時間。當執行計畫超過該時間且未被命中後,該執行計畫將會被判定為到期,可以將其淘汰。

取值範圍:0~18446744073709551615。單位:秒。預設值為604800。

使用說明

  • 添加需要跟蹤的SQL語句。

    您可以通過以下兩種方式來添加需要跟蹤的SQL語句,並通過SQL Trace功能來跟蹤SQL語句的執行資訊。

    • loose_sql_trace_type參數值設定為ALL,來跟蹤所有的SQL語句。

    • loose_sql_trace_type參數值設定為DEMAND,通過dbms_sql.add_trace預存程序添加指定的需要跟蹤的SQL語句。

  • 擷取使用SQL Trace功能跟蹤的SQL語句的資訊。

    您可以通過訪問information_schema.sql_sharing表來擷取使用SQL Trace功能跟蹤的SQL語句的執行資訊和TopSQL等。樣本如下:

    • 擷取指定SQL的執行資訊和執行計畫資訊。

      SELECT * FROM information_schema.sql_sharing WHERE sql_id = polar_sql_id('select * from t');
    • 分別擷取按照總執行時間、平均執行時間和總掃描行數三個維度Top10的SQL語句。

      SELECT * FROM information_schema.sql_sharing WHERE TYPE='sql' ORDER BY SUM_EXEC_TIME DESC LIMIT 10;
      SELECT * FROM information_schema.sql_sharing WHERE TYPE='sql' ORDER BY SUM_EXEC_TIME/EXECUTIONS DESC LIMIT 10;
      SELECT * FROM information_schema.sql_sharing WHERE TYPE='sql' ORDER BY SUM_ROWS_EXAMINED DESC LIMIT 10;

其他動作

效能測試

SQL Trace內部使用了大量的無鎖設計,能夠保證在高並發、SQL模板數量較多等情境下的資料庫效能。

以下測試為相同情境下,sql_trace_type參數值設定為OFFALL時的效能對比。

Sysbench測試資料量為2千張表,每張表1萬行資料。叢集規格分別為4核8 GB和8核32 GB。

  • 叢集規格為4核8 GB時的效能對比如下:

    • db-ps-mode=disable oltp_read_onlyimage

    • db-ps-mode=auto oltp_read_writeimage

  • 叢集規格為8核32 GB時的效能對比如下:

    • db-ps-mode=disable oltp_read_onlyimage

    • db-ps-mode=auto oltp_read_writeimage

結論

由以上的測試資料得出:在oltp_read_only和oltp_read_write情境下SQL Trace對效能的影響均不超過3%。