建立了索引为什么对查询语句速度没有影响

问题如题,相应的sql语句:
select
s_acctbal,
s_name,
n_name,
p_partkey,
p_mfgr,
s_address,
s_phone,
s_comment
from
part,
supplier,
partsupp,
nation,
region
where
p_partkey = ps_partkey
and s_suppkey = ps_suppkey
and p_size = 6
and p_type like ‘%TIN’
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = ‘MIDDLE EAST’
and ps_supplycost = (
select
min(ps_supplycost)
from
partsupp,
supplier,
nation,
region
where
p_partkey = ps_partkey
and s_suppkey = ps_suppkey
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = ‘MIDDLE EAST’
)
order by
s_acctbal desc,
n_name,
s_name,
p_partkey
limit 100;

原来的执行时间:
X9TQQ0PERVVST$3NI18DG3J
建了索引后的执行时间:
image

建索引是使用了一个随机的算法脚本,对sql语句中涉及到的表以及列建索引,所有的索引如图:

提供一下 执行计划 尽量把全部内容放到文本里
explain extended sql

收集SQL性能问题信息

obdiag gather scene run --scene=observer.perf_sql --env “{db_connect=’-hxx -Pxx -uxx -pxx -Dxx’, trace_id=‘xx’}”
https://www.oceanbase.com/docs/common-obdiag-cn-1000000001102504

Explain Extended.txt (43.8 KB)
这个是Explain结果,请问一下使用那个工具的话Trace id怎么填啊

1、SET ob_enable_show_trace=‘ON’;

注意:需要在同一个会话中执行

obclient [test]> select count() from test2;
±---------+
| count(
) |
±---------+
| 0 |
±---------+
1 row in set (0.003 sec)

obclient [test]> select last_trace_id();
±----------------------------------+
| last_trace_id() |
±----------------------------------+
| YB420BA1CC68-000615A0A8EA6511-0-0 |
±----------------------------------+
1 row in set (0.002 sec)
2、根据时间和执行语句查询trace_id
select query_sql,svr_ip,TRACE_ID,client_ip,TENANT_NAME,user_name,DB_NAME,ELAPSED_TIME,RET_CODE,FROM_UNIXTIME(ROUND(REQUEST_TIME/1000/1000),’%Y-%m-%d %H:%i:%S’) from GV$OB_SQL_AUDIT
WHERE REQUEST_TIME>=‘2024-04-05 14:34:00’ and lower(query_sql) like ‘%select%’;

麻烦 你提供一下这几个表的表结构 放到一个文本里


请问Trace ID是这样的吗,我是使用下面这个方法获取ID的

表结构.txt (3.9 KB)
这是建表语句

trace_id1是这样的 按照我楼上的说的 可以获取到trace_id


怎么看着符号有问题 是不是直接拷贝过去的 符号可能转义了


按照我的发的命令 好好检查一下


这个应该是root@sys
这个是这个语句的文档 你看一下
https://www.oceanbase.com/docs/common-obdiag-cn-1000000001214432

我是使用obd部署的obdiag,应该直接使用如下命令吧?


但是为什么会出现这种情况呢?

我是按照这个方法来配置的呀


是obd集群了这个工具包 但是使用还需要用obd obdiag deploy部署一下 这个工具
https://www.oceanbase.com/docs/community-obd-cn-10000000002049483


已经部署过了,但是好像缺少一个配置文件,请问不是说使用obd部署的不需要这个文件吗?

目前你的obd版本是多少?你查一下obd --version

  1. obd组件下使用是不需要对应的安装
  2. 在obd obdiag xxxxx指令之后需要加上集群名,看上传的图片,可以在指令后加空格,然后按tab自动补全,会提示目前可以支持的集群名

这个是版本:


我更新以后又出了这样的问题:

你按照楼上说的 操作一下 自动补齐 是不是没有obtest这个集群名呀