为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8 202307安全版本
【操作系统】:麒麟
【CPU】:arm
【问题描述】*:insert有时候耗时2ms,有时候耗时2000ms,每次插入的条数都在7-10条,一天下来200W
插入是由存储过程调用的,存储过程如下
1(1).txt
只要设备有gps数据进来就会调用这个过程,一秒7-10条数据插进来,偶尔有阻塞,几秒就没了,redo日志大小是2g
磁盘也没有达到io瓶颈
内存也够
想知道为什么会有时候快有时候慢,2者一直交替出现,有什么方法可以优化那个2000ms的吗?
磁盘格式df -Th查一下数据库所在磁盘是不是xfs格式
我看你有个xfs,64G的磁盘,在这个磁盘建个测试实例把表建上,往里插入数据,看看性能提升怎么样,能否解决问题
存储过程加个日志表看看,可能不是插入慢,是其他地方慢呢
看看sql日志
cat /dm8/dmdb/log/DMSERVER_2024041 |grep 过滤条件 > proc.log
grep 过滤条件查询一下写到proc.log里面,记录一下啥时候执行是2000ms
系统部署了nmon系统监控程序嘛,部署了的话可以看看nmon生成的系统监控日志,是不是2000ms的时候系统负载是过高的
既然已经发现有阻塞,应优先排除阻塞原因,从根本上消除;在正确部署环境下,这种insert values的操作,即时是并发进行,平均响应时间在2ms这样或以下才是正常的
我也遇到这样的问题, 连续运行一个select 查询语句,一般正常用时0.0XX s, 每隔5次以上执行显示3s 多,然后又恢复正常, 这个是什么问题。
select * from v$dm_ini where para_name like 'SVR_LOG';查一下整个参数