我目前有一个Java线程每隔几秒就更新一次数据库。数据库是MSSQL 2005,Java版本是6.0。
每次大约有800次更新。所以我在biginning中做了setAutoCommit(false)
,并在800 commit()
次来电后致电executeUpdate()
。这需要大约500毫秒。
我也尝试过使用批处理模式,而且改进很少。现在大约需要250毫秒。
有什么办法可以改善吗? 250毫秒似乎仍然太慢。
服务器和客户端位于同一数据中心,延迟应该最小。
答案 0 :(得分:4)
你没有解释你想要做什么,所以很难提出改进建议。
您可能尝试的一件事是重构dbms架构,这样您就可以每隔几秒钟INSERT而不是UPDATE这些行。这应该有所帮助。您可以使用每小时或隔夜DELETE操作来清除旧数据。
另一件事可能是弄清楚如何构建数据,以便处理少于800行。您可以将多个数据项放在一行中。这样可以让您更新更少的行。
不得不说,四分之一秒内800次更新并不是可怕的表现。