0
点赞
收藏
分享

微信扫一扫

基于Benchmark查看OceanBase执行计划

以前干嘛去了 03-19 20:00 阅读 3

文章目录



本文详细介绍了OceanBase 的执行计划查看方法,包括 explain 命令和查看实际执行计划。

📣 1.BenmarkSQL

✨ 1.BenmarkSQL介绍

✨ 1.2 下载BenmarkSQL

[root@centos79 ~]# git clone https://github.com/obpilot/benchmarksql-5.0.git
Cloning into 'benchmarksql-5.0'...
remote: Enumerating objects: 110, done.
remote: Counting objects: 100% (110/110), done.
remote: Compressing objects: 100% (90/90), done.
remote: Total 110 (delta 14), reused 105 (delta 12), pack-reused 0
Receiving objects: 100% (110/110), 5.58 MiB | 89.00 KiB/s, done.
Resolving deltas: 100% (14/14), done.

📣 2.OceanBase4.2 集群

✨ 2.1 集群状态

2.查看集群状态
[admin@centos79 ~]$ obd cluster display obtest
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer 192.168.3.20:2881 ok
Wait for observer init ok
+------------------------------------------------+
|                    observer                    |
+--------------+---------+------+-------+--------+
| ip           | version | port | zone  | status |
+--------------+---------+------+-------+--------+
| 192.168.3.20 | 4.2.2.0 | 2881 | zone1 | ACTIVE |
+--------------+---------+------+-------+--------+
obclient -h192.168.3.20 -P2881 -uroot -p'gxmxiv4fV6uKhJfgDktn' -Doceanbase -A

Connect to obproxy ok
+------------------------------------------------+
|                    obproxy                     |
+--------------+------+-----------------+--------+
| ip           | port | prometheus_port | status |
+--------------+------+-----------------+--------+
| 192.168.3.20 | 2883 | 2884            | active |
+--------------+------+-----------------+--------+
obclient -h192.168.3.20 -P2883 -uroot -p'gxmxiv4fV6uKhJfgDktn' -Doceanbase -A 

Trace ID: bb89c746-e33d-11ee-97f5-000c29377d62
If you want to view detailed obd logs, please run: obd display-trace bb89c746-e33d-11ee-97f5-000c29377d62

✨ 2.2 测试用户

📣 3.配置文件修改

📣 4.生成数据

编辑一下runSQL.sh文件,更改内容如下:

#!/usr/bin/env bash
 
# ----
# Check command line usage
# ----
if [ $# -ne 2 ] ; then
    echo "usage: $(basename $0) PROPS_FILE SQL_FILE" >&2
    exit 2
fi
 
# ----
# Load common functions
# ----
source /root/benchmarksql-5.0/run/funcs.sh $1

SHARDING = 'NONE';

在这里插入图片描述

在这里插入图片描述

📣 5.创建索引

[root@centos79 run]# ./runSQL.sh props.ob sql.oceanbase/indexCreates.sql
# ------------------------------------------------------------
# Loading SQL file sql.oceanbase/indexCreates.sql
# ------------------------------------------------------------
create index bmsql_customer_idx1
on  bmsql_customer (c_w_id, c_d_id, c_last, c_first) local;
create  index bmsql_oorder_idx1
on  bmsql_oorder (o_w_id, o_d_id, o_carrier_id, o_id) local;

📣 6.TPCC测试

在这里插入图片描述

📣 7.TOP SQL分析

✨ 7.1 查询TOP

在这里插入图片描述

✨ 7.2 执行计划分析

select distinct query_sql from oceanbase.GV$OB_SQL_AUDIT where sql_id='7229213613983BC5FDA15AD11EC70D01';
  +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| query_sql                                                                                                                                                                                                                                |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| SELECT s_quantity, s_data, s_dist_01, s_dist_02, s_dist_03, s_dist_04,s_dist_05, s_dist_06, s_dist_07, s_dist_08,s_dist_09, s_dist_10   FROM bmsql_stock     WHERE s_w_id = 1 AND s_i_id = 97744     FOR UPDATE |
| SELECT s_quantity, s_data, s_dist_01, s_dist_02, s_dist_03, s_dist_04,s_dist_05, s_dist_06, s_dist_07, s_dist_08, s_dist_09, s_dist_10    FROM bmsql_stock     WHERE s_w_id = 2 AND s_i_id = 10652     FOR UPDATE |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.068 sec)

实际执行计划


SELECT SVR_IP, plan_depth, plan_line_id,operator,name,rows,cost,property from GV$OB_PLAN_CACHE_PLAN_EXPLAIN
where tenant_id=1002 AND SVR_IP = '192.168.3.20' 
AND svr_port=2882 AND plan_id=681\G;

     *************************** 1. row ***************************
                ip: 127.0.0.1
        plan_depth: 0
      plan_line_id: 0
          operator: PHY_TABLE_SCAN
              name: bmsql_stock
              rows: 9
              cost: 248249
          property: table_rows:86530, physical_range_rows:200159, logical_range_rows:86530, index_back_rows:0, output_rows:8, est_method:local_storage, avaiable_index_name[bmsql_stock], estimation info[table_id:1100611139453798, (table_type:1, version:0-1-1, logical_rc:0, physical_rc:0), (table_type:7, version:1-1643245354224215-1643245354224215, logical_rc:0, physical_rc:96654), (table_type:0, version:1643245354224215-1643245354224215-9223372036854775807, logical_rc:86530, physical_rc:103505)]
      1 row in set (0.013 sec)
      
      ERROR: No query specified  

解释执行计划


  *************************** 1. row ***************************
      Query Plan: ============================================
      |ID|OPERATOR  |NAME       |EST. ROWS|COST  |
      --------------------------------------------
      |0 |TABLE SCAN|bmsql_stock|9        |248250|
      ============================================
 
      Outputs & filters:
      -------------------------------------
        0 - output([bmsql_stock.s_quantity], [bmsql_stock.s_data], [bmsql_stock.s_dist_01], [bmsql_stock.s_dist_02], [bmsql_stock.s_dist_03], [bmsql_stock.s_dist_04], [bmsql_stock.s_dist_05], [bmsql_stock.s_dist_06], [bmsql_stock.s_dist_07], [bmsql_stock.s_dist_08], [bmsql_stock.s_dist_09], [bmsql_stock.s_dist_10]), filter([bmsql_stock.s_w_id = 2], [bmsql_stock.s_i_id = 10652]),
            access([bmsql_stock.s_w_id], [bmsql_stock.s_i_id], [bmsql_stock.s_quantity], [bmsql_stock.s_data], [bmsql_stock.s_dist_01], [bmsql_stock.s_dist_02], [bmsql_stock.s_dist_03], [bmsql_stock.s_dist_04], [bmsql_stock.s_dist_05], [bmsql_stock.s_dist_06], [bmsql_stock.s_dist_07], [bmsql_stock.s_dist_08], [bmsql_stock.s_dist_09], [bmsql_stock.s_dist_10]), partitions(p0)
 
      1 row in set (0.016 sec)
 
      ERROR: No query specified![      ](/Users/mac/Library/Application Support/typora-user-images/image-20240316002639580.png)

📣 8.报错分析

📣 9.总结

举报

相关推荐

0 条评论