Мне нужна помощь для оптимизации следующего кода:
MegaDelete:
DELETE TOP (1000)
FROM SCADA.dbo.LOGSUMMATIONDATAENTRIES
where dataclassid IN (SELECT distinct OUTPUTDATACLASSID FROM SCADA.dbo.LIVEDATATABITEM where ENABLED = 0 and TABID =25)
IF @@ROWCOUNT>0 GOTO MegaDelete;
Проблема в том, что SQL-сервер замедляется после многократного выполнения цикла.(В таблице SCADA.dbo.LOGSUMMATIONDATAENTRIES есть миллионы строк) Поэтому я хочу сохранить результат (около 1500 значений INT)
SELECT distinct OUTPUTDATACLASSID FROM SCADA.dbo.LIVEDATATABITEM where ENABLED = 0 and TABID =25
в переменной, которая будет использоваться в цикле.Я думаю, что это улучшит эффективность УДАЛИТЬ.
Может кто-нибудь сказать мне, как написать сценарий?Большое спасибо заранее.