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

Instructions SQL Server SELECT provoquant un blocage

SELECT peut bloquer les mises à jour. Un modèle de données et une requête correctement conçus ne causeront qu'un blocage minimal et ne poseront pas de problème. L'indice "habituel" WITH NOLOCK est presque toujours la mauvaise réponse. La bonne réponse est d'ajuster votre requête afin qu'elle n'analyse pas d'énormes tables.

Si la requête n'est pas réglable, vous devez d'abord considérer le niveau d'ISOLEMENT D'INSTANTANÉ , deuxièmement, vous devriez envisager d'utiliser INSTANTANÉS DE BASE DE DONNÉES et la dernière option devrait être DIRTY READS (et il est préférable de changer le niveau d'isolement plutôt que d'utiliser le NOLOCK HINT). Notez que les lectures modifiées, comme leur nom l'indique clairement, renverront des données incohérentes (par exemple, votre feuille de total peut être déséquilibrée).