Оптимизировать запрос для повышения производительности

DECLARE @userId INT  

DECLARE newCur CURSOR FOR 
     SELECT DISTINCT USER 
     FROM User_Table  --Count 3497    

OPEN newCur    

FETCH NEXT FROM newCur INTO @userId  

WHILE (@@FETCH_STATUS <> -1)    
BEGIN    
    EXEC sp_Updatedept @userId   
    SET @userId = ''  

    FETCH NEXT FROM newCur INTO @userId  
END    

CLOSE newCur 
DEALLOCATE newCur 

Этот запрос выполняется в течение 3 часов и может расширяться в зависимости от увеличения записей в таблице.

Поскольку он использует курсор, он очень медленный и снижает производительность; Мне нужно оптимизировать запрос, чтобы он мог выполняться за 30 минут или меньше.

Любое предложение или помощь с запросом высоко ценится.

0 ответов

Другие вопросы по тегам