SQL Server/SQL Server Tip

601 Error, Could not continue scan with NOLOCK due to SQL Server data Movement

SungWookKang 2015. 7. 23. 10:27
반응형

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 옵션을 사용하여 무결성 확인을 해 볼 필요가 있다.

 

이 외에도 인덱스 튜닝 등을 통하여 쿼리를 좀더 빠르게 개선할 수 있도록 한다. 또한 조회 데이터가 적을수록 발생할 가능성이 적어진다.

 

[참고자료]

 

 

2014-12-24 / 강성욱 / http://sqlmvp.kr

 

 

601 에러, MSSQL, sqlserver, 인덱스, index, DBCC CHECKDB, 디스크검사, NOLOCK, 격리수준, 쿼리튜닝, 디스크 커럽션, DISK CRUUPTION

반응형