Я нашел ужасное узкое место в этой процедуре. Не знаю, почему этот маленький блок кода работает так медленно. Если я прокомментирую этот один блок, все это займет около 7 секунд, чтобы выполнить свою работу. Этот блок добавляет более полутора минут.очень медленная вставка в таблицу SQL temp в хранимой процедуре
Вот определение #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 пуст и есть только 2 строки в # NoticeIDs. Через минуту и 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
Если я закомментировать строку «Вставить» и просто запустить выберите (с RETURN после него), она занимает всего несколько секунд, чтобы запустить весь код выше, а затем выберите. Если я закомментирую SELECT и добавлю строку «VALUES» в оператор INSERT, это тоже быстро сработает.
Я также разместил все это в отдельном окне запроса и запустил его как есть. он работал очень быстро, второй. Кроме того, я поместил его в одну небольшую хранимую процедуру сам по себе, и он тоже быстро стал молниеносным.
Я потерял, почему это так резко тормозится здесь. Есть идеи?