【问题标题】:Retrieve the records from SAP HANA database is slow in JAVA从 SAP HANA 数据库中检索记录在 JAVA 中很慢
【发布时间】:2019-04-05 16:04:28
【问题描述】:

应用程序从 SAP HANA ResultSet 检索记录的性能很慢。

为了验证性能,我创建了以下场景并进行了测试。我使用 MySQL 和 SAP HANA 进行比较。

在 MySQL 和 SAP HANA 数据库中创建了同一个表,并在两个数据库的表中生成了相同的数据。

使用 MySQL 数据库创建的报告以及将数据发布到弹性搜索所需的时间 - 22 毫秒

使用 SAP HANA 数据库创建的报告以及将数据发布到弹性搜索所需的时间 - 19441 毫秒

以下代码需要更多时间

while(rs.next()){

<!--code to fetch the the records !-->
 rs.getString("actorId");
}

相同的代码用于 MySQL 和 SAP HANA 数据库。

我已放入日志文件语句以查看执行所用时间,并观察到 ​​SAP HANA 需要更多时间从 ResultSet 获取和处理记录。

【问题讨论】:

  • 22 毫秒?您正在测试/获取多少行?在同一主机上是否有弹性?你怎么知道 getString() 需要更多时间?您如何对代码进行基准测试?
  • 弹性服务器在同一主机上。处理 300 行。问题不在于 MySQL,使用 SAP HANA 结果集,它需要将近 20 秒,而 MySQL 只需要 22 毫秒

标签: java sap hana


【解决方案1】:

当创建表为 COLUMN TABLE 时,HANA 数据库效果最佳

您可以在给定的样本上找到样本CREATE COLUMN TABLE script。那么你就不需要为 50 万条记录建立索引了,表列的选择性很高

直接在数据库上执行查询来测试HANA数据库上的查询性能会更好,您将很容易获得有关数据库性能的执行统计信息。

否则,问题也可能与连接有关

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    相关资源
    最近更新 更多