sql >> Base de Datos >  >> RDS >> Sqlserver

El procedimiento almacenado se bloquea aparentemente sin explicación

Creo que esto está relacionado con el rastreo de parámetros y la necesidad de parametrizar sus parámetros de entrada a parámetros locales dentro del SP. Agregar con recompilación hace que se vuelva a crear el plan de ejecución y elimina gran parte de los beneficios de tener un SP. Estábamos usando With Recompile en muchos informes en un intento de eliminar este problema de bloqueo y, en ocasiones, resultó en bloqueos de SP que pueden haber estado relacionados con otros bloqueos y/o transacciones que accedían a las mismas tablas simultáneamente. Consulte este enlace para obtener más detallesOlfateo de parámetros (o suplantación ) en el servidor SQL y cambie su SP a lo siguiente para arreglar esto:

CREAR PROCEDIMIENTO [dbo].[SPNAME] @p1 int, @p2 intAS

DECLARAR @localp1 int, @localp2 int

SET @[email protected] SET @[email protected]