我有一个SP需要10秒运行约10次(每次运行约一秒)。该平台是asp.net,服务器是SQL Server 2005.我已经索引了表(不是PK),这不是问题。一些注意事项:存储过程;插入缓慢
- usp_SaveKeyword不是问题。我评论说整个SP并没有什么不同。
- 我将@SearchID设置为1,时间大大减少,平均只需要15ms的时间。
- 我注释掉了整个存储过程,除了插入到tblSearches中,奇怪的是它需要更多的时间来执行。
任何有关可能发生什么的想法?
set ANSI_NULLS ON
go
ALTER PROCEDURE [dbo].[usp_NewSearch]
@Keyword VARCHAR(50),
@SessionID UNIQUEIDENTIFIER,
@time SMALLDATETIME = NULL,
@CityID INT = NULL
AS
BEGIN
SET NOCOUNT ON;
IF @time IS NULL SET @time = GETDATE();
DECLARE @KeywordID INT;
EXEC @KeywordID = usp_SaveKeyword @Keyword;
PRINT 'KeywordID : '
PRINT @KeywordID
DECLARE @SearchID BIGINT;
SELECT TOP 1 @SearchID = SearchID
FROM tblSearches
WHERE SessionID = @SessionID
AND KeywordID = @KeywordID;
IF @SearchID IS NULL BEGIN
INSERT INTO tblSearches
(KeywordID, [time], SessionID, CityID)
VALUES
(@KeywordID, @time, @SessionID, @CityID)
SELECT Scope_Identity();
END
ELSE BEGIN
SELECT @SearchID
END
END
*存储 - 请校对。 – GEOCHET 2008-09-23 13:33:07
这将有助于了解在表格上设置了哪些索引/触发器。 – Nikki9696 2008-09-23 13:34:41