Я выполнил следующий запрос по данным предыдущих лет, и потребовалось 3 часа, в этом году потребовалось 13 дней. Я не знаю, почему это так. Любая помощь приветствуется.Запрос SQL Server Update очень медленный
Я только что протестировал запросы на старом SQL-сервере и работает через 3 часа. Поэтому проблема должна иметь какое-то отношение к новому SQL-серверу, который я создал. Есть ли у вас какие-либо идеи в отношении проблемы?
Запрос:
USE [ABCJan]
CREATE INDEX Link_Oct ON ABCJan2014 (Link_ref)
GO
CREATE INDEX Day_Oct ON ABCJan2014 (date_1)
GO
UPDATE ABCJan2014
SET ABCJan2014.link_id = LT.link_id
FROM ABCJan2014 MT
INNER JOIN [Central].[dbo].[LookUp_ABC_20142015] LT
ON MT.Link_ref = LT.Link_ref
UPDATE ABCJan2014
SET SumAvJT = ABCJan2014.av_jt * ABCJan2014.n
UPDATE ABCJan2014
SET ABCJan2014.DayType = LT2.DayType
FROM ABCJan2014 MT
INNER JOIN [Central].[dbo].[ABC_20142015_days] LT2
ON MT.date_1 = LT2.date1
С помощью следующих структур данных:
ABCJan2014 (70 миллионов строк - НЕТ Unique Identifier - Link_ref & дата_1 вместе являются уникальными)
Link_ID nvarchar (17)
Link_ref int
Date_1 smalldatetime
N int
Av_jt int
SumAvJT decimal(38,14)
DayType nvarchar (50)
LookUp_ABC_20142015
Link_ID nvarchar (17) PRIMARY KEY
Link_ref int INDEXED
Link_metres int
ABC_20142015_days
Date1 smalldatetime PRIMARY KEY & INDEXED
DayType nvarchar(50)
Это, как представляется, эта часть запроса, принимает такое долгое время.
Еще раз спасибо за любую помощь, я вытаскиваю волосы.
Просьба представить план выполнения ваших 'заявлений UPDATE' – Devart
Сколько записей обновляется? – User2012384
У вас есть индексы на LT.Link_ref и LT2.date1? Если вы этого не сделаете, это будет проблемой. – rghome