达梦数据库性能分析

目录

数据库常用性能分析方法... 3

一、服务器监控... 3

1、cpu监控... 3

2、内存... 3

3、swap内存... 3

4、磁盘... 4

5、网络监测... 4

二、数据库实例监控... 6

1、v$sessions. 6

2、慢sql、阻塞、锁... 7

3、内存监控... 10

4、monitor监控工具使用及开启sql日志跟踪... 10

5、AWR报告生成及使用... 13

数据库常用性能分析方法

一、服务器监控

1、cpu监控

top

2、内存

top

free -m

3、swap内存

生产系统尽量调低或者不使用swap内存,尽量使用系统内存提高性能

cat /proc/sys/vm/swappiness

vim /etc/sysctl.conf

vm.swappiness=10

sysctl -p

物理内存使用到90%左右开始使用swap内存

4、磁盘

df -h

iostat -xm

iostat -d -x -k 1 3

dd if=/dev/zero of=test bs=8k count=64k oflag=dsync

vmstat

vmstat 1 3

5、网络监测

nmon

dem

ethtool ens33

使用 sar 命令测试网络带宽。

sar 命令使用 -n 选项可以汇报网络相关信息

sar -n DEV 1 3

nmon需要安装

安装方法:

上传安装包

wget https://nchc.dl.sourceforge.net/project/nmon/nmon16h_helpsystems_v2.tar.gz

解压安装包

mkdir nmon

mv nmon16h_helpsystems_v2.tar.gz nmon

tar -zxvf nmon16h_helpsystems_v2.tar.gz

读写赋权

只赋予对应linux系统版本(本次要使用的)授权即可

chmod 777 nmon_x86_64_centos7

重命名

mv nmon_x86_64_centos7 nmon

启动nmon

./nmon

需查看直接按键即可

 

nmon在任何地方都能运行

mv nmon /usr/bin/nmon

命令参数:

c : 显示cpu利用率数据

m:显示内存数据

n:显示网络信息

d:显示磁盘信息

t:系统进程信息

h:查看帮助信息

q:退出Nmon界面

二、数据库实例监控

1、v$sessions

select count(*) from v$sessions;

操作系统命令查询会话数

netstat -apn|grep dmserver|grep ESTABLISHED|wc -l

2、慢sql、阻塞、锁

详见阻塞和锁

v$session

v$lock

v$trxwait

释放会话

sp_close_session(sess_id);

1)查询阻塞锁

select * from v$lock where blocked=1;

2)查询会话

select * from v$sessions;

3)查询事务及事务等待

select * from v$trx;

select * from v$trxwait;

综合查询阻塞(死锁)

select sysdate,datediff(minute,s.last_send_time,sysdate) ZSDate_Mi,

'阻塞信息',s.sess_id SId,t.wait_for_id ZSTId,s.sql_text ZSSql,s.user_name ZSUser,s.clnt_host,s.appname,s.clnt_ip,

'被阻塞信息',s2.sess_id SId,t.id BZSId,s2.sql_text BZSSql,s2.user_name BZSUser,s2.clnt_host,s2.appname,s2.clnt_ip

from v$trxwait t,v$sessions s,v$sessions s2 where t.wait_for_id=s.trx_id and t.id=s2.trx_id;

4)死锁查询

select * from v$deadlock_history;

5)查询完整的死锁事务

select d.sess_id,d.trx_id,wm_concat(s.top_sql_text),happen_time,start_time,time_used

from v$sql_history s,v$deadlock_history d where s.trx_id=d.trx_id and d.sess_id=s.sess_id and d.trx_id=27694;

这里最好指定事务id,否则之前执行的事务都拼接在一起了。

6)死锁和阻塞记录信息(仅记录发生次数和耗时等)可以直接查询:v$system_event;

select * from v$system_event order by TIME_WAITED desc;

7)慢sql查询

select top 10 * from v$system_long_exec_sqls order by exec_time desc;

查询出当前会话活动的慢sql

select datediff(ss,last_recv_time,sysdate),sess_id,sql_text,SF_GET_SESSION_SQL(SESS_ID) fullsql,clnt_ip,thrd_id

from v$sessions

where state='ACTIVE'

order by 1 desc;

查询已执行超过1秒的活动SQL

SELECT* FROM (

SELECT SESS_ID,SQL_TEXT,DATEDIFF(SS,LAST_RECV_TIME,SYSDATE) Y_EXETIME,

SF_GET_SESSION_SQL(SESS_ID) FULLSQL,CLNT_IP

FROM V$SESSIONS WHERE STATE='ACTIVE')

WHERE Y_EXETIME>=1;

查询最近1000条执行时间较长的SQL语句

SELECT * FROM V$LONG_EXEC_SQLS;

查询服务器启动以来执行时间最长的20条SQL语句

SELECT * FROM V$SYSTEM_LONG_EXEC_SQLS;

3、内存监控

v$bufferpool

v$mem_pool

1)查看数据库实际使用内存

select sum(mem)/1024.0 as mem_used_G from(

select sum(total_size)/1024/1024.0 mem from v$mem_pool

union all

select sum(n_pages-free)*page/1024/1024.0 from v$bufferpool);

2)查看内存占用较大的sql

v$sql_stat

v$sql_stat_history

需要开启ENABLE_MONITOR参数,默认是开启的

select * from v$sql_stat order by max_mem_used;

4、monitor监控工具使用及开启sql日志跟踪

生成sql日志文件,没开启sql相关视图中也会有相应的sql记录,貌似只是没有日志输出。

select sf_get_para_value(1,'SVR_LOG');

 

未开启sql日志跟踪,监控工具monitor依然可以监控到sql相应的信息。

使用monitor实时监测sql执行时间

 

SQL语句统计选择显示执行最长时间的SQL还是执行频率最高的SQL

 

选择具体sql查看执行计划

 

SQL日志的开启和关闭

开启:SP_SET_PARA_VALUE(1,'SVR_LOG',1);

关闭:SP_SET_PARA_VALUE(1,'SVR_LOG',0);

只有dm.ini文件中参数SVR_LOG=1即开启sql跟踪时,sqllog.ini文件才有用。

sqllog.ini文件修改后只需要调用sp_refresh_svr_log_config()参数就会生效。

ASYNC_FLUSH=1 打开 SQL 日志异步刷盘提高系统性能。

 

如需进行更为系统全面的分析,可使用 DMLOG工具 对SQL进行分类汇总或直接查看awr报告

5、AWR报告生成及使用

1)启用AWR包和系统包

call sp_init_awr_sys(1);

call sp_create_system_packages(1);

2)查询AWR快照:不创建系统包这里查不到快照

SELECT * FROM SYS.WRM$_SNAPSHOT;

3)设置快照间隔,貌似若不设置快照间隔,手动执行快照后 SYS.WRM$_SNAPSHOT 视图中没有记录。单位分钟。

CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(60);

4)手动执行生成快照

CALL DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();

5)查询AWR快照

SELECT * FROM SYS.WRM$_SNAPSHOT;

6)根据两个快照对比生成AWR报告

SYS.AWR_REPORT_HTML(快照ID1,快照ID2,'AWR报告存放路径','AWR报告名称.HTLM'):

SYS.AWR_REPORT_HTML(5,6,'/dm/data/awr','AWR2.HTML');

下载到本地后查看慢sql等分析性能。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/15914.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab画两个三维曲面在一个画布

clc;clear;close all; data xlsread(Brent等厚度.xlsx); x data(:,1) xmax max(x); xmin min(x); y data(:,2) ymax max(y); ymin min(y); z data(:,3); z1 data(:,4); N 45; …

AI绘画:StableDiffusion炼丹Lora攻略-实战萌宠图片生成

Lora攻略-实战萌宠图片生成 写在前面的话一:准备二、Lora作用1.AI模特2.炼衣服Lora3.改变画风/画面背景Lora模型究竟是什么? 三、如何炼制自己的Lora模型?四、炼丹前的准备(**下载整合包**)五、选择合适的大模型六、高…

win go vscode安装配置-智能提示

win go vscode安装配置-智能提示 0.前提 go1.17.1之后不允许go get安装库 vscode是免费的go开发工具,想要代码智能提示 go推荐go mod和go install,不推荐GOPATH了 1.安装步骤 [1] vscode安装-百度一堆 [2] go安装-从官网 https://go.dev/dl/ 下载win 6…

SpringBoot——在测试阶段验证Web表现层的接口是否正常

验证请求状态 之前我们实现了在测试环境中开启Web环境,并且在测试阶段发送虚拟请求,并看到了返回的结果,这次我们不止要看他的请求结果,还要看他的请求过程和请求状态 匹配请求状态 首先就是查看请求的状态。主要介绍的就是一个…

使用Vue脚手架

(193条消息) 第 3 章 使用 Vue 脚手架_qq_40832034的博客-CSDN博客 初始化脚手架 说明 1.Vue脚手架是Vue官方提供的标准化开发工具(开发平台) 2.最新的版本是4.x 3.文档Vue CLI脚手架(命令行接口) 具体步骤 1.如果下载缓慢…

短视频抖音seo矩阵系统源码:技术开发与实践(三)

一、 技术开发文档说明 1. 系统架构 短视频抖音seo矩阵源码部署功能架构包含:多模式视频剪辑,视频批量处理、文字转语音、视频批量发布、多平台账号管理、 智能在线客服、粉丝画像及数据统计分析、抖音seo排名优化采集等。 2. 抖音seo排名系统模块组成…

三张表学会MySQL的单表操作!

表单一信息 1、查询表中所有学生的信息 mysql> select * from student; 2、 查询表中所有学生的姓名和英语成绩 mysql> select name,english from student; 3、过滤表中的重复数据 mysql> select DISTINCT * from student; 4、统计每个学生的总分 mysql> sele…

[CVPR‘23] PanoHead: Geometry-Aware 3D Full-Head Synthesis in 360 deg

论文|项目 总结: 任务:3D human head synthesis现有问题:GANs无法在「in-the-wild」「single-view」的图片情况下,生成360度人像解决方案:1)提出了two-stage self-adaptive image alignment&am…

《Spring系列》第18章 监听器Listener

前言 陆续阅读了Spring Boot源码中,有不少地方都用到了监听器。每次看到监听器的代码都一头雾水,不懂其中的设计理念,这次决定肝一篇监听器的博文。 一、监听器 1.概述 何为监听器?就是用来监听程序执行的。监听器可以做什么事…

从单体到SpringBoot/SpringCloud微服务架构无感升级的最佳实践

目录导读 从单体到SpringBoot/SpringCloud微服务架构无感升级的最佳实践1. 业务背景2. 当前问题3. 升级方案3.1 架构设计4. 详细设计4.1 迁移阻碍4.2 解决思路 5. 实现过程5.1 认证兼容改造5.2 抽象业务流程5.2.1 抽象业务的思路5.2.2 抽象业务的抽象编码5.2.3 抽象业务的具体实…

华为VRP系统基础

系列文章目录 华为数通学习(1) 目录 一,什么是VRP? 二,VRP的发展 三,VRP的文件系统 3.1,系统文件:.cc结尾 ​编辑 3.2,配置文件:.cfg,.zip,.dat结尾 3.…

Redis 删除 key用 del 和 unlink 有啥区别?

问题 del 和 unlink 有啥区别啊?为什么String类型删除不会做异步删除? 彬彬回答 DEL 和 UNLINK 都是同步的释放 key 对象,区别是怎么释放后面的 value 对象 DEL 每次都是同步释放 value 部分,如果 value 很大,例如一…