AWS имеет обязательное обновление сертификата SSL для своих экземпляров RDS, выходящих 5-го числа. Несмотря на то, что я на самом деле не использую сертификат, я продолжил и запустил обновление, чтобы оно было сделано, и у меня не было бы неожиданных простоев. Насколько я понимаю, должен был быть обновлен только сертификат SSL.
Вместо этого загрузка моего ЦП снизилась с менее 10% в режиме ожидания до более 80%. Теперь я выделил причину этого для запроса, который мы запускаем каждые несколько секунд, чтобы получить список последних транзакций. И с некоторыми изменениями загрузка ЦП вернулась к нормальному уровню.
Но этот запрос был в течение нескольких лет без проблем, и только после этого обновления SSL это вызвало у нас какое-то горе. Меня беспокоит то, что есть некая более глубокая проблема за кулисами, и что изменение запроса просто лечит симптом. Прежде чем пересмотреть запрос, я запустил все ожидающие обновления и перезагрузил базу данных без изменений. На форумах AWS был еще один человек с той же проблемой, но ни один из нас не смог получить никаких полезных ответов. К счастью, остальная часть системы, кажется, ведет себя сама, но я хочу знать, что происходит.
В случае, если это может помочь определить, почему запрос внезапно использует гораздо больше ресурсов, здесь (упрощенная) версия запрос до моей настройки.
SELECT Distinct Top (@NumOfTrx) [trx].* ,[c].*
FROM [dbo].[TRX_Transactions] trx
Inner Join @ProdSelection s on ((trx.Code = s.ID and s.ID != 0) or (s.ID = 0 and (trx.TypeID = 1or StatusID = 4))
or (BatchId > 0 and s.ID in (select b.Code from [dbo].[TRX_Batch] b where b.BatchId = trx.BatchId)))
Join CLI_Details c on trx.UserName = c.UserName
where trx.TransactionDate > DATEADD(Day, -1, GETDATE()) and (trx.Amount >= @Size Or trx.TypeID = 1 or StatusID = 4)
And (@Company = 0 or c.Company = @Company) and (@Agent = '' or [Agent] = @Agent)
order by [trx].[TransactionDate] Desc
Удаление объединения выбора Prod, фильтр, который представляет собой список идентификаторов, без которых мы можем работать в настоящее время, был тем, что решило проблему.