클라이언트와 코드 검토를하고 있습니다. SQL Server 2008의 proc입니다. 그는 프로세스가 아닌 SQL로 모든 것을 처리하려고합니다. 그는 카탈로그의 목록을 반복하고 각 하나에 시저를 실행 :커서를 사용하여 다른 많은 데이터베이스에서 proc를 호출하는 proc - 악 또는 악취가 나는 경우?
DECLARE CatalogList CURSOR FOR
SELECT 'EXEC ' + c.CatalogName+ '.dbo.procInEachDb '
FROM CatalogList
FETCH NEXT FROM CatalogList INTO @SQL
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC(@SQL)
--PRINT @SQL
FETCH NEXT FROM CatalogList INTO @SQL
END
내가 일dB에서 교착 상태가 전체 프로세스를 죽일 것이라고 지적했다. 그의 포인트는 5 분마다 실행되는 코드이며 다음 번에 실행된다는 것입니다.
이 코드는 좋지 않지만 특별한 이유는 없습니다. 이것이 문제가되는 것에 대해 잘못된 것인가?