sql >> Database >  >> RDS >> Sqlserver

Hoe gaat de database-engine om met gelijktijdige invoegingen?

Een database-engine zoals SQL Server (waarvan ik aanneem dat je ernaar vraagt, aangezien je het zo tagt) zal een versie van de RAM Write-Ahead Logging protocol. Aangezien een dergelijk protocol het schrijven van het logboek als een sequentiële stroom vereist, volgt als regel dat 100 inserts die gelijktijdig worden afgevuurd, zelfs op een server met 100 CPU's intern moeten worden geserialiseerd wanneer ze toegang krijgen tot het logboek. Daarom is gelijktijdigheid op het 'nanoseconde'-niveau, zoals u suggereert, zelfs theoretisch niet mogelijk. Het onderwerp wordt op verschillende plaatsen beschreven, zie Write-Ahead Transaction Log , Transactieherstel en Hoe het werkt:Bob Dorr's SQL Server I/O-presentatie .

Vanuit praktisch oogpunt moet u echter denken in termen van transacties en isolatie niveaus .



  1. PHP-script om MySQL-database te back-uppen

  2. Alle uitgeschakelde beperkingen voor externe sleutels in SQL Server retourneren (T-SQL-voorbeeld)

  3. JPA-modelklasse voor veld TIMESTAMP ZONDER TIJDZONE DEFAULT CURRENT_TIMESTAMP in Postgres?

  4. SQL gebruiken als een xlookup