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

La procédure stockée se bloque apparemment sans explication

Je pense que cela est lié au reniflage de paramètres et à la nécessité de paramétrer vos paramètres d'entrée en paramètres locaux dans le SP. L'ajout avec recompilation entraîne la recréation du plan d'exécution et élimine une grande partie des avantages d'avoir un SP. Nous utilisions With Recompile sur de nombreux rapports dans le but d'éliminer ce problème de suspension et cela entraînait parfois la suspension de SP qui pouvaient être liés à d'autres verrous et/ou transactions accédant simultanément aux mêmes tables. Voir ce lien pour plus de détailsParameter Sniffing ) dans SQL Server et modifiez vos SP comme suit pour résoudre ce problème :

CRÉER PROCÉDURE [dbo].[SPNAME] @p1 int, @p2 intAS

DÉCLARER @localp1 int, @localp2 int

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