通过GBASE的JDBC驱动链接GBASE数据库,执行update语句耗时将近1s,请问这是什么原因?

GBASE的插入和更新操作为什么很慢? 从实验的情况来看,每次的更新操作差不多需要1s左右

startTime: 1492066834371

耗时: 918

endTime: 1492066837620


[code class="lang-java" lang="java"]String updateDataSQLStr = \"update test_product set predict=\" + predictRlt + \" where barcode='\" +  barcode + \"' and channel=\" + channel +  \" and CreateTime='\" + createTime + \"'\n\";
        try {
            long startTime = System.currentTimeMillis();     
            mStatement.executeUpdate(updateDataSQLStr);
            long endTime = System.currentTimeMillis();
            System.out.println(\"耗时: \" + (endTime - startTime));
        } catch (SQLException e) {
            e.printStackTrace();
        }

[/code]
参与5

1同行回答

sunkpsunkp数据库运维工程师GBase
1.建议先不通过jdbc而是单独在数据库内执行一下该update语句,记录一下运行时间,如果单独执行该sql的耗时也在1S左右,则应该跟数据量或sql有关。2.请检查该jdbc包是否为gbase提供的名称为gbase-connector-java-*-bin.jar的jar包,如不是请使用专用的jdbc包连接数据库。3.如以上...显示全部

1.建议先不通过jdbc而是单独在数据库内执行一下该update语句,记录一下运行时间,如果单独执行该sql的耗时也在1S左右,则应该跟数据量或sql有关。

2.请检查该jdbc包是否为gbase提供的名称为gbase-connector-java-*-bin.jar的jar包,如不是请使用专用的jdbc包连接数据库。

3.如以上都没问题,建议检查网络或DNS配置等原因。

收起
软件开发 · 2017-04-14
浏览2535
  • 直接在GBase的客户端中执行Update操作,执行时间 911ms, 更新行数: 1 ,执行的时间跟在代码里面差不多。 现在表中的数据也就九万多条数据,应该不算是特别大的数据量,期待您的解答,谢谢!
    2017-04-15
  • 那跟JDBC驱动无关,只是数据库方面执行时间为911ms,请提供GBASE配置环境信息,包括服务器内存、cpu、RAID信息及GBASE节点数等信息。可根据数据特征建立索引或将表建为hash分布表后再试一下
    2017-04-18

提问者

science09
研发工程师111

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-04-13
  • 关注会员:2 人
  • 问题浏览:3197
  • 最近回答:2017-04-14
  • X社区推广