首页 > 数据库 >openGauss SQLdiag-慢SQL发现使用指导

openGauss SQLdiag-慢SQL发现使用指导

时间:2024-04-17 20:33:05浏览次数:26  
标签:sqldiag SQLdiag -- train SQL path openGauss model

使用指导

前提条件

  • 需要保证用户提供训练数据。
  • 如果用户通过提供的工具收集训练数据,则需要启用WDR功能,涉及到的参数为track_stmt_stat_level和log_min_duration_statement,具体情况见下面小结。
  • 为保证预测准确率,用户提供的历史语句日志应尽可能全面并具有代表性。

SQL流水采集方法

本工具需要用户提前准备数据,训练数据格式如下,每个样本通过换行符分隔:

SQL,EXECUTION_TIME

预测数据格式如下:

SQL

其中SQL表示SQL语句的文本,EXECUTION_TIME表示SQL语句的执行时间,样例数据见sample_data中的train.csv和predict.csv。

用户可以按照要求格式自己收集训练数据,工具也提供了脚本自动采集(load_sql_from_rd),该脚本基于WDR报告获取SQL信息,涉及到的参数有log_min_duration_statement和track_stmt_stat_level:

  • 其中log_min_duration_statement表示慢SQL阈值,如果为0则全量收集,时间单位为毫秒;
  • track_stmt_stat_level表示信息捕获的级别,建议设置为track_stmt_stat_level='L0,L0'

参数开启后,可能占用一定的系统资源,但一般不大。持续的高并发场景可能产生5%以内的损耗,数据库并发较低的场景,性能损耗可忽略。下述脚本存在于sqldiag根目录($GAUSSHOME/bin/components/sqldiag)中。

使用脚本获取训练集方式:
load_sql_from_wdr.py [-h] --port PORT --start_time START_TIME
                            --finish_time FINISH_TIME [--save_path SAVE_PATH]
例如:
    python load_sql_from_wdr.py --start_time "2021-04-25 00:00:00" --finish_time "2021-04-26 14:00:00" --port 5432  --save_path ./data.csv

操作步骤

  1. 提供历史日志以供模型训练

  2. 进行训练与预测操作。

    基于模板法的训练与预测:
       gs_dbmind component sqldiag [train, predict] -f FILE --model template --model-path template_model_path 
    基于DNN的训练与预测:
       gs_dbmind component sqldiag [train, predict] -f FILE --model dnn --model-path dnn_model_path
    

使用方法示例

使用提供的测试数据进行模板化训练:

gs_dbmind component sqldiag train -f ./sample_data/train.csv --model template --model-path ./template 

使用提供的测试数据进行模板化预测:

gs_dbmind component sqldiag predict -f ./sample_data/predict.csv --model template --model-path ./template --predicted-file ./result/t_result

使用提供的测试数据进行模板化模型更新:

gs_dbmind component sqldiag finetune -f ./sample_data/train.csv --model template --model-path ./template 

使用提供的测试数据进行DNN训练:

gs_dbmind component sqldiag train -f ./sample_data/train.csv --model dnn --model-path ./dnn_model 

使用提供的测试数据进行DNN预测:

gs_dbmind component sqldiag predict -f ./sample_data/predict.csv --model dnn --model-path ./dnn_model --predicted-file 

使用提供的测试数据进行DNN模型更新:

gs_dbmind component sqldiag finetune -f ./sample_data/train.csv --model dnn --model-path ./dnn_model

标签:sqldiag,SQLdiag,--,train,SQL,path,openGauss,model
From: https://www.cnblogs.com/renxyz/p/18141718

相关文章

  • MySQL服务无法启动 服务没有报告任何错误
    安装MYSQL后启动服务出现错误在启动MySQL服务时出现该报错解决方法:将原本在MySQL根目录下的my.ini文件移动到bin目录下(my.ini文件参考:这里)  删除根目录下的data目录  管理员方式运行命令行并移动到mysql中的bin目录下(cd+目录命令)  移除MySQL服务执......
  • 快速测试连接SQLServer数据库的方法
    微软的SQLServer数据库应该是中小企业中使用最多的数据库,一般个人测试环境也都是用的它。下面介绍一种快速测试SQLServer数据库连接性的方法:1.新建一下记事本,将后缀名修改为udl;2.选中当前文件,右键打开文件属性,点选“提供程序”,选中MicrosoftOLEDBProviderforSQLServ......
  • PostgreSql: ERROR: value too long for type character varying(1) 定位字段方法
    报错原因设置的数据库字段长度为1,但实际的值超过规定字段,导致报错。解决方案首先,需要定位字段是哪个字段出现的报错,但可惜的是,并没有报出具体是哪个字段在报错,所以只能通过检查Schema,查看哪些字段是长度为1的,然后再进行值的比较,才能锁定位置。ERROR:valuetoolongfortype......
  • 【SQL】IN和EXISTS谁的效率更高
    【SQL】IN和EXISTS谁的效率更高总结:索引设置好的情况下子查询数据量大的,用exists子查询数据量小的,用in原文连接:https://zhuanlan.zhihu.com/p/400553948IN和EXISTS被频繁使用在SQL中,虽然作用是一样的,但是在使用效率谁更高这点上众说纷纭。下面我们就通过一组测试来看,在不同......
  • mysql 数据库性能分析工具简介
    分析sql性能整体步骤观察服务器状态(系统性能),看是否存在周期性波动。如果存在波动,则可以增加缓存或修改缓存失效策略。如果没有周期性波动,而是不规则的延迟或卡顿,又或者是添加了缓存或修改了缓存失效策略之后问题仍然未解决,我们就可以开启慢查询功能,通过慢查询日志找到执行......
  • 解决C# 连接MYSQL数据库查询数据时 Unable to convert MySQL date/time value to Syst
    C#读取MySql时,如果存在字段类型为date/datetime时的可能会出现以下问题“UnabletoconvertMySQLdate/timevaluetoSystem.DateTime”原因:可能是该字段(date/datetime)的值默认缺省值为:0000-00-00/0000-00-0000:00:00,这样的数据读出来转换成System.DateTime时就会有问题;解......
  • mysql中replace into用法
    前言replaceinto跟insertinto功能类似,不同点在于:replaceinto首先尝试插入数据到表中如果发现表中已经有相同的数据(根据主键或者唯一索引判断)则先删除原来的数据,然后插入新的。否则,直接插入新数据。注意:插入数据的表必须有主键或者是唯一索引!否则的话,replaceinto会......
  • docker部署mysql
    docker部署mysqlmkdir-p/data/docker/mysql5.7/{data,conf.d}mkdir-p/data/docker/mysql8/{data,conf.d}version:'3'services:mysql_5.7:image:mysql:5.7.40restart:alwaysports:-13306:3306environment:-MYSQL_ROOT_PAS......
  • SQL语法错误-java.sql.SQLSyntaxErrorException: You have an error in your SQL synt
    频繁爆出这样的错误:java.sql.SQLSyntaxErrorException:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''atline1查阅了许多资料后,我怀疑报错可能与字段名不小心用了关键字有关......
  • 第十六章——处理锁、阻塞和死锁(3)——使用SQLServer Profiler侦测死锁
    前言:作为DBA,可能经常会遇到有同事或者客户反映经常发生死锁,影响了系统的使用。此时,你需要尽快侦测和处理这类问题。死锁是当两个或者以上的事务互相阻塞引起的。在这种情况下两个事务会无限期地等待对方释放资源以便操作。下面是死锁的示意图: 本文将使用SQLServerProfi......