达梦数据库出现卡慢简单分析点

1.检查是否有锁表

        查询锁表:select sess_id,sql_text from v$sessions sess,v$lock lck where         sess.trx_id=lck.trx_id and lck.blocked=1; --查询僵死会话

        解锁:根据会话ID,停止会话

        sp_close_session(sess_id);

 2.根据v$sessions,V$LONG_EXEC_SQLS,确认sql是否需要优化

        select * from v$sessions;--根据情况,可关闭执行卡死的会话。

查询系统访问用户是否过多:select count(1) from (select clnt_ip from v$sessions where create_time>'2021-07-20' group by clnt_ip)

会话数调整:达梦数据库修改最大连接数_江上一小白的博客-CSDN博客_达梦最大连接数

3.根据v$connect 确认连接数是否过高

 select * from V$CONNECT where STATUS$='ACTIVE';--查询正在使用的连接

select ip_addr,count(1) from V$CONNECT group by ip_addr;--每个主机开启的连接数

select b.name,a.sql_text,a.clnt_ip from v$sessions a,V$CONNECT b where a.sess_id=b.saddr order by b.name, b.ip_addr;--每个链接对应的会话

4.根据DM性能监视工具-性能监视-资源监控-sql硬解析频率是否过高,运行参数配置是否合理

       1 sql硬解析引起的并发数限制,可查询出访问次数较高的几个功能界面和执行率较

        高的硬解析语句,优化功能的sql执行方式。 

        如:select * from test where id='123'; 改成 select * from test  where id=? 方式执行。

或select para_value from V$DM_INI  where para_name='USE_PLN_POOL';

 如果已经开启sql日志功能( V$SQL_HISTORY),可查询出调用次数最多的sql,进行针对性优化:

                select * from ( select regexp_replace(top_sql_text, '[''][[:print:]]*['']', '') sql1, count(1) cc                 from V$SQL_HISTORY group by regexp_replace(top_sql_text, '[''][[:print:]]*['']', '') )                 order by cc desc--根据sql的调用次数降序排列

       

 2  运行参数配置不合理,可修改配置

       

        如查询:select  * from V$DM_INI  where para_name='HJ_BUF_GLOBAL_SIZE';
        调整:alter system set 'HJ_BUF_GLOBAL_SIZE' =5000  both;

        运行参数主要调整:

                内存和会话数2方面,其中内存调整包括:内存池,缓冲区( 包括 SQL 缓冲池),排序区,哈希区4点。

运行内存配置可参考:达梦内存调整及修改方法_ITPUB博客

达梦数据库:性能参数优化篇 - 百度文库

5.检查系统资源

       cup使用率、运行内存使用率,磁盘使用率,IO使用是否过高,是否使用的机械硬盘有坏道等,影响数据库运行。命令如: iftop(流量监控);top (Linux整体性能监控);iostat (IO监控)。

常用资源监控命令:Linux资源监控命令集合 - 百度文库

        系统资源不足可升级硬件或部署达梦读写分离的集群模式,分摊压力。

架构图参见:达梦数据库监控

注:DM7版本事务控制期间insert,delete ,update过程中,引起的select卡慢,可升级到DM8版本解决。

6.检查表数据量是否存储的比较多

        表数据过多引起的sql卡慢,可对存储数据量过多的表 分区 尝试解决,

        对数据量巨多的可分表+多级分区联合使用解决查询卡慢的问题。

        如:test表数据过多,根据登录账号的usernameid创建hash分区 (DM8_创建分区脚本)

                CREATE TABLE "TEST_1"
                (
                "ID" VARCHAR2(32) NOT NULL,
                "USERNAMEID" VARCHAR2(32),
                "COLNAME1" VARCHAR2(199),
                "COLNAME2" VARCHAR2(1) ) partition by hash (USERNAMEID) partitions 16   ;

                alter table TEST rename to TEST_BAK;
                alter table TEST_1 rename to TEST;
                INSERT INTO TEST SELECT * FROM TEST_BAK;commit;

        CREATE  INDEX "TEST_USERNAMEID_COLNNAME1" ON TEST("USERNAMEID" ASC,"COLNAME1" ASC) GLOBAL   ;--分区索引

alter table TEST enable row movement;--允许分区字段更新

7.查找出耗时的sql进行优化

1.通过试图查询历史执行的sql

select * from V$SQL_HISTORY where time_used>3000000 order by  start_time desc;--查询出执行时间超过3s的sql;

select * from v$dm_ini where para_name='ENABLE_MONITOR';---查看是否开启
  call sp_set_para_value(1,'ENABLE_MONITOR',1);--设置开启

2 若是sql_history未开启,可通过sql日志文件分析,历史执行的sql运行的情况

        如:windows 系统查询耗时在10s以上的sql语句.

        使用notepad++文本编辑器,打开达梦sql日志文件,ctrl+h打开搜索框输入正则查询

        条件点击全部标记,可将耗时在10s以上的所有sql查询出来并标记;

        点击搜索-书签->复制书签行,可以将标记的所有耗时在10s以上的sql拷贝出来。

 

 linux 系统:查询耗时在10s以上的sql语句.

grep -n '[0-9]\{5,10\}[(][m][s][)]' /mnt/e/dmdbms/log/dmsql_DMSERVER_20220303_171739.log

        输入以上命令可查询出耗时在10s以上的sql,

        /mnt/e/dmdbms/log/dmsql_DMSERVER_20220303_171739.log :达梦sql日志所在路径。

        '[0-9]\{5,10\}[(][m][s][)]'   :正则查询条件

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

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

相关文章

SEL selector (二)

SEL消息机制工作原理是什么 引用下面文章: 我们在之前有提到,一个类就像一个 C 结构.NSObject 声明了一个成员变量: isa. 由于 NSObject 是所有类的根类,所以所有的对象都会有一个 isa 的成员变量[公共继承].而该 isa 变量指向该对象的类(图3.15)[类在Objective-C中…

mobile cpu上禁用alpha test的相关总结

因为,每家芯片的特性不同,根据向framebuffer写法的不同,分为tile-based的mobile cpu,如ImgTec PowerVR,ARM Mali,一部分老版本Qualcomm Adreno。还有标准的direct(immediate)的mobil…

达梦定时迁移数据

1. 生成迁移源代码 1.1 启动DM迁移工具(bin/dts.exe) 1.2 右击迁移管理空白处 -> 新建工程 1.3 展开工程 -> 右击迁移,新建迁移 -> 输入迁移名称,确认 1.4 右击迁移名称,打开 -> 输入源数据库连接信息&…

JSP教程–最终指南

编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容。 JSP技术提供了Java Servlet技术的所有动态功能,但提供了一种更自然的方法来创建静态内容。 JSP技术的主要功能包括用于开发JSP页面的语言&…

tongweb6数据源使用中时常报空异常处理方式

1.在tongweb控制台 -> jdbc配置中设置数据源参数 1.1 勾选空闲超时,时间默认 1.2 勾选泄露超时时间 ,时间为半天(14400) 1.3 勾选连接有效性检查、创建连接验证、获取连接验证、归还连接验证 图中设置泄露超时时间为900…

eclipse远程tomcat javaweb debug样例(windows)

1.tomcat配置可被远程debug端口参数 catalina.bat 中添加 set CATALINA_OPTS-Xdebug -agentlib:jdwptransportdt_socket,servery,suspendn,address8000 导出项目war包到tomcat/webapps/目录下 切换到tomcat/bin目录下 双击startup.bat启动运行项目 2.eclipse中启动远程debug…

ASP.NET MVC的ContentResult

ASP.NET MVC的ContentResult返回简单的纯文本内容,可通过ContentType属性指定应答文档类型,通过ContentEncoding属性指定应答文档的字符编码。一个例子来演习,自定义一个RwResult,它继承ContentResult,为视图象ASP.NET…

windows搜索指定目录下包含某个字符串的文件

1.打开cmd窗口 :winr 快捷键-> 输入cmd 回车 2.切换到被搜索的文件夹(E:\shgwy文档\日常\更新\20220808)下 如输入: cd E:\shgwy文档\日常\更新\20220808 e: 3.输入搜索命令 c:\Windows\System32\findstr.exe /s /i "wa…

IIS7日志文件位置

准备统计下页面访问量 查找IIS日志,发现在以前IIS6日志的位置,竟然木有找到日志... 查看下IIS设置,发现IIS7和6的默认日志位置不一样额... IIS 6 Log files location IIS 6中日志文件的位置 %windir%\System32\LogFiles IIS 7 Log files location IIS的日…

jwt重放攻击_4个点搞懂JWT、JWS、JWE

1.JWT是何物,有哪些常用的场景JWT(json web token)是设计一种简洁,安全,无状态的token的实现规范rfc7519,通常用于网络请求方和网络接收方之间的网络请求认证。jwt的常用场景1.1: restful api接口的无状态认证, 在传统的web应用中…

Verification Mind Games---how to think like a verifier像验证工程师一样思考

1. 有效的验证需要验证工程师使用不同于设计者的思维方式思考问题。具体来说,验证更加关心在严格遵循协议的基础上发现设计里面的bug,搜索corner cases,对设计的不一致要保持零容忍的态度。mindset:一套人们应该持有的确定的态度&…

discuz安装_手动搭建 Discuz! 论坛

一、搭建LAMP环境安装软件(Apache、MariaDB、PHP)yum install httpd php php-fpm php-mysql mariadb mariadb-server -y2.启动服务systemctl start httpdsystemctl start mariadbsystemctl start php-fpm3.安装后首次启动mariadb设置mysql_secure_installation4.登录 MariaDB&a…

蓝桥杯 1223 第 2 场 小白入门赛

蓝桥小课堂-平方和 模拟 1 2 2 2 3 2 ⋯ n 2 n ⋅ ( n 1 ) ⋅ ( 2 n 1 ) 6 1^22^23^2\cdotsn^2\dfrac{n\;\cdot\;(n 1)\;\cdot\;(2n1)}{6} 122232⋯n26n⋅(n1)⋅(2n1)​。 write(n * (n 1) * (n * 2 1) / 6);房顶漏水啦 m a x ( 最大的行 − 最小的行 , 最大的列 −…

jar包是什么意思_面试难度五颗星:JVM有Full GC,为什么还会 OutOfMemoryError?

点击上方蓝色“后端面试那些事儿”,选择“设为星标”学最好的别人,做最好的我们来源:R 大zhihu.com/question/38511221问题:R大回复平时有逛知乎的习惯,一般对JVM相关话题比较感兴趣。偶然看到这个问题,结果…

系统执行sql很慢达梦工具执行很快的简单解决方式

现象描述:系统功能查询很慢,拷贝查询sql到达梦工具中执行速度很快 1.问题分析: 达梦SQL执行耗时异常问题排查_qq_39693441的博客-CSDN博客_sql耗时分析 2.解决方式1: 在程序sql中拼接随机数如: select /*动态随机数*…

roads 构筑极致用户体验_长安马自达「悦马星空」计划上线,为用户带来极致服务体验...

日前,第十八届广州车展顺利举行。期间各大汽车品牌齐聚亮相,这其中,也包括众人熟悉的长安马自达。据悉,在本次车展上,长安马自达除携品牌全系车型次世代MAZDA3 昂克赛拉、2020款MAZDA CX-5、MAZDA CX-30和MAZDA CX-8亮相外,还正式发布「悦马星空」用户共创计划。资料显示,「悦马…

从数百万个光纤(而不是数千个线程)中查询数据库

jOOQ是在Java中执行SQL的好方法, Quasar光纤带来了大大提高的并发性 我们很高兴在平行宇宙的 Fabio Tudone的jOOQ博客上宣布另一个非常有趣的来宾帖子。 Parallel Universe开发了一个开源堆栈,使开发人员可以轻松地在JVM上对极端的并发应用程序进行编码…

Oracle11.2.0.4 RAC安装文档

1 环境配置 参考官方文档《Grid Infrastructure Installation Guide for Linux》 1.1 软件环境 操作系统: [roothowe1 ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.2 (Santiago) [roothowe1 ~]# uname -a Linux howe1 2.6.32-220.el6.i…

captcha库_将CAPTCHA添加到您的GWT应用程序

captcha库什么是验证码? 在一个充满恶意机器人的世界中,您应该怎么做才能保护您宝贵的Web应用程序? 您真正应该做的基本事情之一就是向其中添加CAPTCHA功能。 如果您不熟悉(听起来有些奇怪),则CAPTCHA是确保…

ContentProvider与ContentResolver使用

例如以下内容为从网络转载:使用ContentProvider共享数据:当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就能够向其它应用共享其数据。虽然使用其它方法也能够对外共享数据,但数据訪问方式会因…