Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 1|Odpowiedź: 0

[Źródło] .NET/C# Bazując na SQL SERVER, używa MERGE + HOLDLOCK dla identyfikatorów o wysokiej równobieżności

[Skopiuj link]
Opublikowano5 sekund temu | | | |
Wymagania: Użyte MERGE + HOLDLOCK to jednokrokowa operacja atomowa, która w połączeniu z mechanizmem blokującym perfekcyjnie rozwiązuje równoległe konflikty na poziomie bazy danych. Niniejszy artykuł uzupełnia funkcję numerowego wyboru (nadajnika) opartą na bazie danych MSSQL.

Skrypt tworzenia bazy danych wygląda następująco:
Wywoływany kod C# jest następujący:
Wykonaj tak, jak pokazano poniżej:



Przetestowanie i wysłanie 10 000 kont zajmuje około 6 sekund,Średnio można pobrać 1 666 liczb na sekundę, które obecnie mogą wspierać większość firm.

Core WITH (HOLDLOCK): Ta linia kodu jest kluczowa. Reprezentuje użycie Serializable. Gdy wiele wątków lub wiele usług żąda tego samego prefiksu (na przykład wszyscy rywalizują o ten sam numer zamówienia), może wymusić kolejkę tych żądań, całkowicie uniemożliwiając wstawianie tego samego prefiksu przez dwa wątki lub dodawanie tego samego numeru jednocześnie, zapewniając absolutną unikalność i ciągłość numerów.




Poprzedni:Różnice między location.assign, location.href i location.replace
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com