601 Error, Could not continue scan with NOLOCK due to SQL Server data Movement
- 메시지 601, 수준 12, 상태 3, 프로시저 usp_SQLMVP, 줄 23
- 데이터 이동으로 인해 NOLOCK으로 계속 검색할 수 없습니다.
- Version : SQL Server 2005, 2008, 2008R2, 2012, 2014
데이터 조회 프로시저 호출에서 다음과 같이 601 에러가 발생 하였다. 601 에러는 어떨떄 발생 할까?
601에러는 READ UNCOMMITTED, NOLOCK 힌트를 사용하여 데이터를 조회 할 때 하나 이상의 데이터가 페이지가 없기 때문에 발생한다. 페이지 분할로 이동했거나 페이지가 삭제되었을 경우 발생 한다. 즉 SQL Server가 스캔 작업을 계속 할 수 없을 때 발생한다.
페이지 삭제의 경우 디스크 커럽션이 발생해서 데이터가 손실될 경우도 있으므로 페이지 손상이 있는지 DBCC CHECKDB 옵션을 사용하여 무결성 확인을 해 볼 필요가 있다.
- DBCC CHECKDB : http://msdn.microsoft.com/ko-kr/library/ms176064.aspx
이 외에도 인덱스 튜닝 등을 통하여 쿼리를 좀더 빠르게 개선할 수 있도록 한다. 또한 조회 데이터가 적을수록 발생할 가능성이 적어진다.
[참고자료]
강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp