0
点赞
收藏
分享

微信扫一扫

记一次达梦数据库优化解决连接池异常问题

覃榜言 2022-06-04 阅读 106

问题表现:

记一次达梦数据库优化解决连接池异常问题_索引

用户反馈系统打开待办列表、流程发送最近几天都变慢了;某些功能设置保存会很慢或点击没反应。

进入运维平台发现主节点数据库连接池异常高150---200;其他节点不会那么高。

定位问题:

所有数据库节点执行查询:

select * from V$SESSIONS where state='ACTIVE'

SQL获取:

SELECT SF_GET_SESSION_SQL (SESS_ID) FROM V$SESSIONS WHERE SQL_TEXT LIKE '%148%';

记一次达梦数据库优化解决连接池异常问题_数据_02

记一次达梦数据库优化解决连接池异常问题_索引_03

为优化统一待办推送到第三方系统,建模做的数据池;

每次往建模表里存入数据都会校验权限,所以产生了大量的权限查询sql;

初步处理:禁用统一待办推送接口。

备注:期间还做了其他尝试:重启服务、停用计划任务、计划任务频率改大等

对比测试:

1.复制其中一条语句:

select sourceId from modeDataShare_147_set where sourceId = 145436 and rightid = 522 and sharetype in(80, 90, 81, 84, 85, 1000, 1, 2, 3, 4, 5, 6, 7)

2.主节点执行测试:1.47s;

3.备节点执行测试:初次执行247s,第二次执行4s,之后执行1—5s;

4.修改语句where条件执行测试:sourceId = 145436 and rightid = 522 同时出现 1—3s,只添加一个条件 0.2—0.4s;

5.第二天复测247s未能复现(禁用了接口);

6.根据达梦工程师指引拼接条件测试:查询用时0.16s

记一次达梦数据库优化解决连接池异常问题_sql_04

优化处理:

方案:创建联合索引;

语法:create index 索引名 on 表名(sourceid,rightid);

命名:idx_表名_联合索引名字

创建:CREATE INDEX IDX_MODEDS_SOURCEIDRIGHTID ON MODEDATASHARE_147_SET(SOURCEID,RIGHTID)

备注:创建前建议咨询总部DBA命名规则/建议,避免冲突或不合理。

处理效果:

记一次达梦数据库优化解决连接池异常问题_sql_05

优化前:1.5s左右;

优化后:0.03s左右;

执行快了50倍;

重新开启待办推送,观察数据库连接池,基本为个位数;

记一次达梦数据库优化解决连接池异常问题_索引_06

举报

相关推荐

0 条评论