Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 1|Odpoveď: 0

[Zdroj] .NET/C# Na základe SQL SERVERa používa MERGE + HOLDLOCK pre identifikátory s vysokou súbežnosťou

[Kopírovať odkaz]
ZverejnenéPred 5 sekundami | | | |
Požiadavky: Použitie MERGE + HOLDLOCK je jednokroková atómová operácia, ktorá v kombinácii so zamykacím mechanizmom dokonale rieši súbežné konflikty na úrovni databázy. Tento článok dokončuje funkciu výberu čísel (vysielača) založenú na databáze MSSQL.

Skript na tvorbu databázy je nasledovný:
Volaný kód v C# je nasledovný:
Vykonajte to ako je uvedené nižšie:



Testovanie a odoslanie 10 000 účtov trvá približne 6 sekúnd,V priemere je možné za sekundu získať 1 666 čísel, ktorá teraz dokáže podporiť väčšinu podnikov.

Core WITH (HOLDLOCK): Tento riadok kódu je kritický. Predstavuje použitie Serializable. Keď viacero vlákien alebo viacero služieb požaduje rovnaký prefix (napríklad všetci súťažia o rovnaké číslo objednávky), môže tieto požiadavky násilne zaradiť do fronty, čím úplne zabráni tomu, aby dve vlákna vložili rovnakú predponu alebo pridali rovnaké číslo naraz, čím sa zabezpečí absolútna jedinečnosť a kontinuita čísel.




Predchádzajúci:Rozdiely medzi location.assign, location.href a location.replace
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com