Создана хранимая процедура, которая используется для целей мониторинга веб-сайта.
При первом запуске процедура занимает более минуты, а если выполняется вскоре после этого, она занимает всего несколько секунд.Проблема в том, что запуск сценария запланирован с интервалом в десять минут, и каждый раз, когда он запускается, это занимает более минуты, что слишком долго.
Кто-нибудь знает, как мы можем улучшить производительность этого запроса?Я знаю, что есть причина, по которой он запускается медленно в первый раз, а затем быстро для любого последующего, но не смог найти ответ.
Вот код, спасибо заранее:)
SET NOCOUNT ON
SET DATEFORMAT ymd
declare @start datetime
declare @end datetime
set @start = DATEADD(dd,-1,GETDATE())
set @end = GETDATE()
declare @errorToday int
declare @unconfirmedToday int
set @unconfirmedToday =
(
SELECT COUNT([DateCreated])
FROM GenericLeadLogs WITH(NOLOCK)
WHERE DestinationConfirmation IS NULL
AND [DateCreated] BETWEEN @start AND @end
)
SET @errorToday =
(
SELECT COUNT([DateCreated])
FROM GenericLeadLogs WITH(NOLOCK)
WHERE Severity = 'Error'
AND [DateCreated] BETWEEN @start AND @end
)
CREATE TABLE #GenericLeadStats
(
UnconfirmedToday int null,
ErrorToday int null
)
INSERT INTO #GenericLeadStats (UnconfirmedToday, ErrorToday)
values(@unconfirmedToday, @errorToday)
SELECT * FROM #GenericLeadStats
DROP TABLE #GenericLeadStats