У меня есть сценарий, в котором я выполняю следующий запрос внутри хранимой процедуры как часть задания агента sql, и для завершения выполнения требуются часы.Кто-нибудь может предложить лучший подход для переписывания этого запроса?Таблица #ownership
содержит 1,5 миллиона записей.
WHILE (@last_update > 0)
BEGIN
INSERT INTO #ownership
SELECT DISTINCT
a.ParentNumber,
b.ChildNumber
FROM #ownership a,
#ownership b
WHERE a.ChildNumber = b.ParentNumber
AND NOT EXISTS (SELECT 1
FROM #ownership c
WHERE c.ParentNumber = a.ParentNumber
AND c.ChildNumber = b.ChildNumber)
SET @last_update = @@ROWCOUNT
END