Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment le moteur de base de données gère-t-il les insertions simultanées ?

Un moteur de base de données comme SQL Server (sur lequel je suppose que vous posez des questions, puisque vous le marquez ainsi) utilisera une version de ARIES Enregistrement par écriture anticipée protocole. Puisqu'un tel protocole nécessite l'écriture du journal sous forme de flux séquentiel, il s'ensuit en règle générale que 100 insertions déclenchées simultanément, même sur un serveur à 100 CPU, devront se sérialiser en interne lorsqu'elles accèdent au journal. Par conséquent, la concurrence au niveau "nanoseconde", comme vous le suggérez, n'est même pas théoriquement possible. Le sujet est décrit à plusieurs endroits, voir Write-Ahead Transaction Log , Récupération des transactions et Comment ça marche :Présentation des E/S SQL Server de Bob Dorr .

Cependant, d'un point de vue pratique, vous devez penser en termes de transactions et isolement niveaux .