当前位置: 首页 > news >正文

【基于openGauss5.0.0简单使用DBMind】

基于openGauss5.0.0简单使用DBMind

    • 一、环境说明
    • 二、初始化tpch测试数据
    • 三、使用DBMind索引推荐功能
    • 四、使用DBMind实现SQL优化功能

一、环境说明

  1. 虚拟机:virtualbox
  2. 操作系统:openEuler 20.03 TLS
  3. 数据库:openGauss-5.0.0
  4. DBMind:dbmind-5.0.0
    注意环境是基于x86架构

二、初始化tpch测试数据

  1. 使用普通用户如omm登录服务器

  2. 执行如下命令下载测试数据库:

    git clone https://gitee.com/xzp-blog/tpch-kit.git
    
  3. 进入dbgen目录下,生成makefile文件:

    cd /opt/software/tpch-kit/dbgen/
    make -f Makefile
    
  4. 连接openGauss数据库,创建tpch的database:

    gsql -d postgres -p 15432 -r
    openGauss=# CREATE DATABASE tpch; 
    openGauss=# \q
    
  5. 创建8张测试表,执行如下命令:

    cd /opt/software/tpch-kit/dbgen
    gsql -d tpch -f dss.ddl
    

    执行完成后,登录数据库查看,会看到如下8张表:

    					List of relationsSchema |   Name   | Type  | Owner |             Storage
    --------+----------+-------+-------+----------------------------------public | customer | table | omm   | {orientation=row,compression=no}public | lineitem | table | omm   | {orientation=row,compression=no}public | nation   | table | omm   | {orientation=row,compression=no}public | orders   | table | omm   | {orientation=row,compression=no}public | part     | table | omm   | {orientation=row,compression=no}public | partsupp | table | omm   | {orientation=row,compression=no}public | region   | table | omm   | {orientation=row,compression=no}public | supplier | table | omm   | {orientation=row,compression=no}
    
  6. 生成8张表测试数据,执行如下命令:

    cd /opt/software/tpch-kit/dbgen
    ./dbgen -vf -s 1
    

    执行结果如下:

    [omm@opengauss01 dbgen]$ ./dbgen -vf -s 1
    TPC-H Population Generator (Version 2.17.3)
    Copyright Transaction Processing Performance Council 1994 - 2010
    Generating data for suppliers table/
    Preloading text ... 100%
    done.
    Generating data for customers tabledone.
    Generating data for orders/lineitem tablesdone.
    Generating data for part/partsupplier tablesdone.
    Generating data for nation tabledone.
    Generating data for region tabledone.
    
  7. 编写导入数据脚本LoadData.sh:

    for i in `ls *.tbl`; dotable=${i/.tbl/}echo "Loading $table..."sed 's/|$//' $i > /opt/software/tmp/$igsql tpch -p 15432 -q -c "TRUNCATE $table"gsql tpch -p 15432 -c "\\copy $table FROM '/opt/software/tmp/$i' CSV DELIMITER '|'"
    done
    

    注意当前数据库端口为15432
    授予执行权限:

    [omm@opengauss01 dbgen]$ chmod +x LoadData.sh
    
  8. 导入数据到8张表中,执行导入脚本LoadData.sh:

    [omm@opengauss01 dbgen]$ sh LoadData.sh
    

    执行结果如下:

    Loading customer...
    Loading lineitem...
    Loading nation...
    Loading orders...
    Loading partsupp...
    Loading part...
    Loading region...
    Loading supplier...
    
  9. 检验数据是否已完成导入:

    gsql -d tpch -p 15432 -r
    tpch=# select count(*) from supplier;
    

    查看了supplier表的总记录数为:10000条。
    感兴趣可以全部查看8张表各自的总记录数,如下所示:

    至此,已完后TPCH测试数据的导入工作。

  10. 生成相关查询语句,为避免对原有查询语句脚本产生污染,将其复制到queries目录下:

    cd /opt/software/tpch-kit/dbgen
    cp dists.dss queries/
    cp qgen queries/
    cd queries/
    
  11. 编写生成查询语句脚本genda.sh,内容如下:

    cd /opt/software/tpch-kit/dbgen/queries
    vim genda.sh
    

    添加如下内容:

    for i in {1..22}; do./qgen -d $i>$i_new.sql./qgen -d $i_new | sed 's/limit -1//' | sed 's/limit 100//' | sed 's/limit 10//' | sed 's/limit 20//' | sed 's/day (3)/day/' > queries.sql
    done
    
  12. 执行脚本genda.sh:

    cd /opt/software/tpch-kit/dbgen
    sh genda.sh
    
  13. 验证生成的查询语句:

    cd /opt/software/tpch-kit/dbgen/queries
    ls -l queries.sql
    

    结果如下:

    [omm@opengauss01 queries]$ ls -l queries.sql
    -rw-r--r-- 1 omm dbgrp  12K Aug 29 23:49 queries.sql
    

    感兴趣可以查看下queries.sql内容,看下生成了哪些SQL语句
    至此,已完成了查询语句的生成。

  14. 为了测试AP性能,以omm用户上传tpch_ap_data.sql(可点击下载)到/opt/software目录下,然后执行如下命令执行该sql文件:

    gsql -d tpch -p 15432 -r -f /opt/software/tpch_ap_data.sql > /opt/software/tpch_ap_data.sql
    

    执行完成后,整个tpch数据库中相关表如下:

    tpch=# \dList of relationsSchema |               Name                |   Type   | Owner |             Storage
    --------+-----------------------------------+----------+-------+----------------------------------public | address_dimension                 | table    | omm   | {orientation=row,compression=no}public | address_dimension_address_key_seq | sequence | omm   |public | customer                          | table    | omm   | {orientation=row,compression=no}public | date_dimension                    | table    | omm   | {orientation=row,compression=no}public | lineitem                          | table    | omm   | {orientation=row,compression=no}public | litemall_orders                   | table    | omm   | {orientation=row,compression=no}public | nation                            | table    | omm   | {orientation=row,compression=no}public | orders                            | table    | omm   | {orientation=row,compression=no}public | part                              | table    | omm   | {orientation=row,compression=no}public | partsupp                          | table    | omm   | {orientation=row,compression=no}public | region                            | table    | omm   | {orientation=row,compression=no}public | supplier                          | table    | omm   | {orientation=row,compression=no}public | user_dimension                    | table    | omm   | {orientation=row,compression=no}public | user_dimension_user_key_seq       | sequence | omm   |
    

三、使用DBMind索引推荐功能

  1. 第一种使用方式:
    • 以gsql登录到数据库中
      gsql -d tpch -p 15432 -r
      
    • 执行如下命令查看索引推荐
      select * from gs_index_advise('
      SELECT ad.province AS province, SUM(o.actual_price) AS GMVFROM litemall_orders o,address_dimension ad,date_dimension ddWHERE o.address_key = ad.address_keyAND o.add_date = dd.date_keyAND dd.year = 2020AND dd.month = 3GROUP BY ad.provinceORDER BY SUM(o.actual_price) DESC');
      
      结果如下:
       schema |       table       |        column        | indextype
      --------+-------------------+----------------------+-----------public | litemall_orders   | address_key,add_date |public | address_dimension |                      |public | date_dimension    | year                 |
      (3 rows)
      
  2. 第二种使用方式:
    • 登录到DBMind的管理界面中,输入相关SQL语句:

      select * from customer where c_acctbal > 6819.74 order by c_acctbal desc limit 10;
      

      在这里插入图片描述

    • 点击【Advise Index】按钮,正常情况下会看到如下内容:
      在这里插入图片描述

四、使用DBMind实现SQL优化功能

  1. 登录到DBMind的管理界面中,输入相关SQL语句:
    在这里插入图片描述

其他的有关DBMind的功能,大家感兴趣,可自行测试,希望对您有所帮助~~~~~

相关文章:

【基于openGauss5.0.0简单使用DBMind】

基于openGauss5.0.0简单使用DBMind 一、环境说明二、初始化tpch测试数据三、使用DBMind索引推荐功能四、使用DBMind实现SQL优化功能 一、环境说明 虚拟机:virtualbox操作系统:openEuler 20.03 TLS数据库:openGauss-5.0.0DBMind:d…...

[递归回溯]连接卡片最短路径

小游戏 题目描述 一天早上,你起床的时候想:“我编程序这么牛,为什么不能靠这个挣点银子呢?”因此你决定编写一个小游戏。 游戏在一个分割成w * h个长方格子的矩形板上进行。如图所示,每个长方格子上可以有一张游戏…...

初识人工智能,一文读懂强化学习的知识文集(5)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…...

视频封面提取:精准截图,如何从指定时长中提取某一帧图片

在视频制作和分享过程中,一个有吸引力的封面或截图往往能吸引更多的观众点击观看。有时候要在特定的时间段内从视频中提取一帧作为封面或截图。如果每个视频都手动提取的话就会耗费很长时间,那么如何智化能批量提取呢?现在一起来看下云炫AI智…...

Shopify 开源 WebAssembly 工具链 Ruvy

最近,Spotify 开源了Ruvy,一个 WebAssembly 工具链,能够将 Ruby 代码转换为 Wasm 模块。Ruvy 基于ruby.wasm, 用 Rust 实现,提升了性能并简化了 Wasm 模块的执行。 Ruvy 利用了ruby.wasm提供的 Ruby 解释器模块,并使用wasi-vfs (WASI 虚拟文件系统)将其与所有指定的 Rub…...

zxjy008- 项目集成Swagger

Swagger可以生成在线文档,还可以进行接口测试。 1、创建common模块(maven类型) 为了让所有的微服务子子模块都可以使用,可以在guli_parent父工程下面创建公共模块 1.1 在guli_parent父工程下面创建公共模块 配置: groupId:com…...

使用linux CentOS本地部署SQL Server数据库

🌈个人主页:聆风吟 🔥系列专栏:数据结构、Cpolar杂谈 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. 安装sql server二. 局域网测试连接三. 安装cpolar内网穿透四. 将sqlserver映射…...

理解基于 Hadoop 生态的大数据技术架构

转眼间,一年又悄然而逝,时光荏苒,岁月如梭。当回首这段光阴,不禁感叹时间的匆匆,仿佛只是一个眨眼的瞬间,一年的旅程已成为过去,而如今又到了画饼的时刻了 ! 基于 Hadoop 生态的大数…...

【Go】Go语言基础内容

变量声明: 变量声明:在Go中,变量必须先声明然后再使用。声明变量使用 var 关键字,后面跟着变量名和类型,如下所示: var age int这行代码声明了一个名为 age 的整数变量。 变量初始化:您可以在声…...

HP-UNIX 系统安全基线 安全加固操作

目录 账号管理、认证授权 账号 ELK-HP-UX-01-01-01 ELK -HP-UX-01-01-02 ELK -HP-UX-01-01-03 ​​​​​​​ ELK-HP-UX-01-01-04 ​​​​​​​ELK-HP-UX-01-01-05 ​​​​​​​口令 ELK-HP-UX-01-02-01 ​​​​​​​ ELK-HP-UX-01-02-02 ​​​​​​​ ELK-HP…...

第九天:信息打点-CDN绕过篇amp;漏洞回链amp;接口探针amp;全网扫描amp;反向邮件

信息打点-CDN绕过篇 cdn绕过文章:https://www.cnblogs.com/qiudabai/p/9763739.html 一、CDN-知识点 1、常见访问过程 1、没有CDN情况下传统访问:用户访问域名-解析服务器IP–>访问目标主机 2.普通CDN:用户访问域名–>CDN节点–>…...

【利用二手车数据进行可视化分析】

利用二手车数据进行可视化分析 查看原始数据去除重复数据需求分析1.统计全国总共有多少量二手车,用KPI图进行展示2.统计安徽总共有多少量二手车,用KPI图进行展示3.统计合肥总共有多少量二手车,用KPI图进行展示4.取最贵的10辆二手车信息&#…...

快速测试 3节点的redis sentinel集群宕机2个节点以后是否仍能正常使用

有同事问我,三个redis sentinel节点,宕机两个节点以后,是否还能够正常的通过redis sentinel正常访问redis的数据。我想了想,理论上是可以的,但是我没试过,今天有时间就测试了一下。搭建环境和测试代码的过程…...

echarts词云图echarts-wordcloud使用方法

1、echarts5.0以下的版本使用 echarts-wordcloud 1.0 的词云 1. 安装 wordCloud 1.0 依赖包npm install echarts-wordcloud12. man.js 注入import echarts-wordcloud 2、echarts5.0及以上的下载 echarts-wordcloud 2.0 版本 注意:npm install echarts-wordcloud …...

二叉树的OJ练习(二)

通过前序遍历数组构建二叉树 题目:通过前序遍历的数组(ABD##E#H##CF##G##)构建二叉树 TreeNode* TreeCreat(char* a,int* pi) {if(a[*pi] #){(*pi);return NULL; }TreeNode* root (TreeNode*)malloc(sizeof(TreeNode));if(root NULL){p…...

uni-app 微信小程序之自定义navigationBar顶部导航栏

文章目录 1. 实现效果2. App.vue3. pages.json 配置自定义4. 顶部导航栏 使用 微信小程序自定义 navigationBar 顶部导航栏,兼容适配所有机型 1. 实现效果 2. App.vue 在App.vue 中,设置获取的 StatusBar,CustomBar 高度(实现适配…...

前端入门:HTML初级指南,网页的简单实现!

代码部分&#xff1a; <!DOCTYPE html> <!-- 上方为DOCTYPE声明&#xff0c;指定文档类型为HTML --> <html lang"en"> <!-- html标签为整个页面的根元素 --> <head> <!-- title标签用于定义文档标题 --> <title>初始HT…...

低多边形3D建模石头材质纹理贴图

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…...

【华为OD题库-081】最长的元音子串长度-Java

题目 题目描述: 定义当一个字符串只有元音字母一(a,e,i,o,u,A,E,l,O,U)组成&#xff0c; 称为元音字符串&#xff0c;现给定一个字符串&#xff0c;请找出其中最长的元音字符串&#xff0c;并返回其长度&#xff0c;如果找不到请返回0&#xff0c; 字符串中任意一个连续字符组成…...

第9节:Vue3 指令

如何在UniApp中使用Vue3的指令&#xff1a; <template> <view> <!-- 使用指令 --> <text v-show"isVisible" click"toggleVisibility">点击隐藏/显示</text> <button v-on:click"incrementCount">点击…...

B028-JDBC基础

目录 什么是JDBCJDBC引入持久化JDBC规范 使用JDBC完成CRUDJDBC创建表JDBC CRUD和优化 DAO层的实现 什么是JDBC JDBC引入 Java代码操作数据库的唯一技术&#xff1a;-- JDBC ( java database connection ) 持久化 持久化(persistence)&#xff1a;把数据保存到可掉电式存储设…...

ngixn 准备

确认yum可用&#xff0c;确认防火墙&#xff0c;确认SELinux 一项安装 yum -y install gcc make automake pcre-devel zlib zlib-devel openssl openssl-devel参数&#xff1a; gcc&#xff1a;编译依赖gcc环境 pcre&#xff1a;PCRE(Perl Compatible Regular Expressions)是一…...

生活小记录

上个月项目总算上线了&#xff0c;节奏也慢慢调整正常。发现自己好久没有记录生活点滴了&#xff0c;正好写写。其实&#xff0c;最近这段日子发生的事情还是挺多的。 流感 媳妇11.24得流感&#xff0c;这件事情特别好笑&#xff0c;大晚上她和我妹妹想喝酒试试&#xff0c;结…...

Diary22-全网最全的CSS3.0讲解

CSS学习 1.认识CSS 1.1什么是CSS CSS&#xff1a;Cascading Style Sheet——层叠级联样式表 CSS&#xff1a;表现&#xff08;美化网页&#xff09; 字体&#xff1b;颜色&#xff1b;边距&#xff1b;高度&#xff1b;宽度&#xff1b;背景图片&#xff1b;网页定位&…...

LAMP和分离式LNMP部署

目录 一.什么是LAMP&#xff1f; 二.安装LAMP 先安装apache&#xff0c;httpd网页服务&#xff1a; 接着安装mysql&#xff1a; 安装php&#xff1a; 创建论坛&#xff1a; 三.安装分布式LNMP&#xff1a; 先安装nginx&#xff1a; 到另一台主机安装php&#xff1a; …...

基于Java房屋租赁管理系统

基于Java房屋租赁管理系统 功能需求 1、房源信息管理&#xff1a;系统需要能够记录和管理所有房源的详细信息&#xff0c;包括房屋地址、房屋面积、租金、付款方式、房屋类型等。管理员应该可以添加、编辑和删除房源信息。 2、租户信息管理&#xff1a;系统需要能够记录和管…...

windows安装protoc、protoc-gen-go、protoc-gen-go-grpc

文章目录 一、 protoc二、protoc-gen-go三、protoc-gen-go-grpc 一、 protoc 1&#xff0c;下载&#xff1a;https://github.com/google/protobuf/releases 下载对应的protoc&#xff0c;注意选择windows 2&#xff0c;下好之后解压就行&#xff0c;然后把bin目录加入到环境…...

macOS 获取文件夹大小

macOS 获取文件夹大小 获取文件夹大小的扩展如下&#xff1a; extension URL {var fileSize: Int? { // in bytesdo {let val try self.resourceValues(forKeys: [.totalFileAllocatedSizeKey, .fileAllocatedSizeKey])return val.totalFileAllocatedSize ?? val.fileAll…...

Ultimate VFX

Ultimate VFX 构建套件:...

一个通用游戏后台的设计模式实践总结

搞业务开发的时候,发现有一些代码的开发会让人感觉非常简便舒服,有一些代码的开发却有时候会让人感觉心智负担比较大。 逐步总结的过程中,发现让开发人员写起来感觉舒服的代码,大概率是因为当前模块与其他模块代码耦合度低,开发人员无需花费过多的精力去关注其他模块的实现…...