数据库并发的问题!!!

free_bird816 2006-03-26 11:55:36
问题:
   我在一个表提数据,提出一条的时候同时把这条的状态列改为正在使用,别的进程就提不出来了。但是并发的情况下还是可以提出来。这个过程我用的是一个存储过程。如下:
    CREATE PROCEDURE getdata
     @Area varchar(20),
     @ptype varchar(20),
    @hfType varchar(20),
    @pc varchar(20)

  as
   declare @id int
  begin


    SELECT top 1 @id=id FROM phone where flag='1' and area=@Area and phoneType=@ptype     and callType=@hfType and arup=@pc
    update phone set flag='2' where id=@id
    select * from phone where id=@id

  end
但是当并发的时候,还有能提出同一条记录,但是如果加了事务的话,就会把整个表锁住,速度就明显很慢,而且cpu会很高,服务器就会死掉。请问,有没有好的办法!!!急!!!
...全文
94 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧