【openGauss2.1.0利用Index-advisor实现索引推荐】

文章介绍了如何在openGauss2.1.0环境中利用Index-advisor分析查询语句,推荐并创建索引,以提升查询性能。通过实例展示,展示了索引优化前后查询时间的显著减少,证明了Index-advisor的有效性。

【openGauss2.1.0利用Index-advisor实现索引推荐】

Index-advisor是openGauss2.1.0中的一个工具,可以帮助用户分析数据库中的查询语句,推荐最佳的索引策略。使用Index-advisor可以提高查询性能,减少数据库的负载。

一、环境说明

  1. 华为云ECS 鲲鹏架构 8vCPU 32G
  2. 操作系统:openEuler20.03TLS
  3. 数据库版本:openGauss2.1.0

二、参数调优步骤

下面是利用Index-advisor实现索引推荐的具体步骤:

  1. 安装Index-advisor

    如果不是源码安装openGauss,而是使用编译好的openGauss安装包安装,则X-Tuner是openGauss2.1.0自带的一款工具。在安装openGauss2.1.0时,X-Tuner也会被一同安装。具体安装可以参考:【基于openEuler上安装单机openGauss2.1.0企业版】

    如果是源码安装,则需要单独安装Index-advisor,可参考:【基于openEuler 20.03 和openGauss2.1.0环境中安装X-Tuner】
    本文是基于这种方式进行测试

  2. 参数调优前,使用【omm用户】先执行TPCH脚本queries.sql(该文件是在【openGauss2.1.0 TPC-C数据导入】产生的),记录下脚本执行时间,这个过程可能需要花费十多分钟的时间,请耐心等待。

    [omm@sjmopengauss01 queries]$  gsql -d tpch -p 5432 -r -f /opt/software/tpch-kit/dbgen/queries/queries.sql > /opt/software/tpch-kit/dbgen/queries/queries01.log
    

    执行结束后,查看queries01.log:

    tail -10 /opt/software/tpch-kit/dbgen/queries/queries01.log
    

    结果如下:

    ……
    total time: 1190160  ms
    
  3. 登录数据库
    切换到【omm用户】,执行如下命令:

    [omm@sjmopengauss01 data]$ gsql -d tpch -p 5432 -r
    

    使用SQL查询2020年3月订单收入,并进行排序,执行结果如下:

    SELECT ad.province AS province, SUM(o.actual_price) AS GMV
      FROM litemall_orders o,
           address_dimension ad,
           date_dimension dd
     WHERE o.address_key = ad.address_key
       AND o.add_date = dd.date_key
       AND dd.year = 2020
       AND dd.month = 3
     GROUP BY ad.province
     ORDER BY SUM(o.actual_price) DESC;
    

    结果如下:

         province     |     gmv
    ------------------+-------------
     上海市           | 13927163.00
     江苏省           | 13900815.00
     浙江省           | 13890720.00
     天津市           | 13750598.00
     北京市           | 13458554.00
     山东省           |  4381747.00
     重庆市           |  4172788.00
     福建省           |  4005384.00
     安徽省           |  3973989.00
     广东省           |  3842252.00
     河南省           |  1130277.00
     海南省           |  1113236.00
     新疆维吾尔自治区 |  1058210.00
     云南省           |  1041797.00
     西藏自治区       |  1040002.00
     贵州省           |  1003301.00
     吉林省           |  1002830.00
     辽宁省           |   982522.00
     宁夏回族自治区   |   885719.00
     陕西省           |   863598.00
     河北省           |   814762.00
     广西壮族自治区   |   812580.00
     黑龙江省         |   787436.00
     湖北省           |   775761.00
     湖南省           |   762020.00
     江西省           |   753550.00
     青海省           |   739701.00
     甘肃省           |   734090.00
     四川省           |   726917.00
     内蒙古自治区     |   667131.00
     山西省           |   643208.00
    (31 rows)
    

    使用explain,对该SQL加以分析:

    EXPLAIN 
    SELECT ad.province AS province, SUM(o.actual_price) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安楠的数智笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值