601: Could not continue scan with NOLOCK due to data movement (poursuite du parcours NOLOCK impossible en raison d'un déplacement de données)
SQL ServerQue signifie cette erreur ?
Lors d'un parcours avec NOLOCK (READ UNCOMMITTED), le parcours n'a pas pu continuer en raison d'un déplacement concurrent de données (fractionnements/déplacements de pages). La lecture sans verrou a rencontré un état incohérent.
Cause
Pages parcourues déplacées par des mises à jour/suppressions/fractionnements de pages concurrents lors d'une lecture sous le hint NOLOCK ou le niveau d'isolation READ UNCOMMITTED.
Comment la corriger
Relancez la requête (c'est généralement transitoire). Évitez le hint NOLOCK dans la mesure du possible ; utilisez l'isolation READ COMMITTED SNAPSHOT (RCSI) pour des lectures non bloquantes mais cohérentes. Sur les tables à forte charge d'écriture, privilégiez l'isolation snapshot aux lectures sales (dirty reads).
Autres entrées pour ce moteur
- 8623The query processor ran out of internal resources and could not produce a query plan (ressources internes du processeur de requêtes épuisées ; aucun plan produit)
- 4104The multi-part identifier could not be bound (l'identificateur en plusieurs parties n'a pas pu être lié)
- 2714There is already an object named in the database (un objet portant ce nom existe déjà dans la base)
- 50000Erreur personnalisée levée avec RAISERROR
- 3902The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION (COMMIT TRANSACTION sans BEGIN TRANSACTION correspondant)
- 1101Could not allocate a new page because of insufficient disk space in filegroup (impossible d'allouer une nouvelle page : espace disque insuffisant dans le filegroup)
- 3729Cannot DROP because it is being referenced by object (DROP impossible : l'objet est référencé par un autre objet)