gpt4 book ai didi

java - 是否有一个参数可以加速Sybase插入

转载 作者:行者123 更新时间:2023-12-01 09:28:51 28 4
gpt4 key购买 nike

我正在使用 Sybase ASE,并创建一个表,我将在其中保存 Java 计算的结果。该表有10列,其中一列类型为INT值(但不是ID列),其他9列均为VARCHAR(50)类型。

该表上没有索引或触发器(事实上该表是真正独立的)。我需要向该表中插入大约 160K 行。我尝试将工作按批处理分开,每次都会执行 10,000 次插入。我使用了两种不同的方式,一种是Spring的JdbcTemplate.batchUpdate,另一种是原生的JDBC PreparedStatement.executeBatch api。

但是,就性能而言,没有明显的赢家。对于 10K 插入,两者都需要大约 25 到 30 秒。

然后我认为这可能与 JDBC 驱动程序有关,因此我尝试了两种不同的驱动程序:jConnect 和 jTDS。对插入性能没有实际影响。

最后我决定将 Sybase 与另一个数据库进行比较,即我的测试中的 PostgreSQL。我保留了相同的 Java 代码,令人惊讶的是,PostgreSQL 每 10K 插入只需要 0.3 秒,而 Sybase 需要 25 到 30 秒(长了 75 到 100 倍)。

DBA支持团队解释说,差异是因为PostgreSQL安装在我的本地计算机上,而Sybase安装在我们企业的服务器上。然而,我根本不相信这个解释。

有谁知道Sybase中是否有一个配置会显着影响插入速度?或者还有其他可能的原因导致我的上述情况吗?

最佳答案

您在 sybase 端看到的延迟是由于需要检查的许多因素造成的,并将其与本地计算机上的其他数据库进行比较也是不正确的。

首先,我们需要检查网络延迟和 sybase 数据库中使用的存储。我们需要检查您要插入的表的 sybase 服务器配置、页面大小和锁定方案。当您插入数据时,我们还需要对服务器进行基本的运行状况检查。正如您所提到的,您使用了两种不同的方式来插入数据,检查这两种方式是否已根据您系统上安装的 sybase 客户端进行更新非常重要。

总而言之,这可能是一个简单的问题,如 sybase 实例阻塞,也可能与存储无法快速写入有关。如果sybase配置正确,性能会非常好。

关于java - 是否有一个参数可以加速Sybase插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39623720/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com