那是因为你的存储过程占用的数据库资源较多,比如有大的比较,排序,检索过多的数据等。试着增大你TEMPDB,因为上面的操作都在这个库中进行,对你的PROC优化,对数据库优化。

解决方案 »

  1.   

    我想在存储过程中仅仅执行查询的话,就算用户多影响也不会很大. 问题应该出在DML锁定了纪录,又没有及时提交, 从而影响了别的用户的DML操作.
    你应该把大的数据更新分成几个小的模块, 即使提交或回滚. 这样就会避免或减轻以上情况.
      

  2.   

    多个客户调用同一个存储过程当然要比一个客户调用要慢,具体慢的原因则多种多样,需要从多个方面进行考察:
    1、看CPU,如果多个客户调用时的CPU很忙,则说明你的查询太耗CPU,应通过索引等方法提高查询的效率。
    2、看IO,如果CPU不忙,IO比较忙,则说明你的查询产生的IO量太大,可以通过增加索引,加大数据库内存等方法来减少IO操作次数
    3、看锁定现象,如果CPU和IO都不忙,则说明你的查询在多个用户执行时,有锁定的现象发生,导致不能并行执行。可以察看有没有事务操作、游标查询等导致了锁定,并作相应的优化