已经创建了一个用于监控网站的存储过程。第一次运行时存储过程执行缓慢
第一次运行时,程序需要一分钟才能执行,如果在此之后运行,只需几秒钟即可运行。问题在于脚本计划以10分钟的间隔运行,并且每次运行脚本都需要花费一分多钟,时间太长。
是否有人知道我们如何提高此查询的性能?我知道有一个原因是它第一次运行缓慢,然后很快就会发生,但一直未能找到答案。
下面的代码,在此先感谢:)
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
只是好奇 - 为什么你最后的东西w /临时表?为什么不选择你的两个变量 - 选择@unconfirmedToday作为UnconfirmedToday,@errorToday作为ErrorToday – 2010-10-25 01:43:26