Я был бы очень признателен всем, кто мог бы указать мне на некоторые ресурсы или поделиться личным опытом по этому вопросу.
Я заметил, что мой процессор sql 2k box был привязан почти на 100%, он резко увеличился почти в то же время, когда процесс etl, который использовал курсор sql, но не освободил память, завершился неудачей.Я остановил и запустил службу, и она устранила проблему.
Этот процесс etl завершился неудачей ранним утром, и когда сервер заработал, разработчик перезапустил процесс вручную.
Итак, в заключение:Мой вопрос заключается в следующем: кажется очень очевидным, что процесс etl, возможно, вызвал всплеск сервера, однако я хотел бы знать, может ли / как / почему эта процедура, которая не освобождает память, вызвать эту проблему.Запрос выглядел примерно так:
USE AdventureWorks
GO
DECLARE @ProductID INT
DECLARE @getProductID CURSOR
SET @getProductID = CURSOR FOR
SELECT ProductID
FROM Production.Product
OPEN @getProductID
FETCH NEXT
FROM @getProductID INTO @ProductID
WHILE @@FETCH_STATUS = 0
BEGIN
Insert into sometable values(@ProductID)
FETCH NEXT
FROM @getProductID INTO @ProductID
END
CLOSE @getProductID
GO
Большое спасибо.