이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 1|회답: 0

[출처] .NET/C# SQL SERVER 기반, 고동시성 식별자에 대해 MERGE + HOLDLOCK을 사용합니다

[링크 복사]
게시됨5초 전 | | | |
요구사항: MERGE + HOLDLOCK은 원자 연산으로, 잠금 메커니즘과 결합되어 데이터베이스 수준의 동시 충돌을 완벽하게 해결합니다. 이 글은 MSSQL 데이터베이스를 기반으로 한 번호 선택기(송신기) 기능을 완성합니다.

데이터베이스 생성 스크립트는 다음과 같습니다:
호출된 C# 코드는 다음과 같습니다:
아래 설명대로 실행하세요:



10,000개의 계정 테스트와 전송은 약 6초 정도 소요됩니다.평균적으로 초당 1,666개의 번호를 취할 수 있습니다이 서비스는 이제 대부분의 기업을 지원할 수 있습니다.

코어 WITH (HOLDLOCK): 이 코드 줄은 매우 중요합니다. 이는 직렬화 가능한 (Serializable)의 사용을 나타냅니다. 여러 스레드나 여러 서비스가 동일한 접두사를 요청할 때(예: 모두가 같은 주문 번호를 두고 경쟁할 경우), 이 요청들을 강제로 큐에 넣어 두 스레드가 같은 접두사를 삽입하거나 같은 숫자를 동시에 추가하는 것을 완전히 차단하여 번호의 절대적 유일성과 연속성을 보장합니다.




이전의:location.assign, location.href, location.replace 간의 차이점
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com