동시성 문제를 확인하기 위해 버전 번호 (증가 할 것임) 또는 타임 스탬프를 사용 하시겠습니까?낙관적 동시성의 버전 번호 또는 타임 스탬프?
답변
사용하는 시간 형식에 관계없이 버전 번호가 더 좋으므로 서버의 시계가 잘못되었거나 시간이 지나면 잘못되었을 때 여전히 버려 질 수 있습니다.
데이터가 마지막으로 변경된 경우 동시성 검사와 가독성의 두 가지 목적을 수행 할 수 있으므로 많은 데이터베이스에서 타임 스탬프를 사용했습니다. 그러나 버전 번호를 사용하는 것이 실제로 더 좋은 방법입니다.
버전 번호. 또는 타임 스탬프를 사용하는 경우 UTC인지 확인하므로 시간대와 혼동이 없습니다.
특히 리소스가 타임 스탬프의 해상도 이상으로 업데이트 될 수있는 경우 버전 번호를 사용합니다 (예 : 초 단위로 타임 스탬프를 저장하는 경우, 초 단위로 여러 번 업데이트하는 경우). , 버전 관리가 중단됩니다).
리벤,
난 당신이 SQL 서버를 지정하지 않은 알지만, 당신은 SQL 서버에 대해 이야기하는 경우 다음 데이터 유형 타임 스탬프 사용하는 가장 좋은 방법이 될 것입니다. 그것의 묘사에도 불구하고 실제로 날짜와 시간을 할 아무 것도 없다. 실제로 행이 수정 될 때마다 변경되는 이진수입니다. 따라서 행에 대한 수정 사항이 있으면 타임 스탬프 열이 변경된다는 것을 알 수 있습니다. 프로그래머가 버전 번호를 "유지"할 필요가 없으므로 버전 번호보다 이점이 있습니다. 실제 날짜/시간 타임 스탬프는 이전시기의 다른 포스터와 같이 더 신중하게 사용해야합니다.
그리고 C 타입으로 타임 스탬프를 매핑 할 필요가있는 타입은 무엇입니까? 왜냐하면 업데이트 나 삭제 전에 동시성 문제가 있는지 확인하기를 원하기 때문입니다. (사실 SQL Server와 협력하고 있습니다.) Flex-WebORB-.NET-SQLServer. 우리는 플렉스에게 보내고 있습니다. 그 시간에 타임 스탬프를 써야합니다. dto가 반환 될 때마다 dto의 타임 스탬프가 데이터베이스의 타임 스탬프와 일치하면 chack해야합니다. 고마워. –
다음은 채팅 내용입니다. http://social.msdn.microsoft.com/Forums/ko-adodotnetdataproviders/thread/0ad05e31-c3b2-44fb-99f5-32e80754e37a/ 그러나 서버에서 버전을 처리하도록 허용 한 것으로 생각하십니까? 낙관적 인 잠금을 사용하는 경우 문제를 발견하고 예외를 throw하는 SQL 삽입이됩니다. – BIDeveloper
나는 SQL 인서트가 문제를 탐지하도록 할 것이다. 하지만 타임 스탬프를 클라이언트에 보내야합니까, 안할까요? 삽입하는 경우 DB의 타임 스탬프와 개체의 타임 스탬프를 비교해야합니다. 아니면 여기에 뭔가 빠졌나요? –
Windows 사용자는 버전 식별자로 GUID (Globally Unique Identifier)를 사용하는 것이 좋습니다.
시계가 사용자에 의해 설정되면 타임 스탬프 (UTC 일지라도)가 문제를 일으킬 수 있습니다. 서버 응용 프로그램을 다시 시작하거나 오버플로 (16 비트 또는 32 비트 정수만있는 경우)하는 경우 증가하는 숫자 (메모리에 고정 된 경우)로 문제가 발생할 수 있습니다.
버전 번호. DateTime은 '일광 절약 시간'과 같이 몇 가지 이유로 인해 고유하지 않습니다. '오전 2시'가 두 번있을 수 있습니다. (Ambiguous Time).
4,294,967,295 트랜잭션을 저장하는 동안 트랜잭션이 발생할 가능성이 거의 없으므로 부호없는 32 비트 정수 이상인 것으로 추측됩니다.
- 1. 타임 스탬프 조건의 성능
- 2. iPhone 주소록 타임 스탬프?
- 3. git의 타임 스탬프 피하기
- 4. 타임 스탬프 카운터 제한
- 5. 코드에 빌드 타임 스탬프 전달
- 6. 삽입시 SimpleDB 타임 스탬프
- 7. 유닉스 타임 스탬프
- 8. 는 타임 스탬프 Heroku가
- 9. Hibernate의 낙관적 잠금에서 버전 관리
- 10. mysql 타임 스탬프 열
- 11. MySQL의 타임 스탬프 질문
- 12. MySQL의 SET 타임 스탬프
- 13. UNIX 타임 스탬프
- 14. PHP 타임 스탬프 문제
- 15. Nslog 타임 스탬프
- 16. ORMLite로 현재 타임 스탬프?
- 17. 데이터베이스에 타임 스탬프 삽입
- 18. h264 RTP 타임 스탬프
- 19. 타임 스탬프 배열
- 20. C#의 타임 스탬프
- 21. PostgreSQL : 앞으로의 타임 스탬프
- 22. JSF 변환기 타임 스탬프
- 23. SSIS 타임 스탬프
- 24. 자바 타임 스탬프 valueOf
- 25. PHP의 타임 스탬프 비교
- 26. MySQL 타임 스탬프 필드
- 27. PHP에서 타임 스탬프 받기
- 28. 데이터베이스의 타임 스탬프
- 29. mongoid의 타임 스탬프 업데이트
- 30. PHP 타임 스탬프 비교
예, idd, 저는 이미 ModifiedOn 열을 가지고 있고 그것을 사용하려고 생각했지만 여분의 열을 권장할까요? –
예. 테이블에 많은 기둥을 넣는 것이 싫어서 방탄 솔루션입니다. – NYSystemsAnalyst
글쎄, 나는 짐의 대답 때문에 약간 혼란 스럽다. 행을 수정할 때 TimeStamp가 자동으로 변경되면 매우 유용합니다. '여전히 버려 질 수있다'는 것은 무엇을 의미합니까? thx –