【DM版本】: 达梦8
【操作系统】:centos
【问题描述】*:python执行大数据量批量写入的时候,出现dmPython.DatabaseError: [CODE:-70019]网络通讯失败。源码参考官方文档。请问使用cursor.executemany最大写入量是多少?或者有没有直接全量写入的方式?
1、columns传的值是多少,Seq_params列表里面有多少个元素,数据量大概是多少。
2、我这边测试executemany方法,一次插入一个76列,10000行的表数据,相当于您那边Seq_params列表里面包含10000个list(元素),
每个list包含76个元素的数据量插入到数据库,测试正常,接口没有返回错误。
3、网络通讯失败,此错误发生时,是否有查看过数据库的日志信息,里面会有问题排查的思路。
4、您这个问题有可能是
(1)您的程序并发量高,句柄数超过操作系统设定的open files。
(2)您的程序并发量高,会话数超过达梦dm.ini中设定的MAX_SESSIONS,MAX_SESSION_STATEMENT。
建议还是具体问题具体分析,上面只是推测。
5、测试数据库版本:DM Database Server x64 V7.6.1.70-Build(2020.09.04-126586)ENT
dmpython版本:2.3
python版本:3.7.1
6、建议您提供您那边的:
(1)数据库版本号
(2)dmpython版本号
(3)测试代码(您说一下您的qq号,方便传递demo文件)
(4)pandas版本号
(5)python版本号
(6)表结构和测试数据(如果允许的话)
这样更容易复现和排查问题。
请提供详细的代码片段和表结构和详细的报错堆栈信息,网络通讯异常可能是绑定的参数不符合规范,服务器端拒绝导致的。还有就是报错“网络通讯异常”的时候,达梦客户端是否能够访问服务器?