Вобщем есть ХП которая выбирает 1 пользователей случайным образом.
Есть Вторая ХП которая выбирает 2 пользователей с помощью первой ХП.
Но смотрит не ту ли тех пользователей в blacklist. Вобщем вот текст второй ХП:
CREATE PROCEDURE comp_tryWiners
@id_part decimal = NULL
AS
declare @win1 decimal
declare @win2 decimal
exec @win1 = comp_doWiners @id_part
exec @win2 = comp_doWiners @id_part
declare @blackuser decimal
select @blackuser = id_user from blacklist where id_user=@win1
while (@win1=@blackuser)
begin
exec @win1 = comp_doWiners @id_part
select @blackuser = id_user from blacklist where id_user=@win1
end
set @blackuser = (select id_user from blacklist where id_user=@win2)
while (@win2=@blackuser)
begin
exec @win2 = comp_doWiners @id_part
set @blackuser = (select id_user from blacklist where id_user=@win2)
end
while @win1=@win2
begin
exec @win2 = comp_doWiners @id_part
set @blackuser = (select id_user from blacklist where id_user=@win2)
while (@win2=@blackuser)
begin
exec @win2 = comp_doWiners @id_part
set @blackuser = (select id_user from blacklist where id_user=@win2)
end
end
select * from Users c where c.id=@win2 or c.id=@win1
GO
|
|
Во первых непонятно почему она выполняеться секунд 10 ... после этого сервак начинает использовать время проца на все 100%. Что делать ?? Что я уже напартачил ???