【发布时间】:2017-07-16 16:39:40
【问题描述】:
我正在使用 Sybase ASE 15.5 和 JDBC 驱动程序 jconnect 4,我遇到了使用 executebatch() 进行缓慢插入的情况,在一个包含 4 亿行的大表(整数、varchar (128),varchar(255)),列 (1,2) 上的主键和聚集索引以及列 (2,1) 上的非聚集索引。每批 +/-40 行需要 +/-200 毫秒。慢与表的大小有关吗?我知道删除索引可以提高性能,但不幸的是这不是一个选择。如何提高插入速度?
注意:这是应用程序实时运行的一部分,这不是一次性迁移,所以我不会使用 bcp 工具。
编辑:我已经检查了 mysql 的这个答案,但不确定它是否适用于 Sybase ASE https://stackoverflow.com/a/13504946/8315843
【问题讨论】:
-
我不确定你所说的
+/-40 rows和+/-200ms是什么意思(我通常认为这些是指80 行范围和400 毫秒范围......??);还是说插入 40 行需要 200 毫秒? -
如果我没记错的话,40 行需要 200 毫秒。我会再次检查。
-
它需要 240 毫秒但不插入任何东西。我开了一个新问题stackoverflow.com/q/45150506/8315843
-
缓慢仅与上面这个奇怪的问题有关。我放弃了这个问题,重新加载了一个新的转储,问题就消失了,插入时间下降到 30 毫秒。
标签: sql performance insert sybase sap-ase