达梦数据库性能分析

news/2024/5/19 16:10:36/文章来源:https://blog.csdn.net/BShu666/article/details/131542997

目录

数据库常用性能分析方法... 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.luyixian.cn/news_show_325866.aspx

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

相关文章

【算法与数据结构】28、LeetCode实现strStr函数

文章目录 一、题目二、暴力穷解法三、KMP算法四、Sunday算法五、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、暴力穷解法 思路分析:首先判断字符串是否合法,然后利用for循环&#xff…

Docker发布JAVA vhr微人事后端(确保打包没问题再发布)

本文代码来源于(感谢作者) GitHub - lenve/vhr: 微人事是一个前后端分离的人力资源管理系统,项目采用SpringBootVue开发。1.创建DockerFile文件 创建mail文件夹 创建web文件夹 以下为mail dockerfile FROM java:8 Add *.jar /app/app.ja…

【深度学习】AIGC ,ControlNet 论文,原理,训练,部署,实战,教程

论文:https://arxiv.53yu.com/pdf/2302.05543 代码:https://github.com/lllyasviel/ControlNet 得分几个博客完成这个事情的记录了,此篇是第一篇,摘录了一些论文内容。ControlNet 的原理极为朴实无华(对每个block添加…

vue3+ts+elementui制作精美的课表

使用vue3tselementui 如何制作出精美的课表呢&#xff0c; 最终效果图如下: 直接上代码&#xff1a; 这里直接把封装成一个课表的组件&#xff1a; <script setup lang"ts"> import { ref, watch, onMounted } from "vue"; import IconText from …

Android Studio实现内容丰富的安卓志愿者平台

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号122 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.…

网页的动静分离设置

我们都知道nginx处理静态网页是强项,而tomcat处理动态网页是强项.我们可以发挥他们共同的优点.nginx处理静态页面而tomcat处理动态页面 进入nginx配置文件改 总结 1.改配置文件最好复制一份 2.做一步验证一步 才知道哪里出错了 3.出错了别着急先看页面在浏览器能不能打开 不…

nRF52832蓝牙概述

基本概念 RSSI&#xff08;Received Signal Strength Indicator&#xff09;是接收信号的强度指示。 接收包RSSI是指无线模块发送信息后&#xff0c;接收端的无线模块接收到数据后&#xff0c;当前接收数据的信号强度的寄存器值&#xff0c;也就是接收模块获取到发送模块当前发…

【Verilog HDL】FPGA-testbench基础知识

&#x1f389;欢迎来到FPGA专栏~testbench基础知识 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能…

20230704测试STC32G实验箱9.6(STC32G12K128)开发板的虚拟串口(C语言深入了解)

20230704测试STC32G实验箱9.6&#xff08;STC32G12K128&#xff09;开发板的虚拟串口&#xff08;C语言深入了解&#xff09; 06第五集&#xff1a;C语言运算符和进制数入门上.mp4 07第五集&#xff1a;C语言运算符和进制数入门下.mp4 2023/7/4 19:00 下次 在【冲哥】录视频的时…

PSI算法极简概述

什么是隐私求交PSI 隐私求交是多方安全计算中的密码学技术&#xff0c;它允许数据持有方通过比较加密集合计算得到交集&#xff0c;且任何一方都不会获得其他信息。PSI还存在一种变体&#xff0c;即CS场景。客户端可以获取其与服务器的交集但是服务器无法学习到该集合。如果在…

netty学习(2):多个客户端与服务器通信

1. 基于前面一节netty学习&#xff08;1&#xff09;:1个客户端与服务器通信 只需要把服务器的handler改造一下即可&#xff0c;通过ChannelGroup 找到所有的客户端channel&#xff0c;发送消息即可。 package server;import io.netty.channel.*; import io.netty.channel.gr…

Android Studio实现内容丰富的安卓汽车租赁平台

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号101 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.查…

登录校验-Filter/过滤器

过滤器 概念&#xff1a;Filter过滤器&#xff0c;是javaweb的三大组件&#xff08;servlet,Filter,Listener&#xff09;之一 作用&#xff1a;可以把对资源的请求拦截下来&#xff0c;从而实现一些特殊的功能 过滤器的常见操作&#xff1a;登录校验&#xff0c;统一编码&…

Word公式大括号左对齐

1、大括号公式如下&#xff1a; 2、依次选中每一行&#xff0c;然后在开头输入一个&&#xff0c;然后回车&#xff1a; 3、当最后一行输入完立马可以发现左对齐了&#xff1a; The higher I got, the more amazed I was by the view.

win下实现Linux的tab自动补全

声明 &#xff1a;如果不是确定的话 注册表这个东西不建议更改 如果更改的话建议先备份系统 以防意外 1.找到注册表编辑器 2. 展开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor 3.找到Completion Char 双击 把橙色的数值改成9 4.重新打开cmd 就可以了 参考文章…

github上传超过100M的大文件

当上传的工程中有超过100M的文件时&#xff0c;直接上传github会产生如下报错&#xff1a; remote: error: File retinaface-R50/R50-0000.params is 112.54 MB; this exceeds GitHubs file size limit of 100.00 MB! [remote rejected] master -> master (pre-receive ho…

vue打包到生产环境

1.进入到项目根目录执行 npm run build此时会自动打包在dist目录下 2.安装服务 npm install -g serve3.启动 serve dist以上是生产环境打包的过程。 npm run dev 是开发环境, npm run build 是生产环境

微软发布「升级版」多模态大模型 Kosmos-2!新增局部理解能力,解锁实体级交互

夕小瑶科技说 原创 作者 | 小戏、ZenMoore 三个多月前&#xff0c;微软亚洲研究院在论文《Language Is Not All You Need: Aligning Perception with Language Models》中发布了一个强大的多模态大模型 Kosmos-1&#xff0c;成功将感知与语言对齐&#xff0c;在 ChatGPT 的多…

银河麒麟服务器v10 sp1 安装mysql

可以先用 dpkg --list|grep mysql 查看自己的mysql有哪些依赖&#xff1a; 上图已经是安装后的截图&#xff0c;然后再卸载 sudo apt-get autoremove --purge mysql-common 本文在没有安装之前&#xff0c;只有mysql-common包&#xff0c;再用dpkg --list|grep mysql查看&…

HTML5开发工程师岗位的职责说明文(合集)

HTML5开发工程师岗位的职责说明文1 职责&#xff1a; 1、根据产品设计文档和视觉文件&#xff0c;利用HTML5&#xff0c;Javascript相关技术实现web端的界面效果、交互和功能; 2、基于HTML5.0的标准进行页面制作&#xff0c;编写可复用的用户界面组件; 3、负责分析和解决前端…