У меня есть запрос, который выполняется каждый день в течение чуть более 2 лет, и на его выполнение обычно уходит менее 30 секунд. Внезапно вчера запрос начал обрабатываться более 3 часов и все время использовал 100% ЦП.
SQL:
SELECT
@id,
alpha.A, alpha.B, alpha.C,
beta.X, beta.Y, beta.Z,
alpha.P, alpha.Q
FROM
[DifferentDatabase].dbo.fnGetStuff(@id) beta
INNER JOIN vwSomeData alpha ON beta.id = alpha.id
alpha.id
- это тип BIGINT, а beta.id
- это тип INT. dbo.fnGetStuff()
- это простой оператор SELECT с 2 INNER JOIN для таблиц в одной и той же БД, использующий WHERE id = @id
. Функция возвращает примерно 11000 результатов.
Представление vwSomeData
- это простой оператор SELECT с двумя INNER JOIN, который возвращает около 590000 результатов.
Как просмотр, так и функция завершатся менее чем за 10 секунд, когда они будут выполнены сами по себе. Сначала выберите результаты функции во временной таблице, а затем включите ее, чтобы запрос завершился менее чем через 10 секунд.
Как мне устранить неполадки, что происходит? Я не вижу никаких блокировок в менеджере активности.