数据库并发的问题!!!
问题:
我在一个表提数据,提出一条的时候同时把这条的状态列改为正在使用,别的进程就提不出来了。但是并发的情况下还是可以提出来。这个过程我用的是一个存储过程。如下:
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会很高,服务器就会死掉。请问,有没有好的办法!!!急!!!