为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.4
【操作系统】:麒麟 V10SP1
【CPU】:海光x86
【问题描述】*:我们现在的应用使用的是8.1.2.2的jdbc驱动。在使用过程中发现有不定时的慢的情况,经过抓包发现不固定的表可能发现慢的情况。
慢的抓包:
这个是慢的语句,从抓包的情况来看,第一次预处理很快,但是第二次正式发起执行的时候却间隔了4.8s。
快的抓包:
同样的语句,都需要预处理,但是第二次发起的时候却很快。
而且从抓包来看,慢的情况是从应用端收到了预处理结果后,间隔了4.8s之后才发起,感觉跟网络没什么关系。
想看下这个是可能什么原因呢,跟驱动有关吗?截图用的wireshark分析的,从数据库端抓包。

可能的原因及建议如下:
驱动版本兼容性
当前JDBC驱动版本(8.1.2.2)可能未完全适配DM8.4数据库特性,建议确认驱动与数据库版本的兼容性,必要时升级驱动至支持DM8.4的版本(如8.1.2.3或更高)。
数据库慢日志排查
确认异常时候数据库层面SQL的响应时间,如果数据库侧响应时间慢则优化SQL。
执行计划缓存失效
硬解析可能导致重复解析开销,需确认SQL缓冲区是否充足,或者是否存在大量未使用绑定变量的高频率SQL导致缓存淘汰过快,如果是需应用优化改造为绑定变量。
网络通信配置
检查数据库监听状态及防火墙规则,排除隐性网络延迟。
中间件排查
排查中间件版本和日志,确认版本是否有已知问题以及日志是否有异常,比如TongWeb存在已知问题需升级到7049_M3版本。
建议优先验证驱动版本兼容性,然后排查数据库慢日志和中间件日志,并监控数据库服务器资源使用情况。若问题持续,需结合数据库日志及驱动日志调试信息进一步分析。