为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:达梦8
【操作系统】:麒麟V10-arm
【CPU】:鲲鹏920
【问题描述】*:相同机器与网络环境下Oracle与达梦数据库批量插入更新性能比较,oracle的性能为何会比达梦的高近10倍?(Oracle 4000笔数据一次性写入耗时300ms, 达梦2000笔分10次写入耗时800ms(一次性写入也差不多))。 达梦的数据库版本是达梦8开发版,写数据时是2个线程各自写一张表,oracle的CPU基本得到了利用,而达梦的CPU利用率都在100%,没法再提高,是代码写法问题还是方法不对?或是数据库参数配置问题(BATCH_PARAM_OPT=1, dm.ini工作线程设置也提高了)?感觉性能不至于差这么大吧?以下是oracle和达梦的用法,2者的sql语句都一样。
merger into table Using(select c1: as a, from dual)
on() when match .. when not match ..
Oracle伪码:
pStmt->setSQL(strSql);
for(;😉
{
...
pStmt->addIteration();
}
pStmt->executeUpdate()
达梦伪码:
dpi_prepare(stmt, strSql);
for(;😉
{
...
dpi_bind_param(stmt);
dpi_exec_add_batch(stmt);
}
dpi_exec_batch(stmt);
服务器多少C的呀?
https://eco.dameng.com/community/article/cc2cb83fe8b7bc1810b09066672319b6
看看这个帖子