第一个大问题:
这是关于sql中的延迟一段时间函数
waitfor delay 时间 的问题!
首先,我用存储过程执行这个函数
CREATE PROCEDURE [winclose]
@session_id nvarchar(15)=null
AS
WAITFOR DELAY '00:00:02'
if exists(select * from user_online WITH (NOLOCK) where [email protected]_id and refing='yes'and window=0)
begin
delete from user_online where [email protected]_id
我执行这句话的意图,是延迟2秒后查询是否存在refing字段='yes'and window字段为0
如果存在,删除这一行记录!
如果在这wait的2秒内,有其他操作能改变这一记录的refing或者window字段值,让其不符合其删除条件,那么就不执行删除。
问题是,在wait这2秒内,如果有其他操作真的想改变refing或者window字段值,那么系统的dllhost.exe进程CPU占用就会变得狂高,并且挣扎了老长一段时间,改变refing或者window字段值并不成功。
结果是2秒内,就算有改变字段值的操作,都会无效,导致存储过程直接删除这行记录!
我又换成触发器来执行
CREATE TRIGGER [deluser] ON [dbo].[user_online]
after UPDATE
AS
declare @username nvarchar(15)
select @username=username from user_online
where username in
(select username from user_online WITH (NOLOCK)
where refing='yes'and window=0)
waitfor delay '00:00:03'
if exists(select * from user_online WITH (NOLOCK) where [email protected] and refing='yes'and window=0)
begin
delete from user_online where [email protected]
insert into message (username,touser_name,msg,rndid,color,usertype) values ('system','all',@username+'has gone','system','black','service')
end
如果这段嫌累可以不看,意图差不多。
结果还是一样!CPU占用100%,缓下来后直接删除了这行记录!我在学校的服务器cpu( Xeon 5410 2.33G)上尝试了一下也会出现这情况!不是我机器配置的问题!
请问高手们:WAITFOR DELAY语句执行的时候,难道锁定表记录?但我尝试把单个的WAITFOR DELAY 20秒 执行,然后用其他的查询语句执行这个表的加,删,都成功!!?只有执行上面的存储过程或触发器才会出现这个情况?到底这是怎么回事?
第二个问题,关于IIS的:只要asp连接SQLserver数据库语句出错,比如说本来select*from a1不小心写成select*from a2,而这a2表不存在在库中,那么就CPU100%,服务器上一样!根本不报错!其他任何错误,比如连接帐号,密码错了,也是100%,根本没有了提示!请问这时为什么?
------解决方案--------------------
未见你说的问题一:
- SQL code
create table user_online(session_id nvarchar(15),refing varchar(10),window int)insert into user_online select 'abc','yes',0union all select 'def','yes',0union all select 'hij','no',0goCREATE PROCEDURE [winclose] @session_id nvarchar(15)=null AS WAITFOR DELAY '00:02:00' if exists(select * from user_online WITH (NOLOCK) where [email protected]_id and refing='yes'and window=0) begin delete from user_online where [email protected]_idendgo
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
学习 顶