java B/S系统。
生成汇总表的时候,因为表样很复杂,数据量很大,存储过程也写的比较复杂,导致用户在点击生成汇总表时,
系统就不能再做其他与数据库相关的操作,呈现锁死状态,直到那个汇总表生成完毕。
我们的程序可能写的不够优化,大数据量操作时都有可能会导致内存溢出,导致服务器都崩溃掉。
请问各位有没有遇到这种情况,都怎么解决的。
java B/S系统。
生成汇总表的时候,因为表样很复杂,数据量很大,存储过程也写的比较复杂,导致用户在点击生成汇总表时,
系统就不能再做其他与数据库相关的操作,呈现锁死状态,直到那个汇总表生成完毕。
我们的程序可能写的不够优化,大数据量操作时都有可能会导致内存溢出,导致服务器都崩溃掉。
请问各位有没有遇到这种情况,都怎么解决的。
应该不是死锁造成的;
死锁时,一般会一直等待直到处理完成才会;但通常不影响其他业务模块;
我分析了下觉得会是如下几点造成:
1、过程中使用了较多的排序,分组,或者对大表进行了更新等造成服务器硬件资源被耗尽(通常这时服务器的负载会超过5,并且IO,CPU占用都很高)。
2、大数据的交换,把服务器的交换空间撑爆了。
面对以上两种情况,可以检查下过程中是不是有大表操作,将大表操作,采用多个中间表,另外有没有SQL值得优化的地方,是不是可以在中间加点commit操作等,