Я написал простую хранимую процедуру (запускаемую как задание), которая проверяет оповещения пользователей по ключевым словам. когда статья
После публикации хранимая процедура отправляет электронное письмо этим пользователям, если ключевое слово с подпиской соответствует заголовку статьи.
Один из разделов моей хранимой процедуры:
OPEN @getInputBuffer
FETCH NEXT
FROM @getInputBuffer INTO @String
WHILE @@FETCH_STATUS = 0
BEGIN
--PRINT @String
INSERT INTO #Temp(ArticleID,UserID)
SELECT A.ID,@UserID
FROM CONTAINSTABLE(Question,(Text),@String) QQ
JOIN Article A WITH (NOLOCK) ON A.ID = QQ.[Key]
WHERE A.ID > @ArticleID
FETCH NEXT
FROM @getInputBuffer INTO @String
END
CLOSE @getInputBuffer
DEALLOCATE @getInputBuffer
Это задание выполняется каждые 5 минут и проверяет последние 50 статей.
Последние 3 месяца он работал нормально, но за неделю до неожиданного поведения.
Проблема заключается в том, что она отправляет не относящиеся к делу результаты.
@String
содержит ключевое слово предупреждения пользователя и соответствует последним статьям с использованием полнотекстового поиска. Обычное время выполнения 3 минуты, но время его выполнения
3 дня (в проблеме).
Сейчас текущее состояние исправно, но мы не можем найти причину, по которой он отправил несущественные результаты.
Примечание: Я уже удалил шумовые слова из ключевого слова оповещения пользователя.
Я использую SQL Server 2005 Enterprise Edition.