집 >데이터 베이스 >MySQL 튜토리얼 >다시 시작한 후 SQL Server 2012 ID 열이 100초씩 증가하는 이유는 무엇입니까?
SQL Server 2012의 자동 증가 컬럼 비정상적 증가 문제
SQL Server 2012에서는 비정상적인 동작이 관찰되었습니다. "Fee" 테이블에 있는 "ReceiptNo" 열의 자동 증가 값이 간헐적으로 100씩 점프했습니다. 이는 자동 증가 열의 일반적인 증가 패턴과 일치하지 않습니다.
이상행위 내용 :
이유:
이 동작은 SQL Server 2012에 도입된 성능 개선의 결과입니다. 기본적으로 데이터베이스는 이제 int 열에 자동 증가 값을 할당할 때 1000개의 값을 캐시합니다. 다시 시작한 후에는 사용하지 않은 캐시 값이 손실되어 자동 증가 시퀀스에 공백이 발생할 수 있습니다.
문서 참조:
SQL Server 설명서 설명:
"성능상의 이유로 SQL Server는 자동 증가 값을 캐시할 수 있으며, 데이터베이스 오류 또는 서버 재시작 중에 할당된 일부 값이 손실될 수 있습니다... 이로 인해 삽입 시 자동 증가 값에 공백이 발생할 수 있습니다. ."
가능한 해결 방법:
자동 증가 열의 공백이 우려되는 경우 다음 해결 방법을 고려하세요.
중요 팁:
이러한 솔루션이 완벽한 공백 없는 작동을 보장하지 않는다는 점을 이해하는 것이 중요합니다. 자동 증가 열 자체는 오류나 롤백된 트랜잭션으로 인해 공백 없는 시퀀스를 보장하지 않습니다. 진정한 격차 없는 값을 얻으려면 사용자 지정 알고리즘이나 외부 키 생성기와 같은 다른 솔루션을 고려하세요.
위 내용은 다시 시작한 후 SQL Server 2012 ID 열이 100초씩 증가하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!