Мне нужен кто-то, кто может сказать мне, что мне не хватает.Скалярная функция занимает так много времени
У меня есть эта скалярная функция в SQL Server 2008:
ALTER function [dbo].[SKU](@id1 int, @id2 int)
returns int
begin
return (
SELECT SUM(Value)
FROM Table
where id_1 = @id1
and id_2 = @id2)
end
И таблица выглядит так:
id_1 id_2 Value
1004 1 10
1004 1 30
1004 2 100
1005 1 90
1005 1 5
1005 1 5
Если я выполняю:
select [dbo].[SKU](1004,1)
возвращает 40 - Это нормально
select [dbo].[SKU](1004,2)
возвращает 100 - OK
select [dbo].[SKU](1005,1)
возвращает 100 - OK
На данный момент все кажется нормально, но моя таблица имеет почти Millon строки ... результат СК идет в ту же таблицу (обновить часть).
Но я побежал в течение двух часов в настоящее время, и до сих пор работает ...
Мой вопрос: Я никогда не видел таких, как долгое время потребляющего запроса. Все нормально? Я что-то упустил?
Спасибо !, и с новым годом! D:
Как он используется при обновлении? У вас есть индекс покрытия на 'id_1, id_2', включая' Value'? –
Можете ли вы опубликовать свой оператор обновления, интересно, создалось ли условие взаимоблокировки ... – Sparky
таблица результатов обновления = dbo.SKU (id_1, id_2) – Jaxedin