Cześć, mam następujący update:
update fi SET
fi.firstIn = dbo.getNextFirstIn(ids.BadID, ids.ComparedID)
from firstIns fi
left join @ids ids on fi.ID = ids.BadID
where fi.ID in (select badID from @ids)
Zapytanie ma zmienić tylko te wpisy w tabeli firstIns, których id znajdują się w tabeli @ids.
Dodatkowo nowe wartości muszą być odpowiednie - zwraca mi to funkcja getNextFirstIn(to po prostu 2 selecty)
Teraz tak: @ids to zmienna tabelaryczna. Założyłem na niej klucz główny:
declare @ids table(BadID bigint primary key, pole2 bigint, pole3 tinyint)
Jednak ten klucz przyspieszył wykonanie zaledwie o jakieś 5%
W tabeli firstIns będzie ok 4000 rekordów. W tabeli @ids ok 50 rekordów(Tylko 50).
Takie zapytanie wykonuje się ok 14 sekund. Funkcja getNextFirstIn to po prostu 2 selecty.
Ktoś ma jakiś pomysł, jak by to można było zrobić inaczej? Szybciej?