我正在开发一个Java通信网关(CGW),它从GPS设备获取数据包,处理它并存储在一个名为Live table的表中(数据库在不同的服务器中运行 - 来自Java CGW我通过连接称为数据库连接池和在Live表中插入数据。)
另一方面,我们的Web应用程序也在从同一个Live表中读取数据。因此,当Java CGW应用程序启动时,Web应用程序变得非常慢,甚至第一页也无法打开。我正在使用SQL Server 2005。
请告诉我为什么会这样。
提前致谢。
答案 0 :(得分:0)
看起来您的问题是一个线程优先级问题,因为读取/保存数据似乎需要比预期更多的处理器时间,您可以通过在当前线程中使用低于5的数字调用setPriority来降低线程优先级。
获取当前主题。
Thread.currentThread().setPriority(MIN_PRIORITY);
要知道如何正确调用它,请查看Set Priority method.希望这会有所帮助!
答案 1 :(得分:0)
您是否对数据库服务器进行了性能分析?也许数据库服务器的工作量太大了。如果Web应用程序仅读取数据,则主/从数据库配置应解决数据库服务器工作负载问题。
答案 2 :(得分:0)
200线程是一个具有挑战性的数字。
通常在多线程场景中,通信开销与参与代理程序呈指数关系。此外,处理数据的方式:许多数据的功能相同或多种数据类型的多个功能/阶段?