我在这一个程序中发现了一个可怕的瓶颈。不知道为什么这个小块代码在这里运行如此缓慢。如果我对这一块进行评论,整个过程大约需要7秒才能完成。这个街区增加了一分半钟。
这是#TempFC的定义:
CREATE TABLE #TempFC (
NoticeID int,
AttyID int,
AFN9 varchar(9),
FirstPubDate smalldatetime,
MortgagorName varchar(255),
PropAddress varchar(255)
)
这是#NoticeIDs
的定义CREATE TABLE #NoticeIDs (
NoticeID INT,
CircuitCourtPubDateID INT,
CircuitCourtAdjournmentPublicationDate SMALLDATETIME
)
在运行时,#TempFC为空,#NoticeIDs中只有2行。一分钟和1/2将2条窄行插入空表。
INSERT INTO #TempFC (
NoticeID,
AttyID,
AFN9,
FirstPubDate,
MortgagorName,
PropAddress
)
SELECT
tN.NoticeID,
tN.AttyID,
tN.AttyFileNum9Chars as AFN9,
tN.FirstPubDate,
tN.MortgagorName,
tN.PropAddress
FROM
dbo.tblNotices tN
INNER JOIN #NoticeIDs ON #NoticeIDs.NoticeID = tN.NoticeID
INNER JOIN dbo.tblAttorneys tA ON tN.AttyID = tA.AttyID
INNER JOIN dbo.tblParentAttorneys tPA on tA.ParentAttorneyID = tPA.ParentAttorneyID
WHERE
tPA.PubAffTiming = 2
如果我注释掉“INSERT”行并且只运行select(后面带有RETURN),则需要几秒钟来运行上面的所有代码然后选择。如果我注释掉SELECT并在INSERT语句中添加“VALUES”行,那么它也会运行得很快。
我还将上述所有内容放入一个单独的查询窗口中并按原样运行。它跑得很快,次秒。另外,我把它单独放在一个小的存储过程中,它也快速闪电。
我迷失了为什么这会在这里如此剧烈地减速。有什么想法吗?
答案 0 :(得分:0)
尝试替换
CREATE TABLE #TempFC&插入#TempFC
使用SELECT ...进入#TempFC
并尝试更换' 2'与@x