现有一套Web系统,后台采用SQL Server或者Oracle,当用户执行一个比较消耗数据库资源的操作时,如执行一个大的存储过程,那么Web系统的前台其他用户都在执行过程中没有办法登陆或者操作了,对于这个问题我想大家在做大的系统时候一定也会遇见到的,不知道各位是怎么解决的,老板和客户关于这个问题催的都很急,希望各位多给些意见,谢谢了。

解决方案 »

  1.   

    那么Web系统的前台其他用户都在执行过程中没有办法登陆或者操作了
    为什么啊?
      

  2.   

    "当用户执行一个比较消耗数据库资源的操作时,如执行一个大的存储过程,那么Web系统的前台其他用户都在执行过程中没有办法登陆或者操作了"这个不会吧!
    其他用户不能登陆是因为你这个操作锁定到登陆的什么表了吗?即使锁了也可以读得到啊 with(nolock).
      

  3.   

    用戶登錄跟那個消耗很大資源的操作應該不衝突的吧?
    除非登錄用的表被存儲程序正在更新之類的,或者服務器該加CPU內存?
    至於操作的話,倒可能存在鎖定的情況,所以可能暫時不能操作~~
      

  4.   

    是呀,可是那个耗时的操作在执行过程中,CPU占80%--90%那样,内存倒不是很多,而且那个过程中涉及到的表和登陆以及登陆成功后的表都没有关系,可就是在那个过程执行中导致其他人员登陆不了,现在都判断不出是数据库的问题,还是程序的问题,其实那个存储过程执行过程也就2-3分钟,可是在这2-3分钟中就发生这样的问题,真是烦。
      

  5.   

    打开两个查询分析器,
    在第一个查询分析器中,执行此大存储过程
    紧接着在第二个查询分析器中,执行select * from 登录表,
    看看第二个语句是否会立即出来结果,还是等第一个语句执行完后才出来结果。