Je devrais probablement pouvoir trouver une réponse à ceci mais mon Google-fu est faible aujourd'hui. Lorsque j'ai la même procédure stockée appelée plusieurs fois par une application Web, les appels sont-ils en file d'attente ou s'exécutent-ils indépendamment?Procédures stockées SQL Server: font-elles la queue?
Répondre
Dépend du isolation level de ce que fait la procédure stockée. Si le niveau d'isolation est défini sur READ UNCOMMITTED pour toutes les transactions du SP, il n'y a pas de protection et plusieurs threads peuvent effectuer la même transaction en même temps. Si le niveau d'isolation est supérieur, d'autres threads peuvent être verrouillés hors des ressources traitées par votre SP jusqu'à la fin de la transaction, mettant ainsi en file d'attente les autres threads du SP.
Il n'y a pas explicite file d'attente de procédure stockée cependant. Tant que votre base de données dispose de connexions libres et de ressources disponibles, elle génèrera des threads pour satisfaire les requêtes.
Ils fonctionneraient indépendamment. Si elles se mettaient en file d'attente, cela causerait des problèmes d'évolutivité massifs si vous aviez un système occupé qui utilisait beaucoup de procédures stockées. Cela suppose, bien sûr, que les sprocs ne verrouillent pas les ressources d'une manière qui obligerait un appel à attendre que l'autre finisse.
Les deux. Chaque invocation d'une procédure stockée (plus précisément chaque requête envoyée par le client) crée une tâche en SQL, visible au sys.dm_os_tasks
. Les tâches sont assignées aux planificateurs (sys.dm_os_schedulers
) et attendent qu'un ouvrier (sys.dm_os_workers
) soit disponible pour les exécuter. Si le système est très occupé, les tâches seront mises en file d'attente, ce qui est visible dans la colonne work_queue_count
de sys.dm_os_schedulers
. Pour plus de détails, voir Thread and Task Architecture.
Dans des opérations normales, l'effet de mise en file d'attente n'est pas visible car le système récupère immé- diatement les tâches soumises et commence à les exécuter.
Les clients peuvent soumettre une seule demande par connexion (MARS est l'exception, pas la règle). Du point de vue du client, il doit donc mettre en file d'attente les requêtes lors de l'utilisation d'une connexion, mais cela est caché dans le flux de contrôle du programme (il doit attendre le retour d'une requête avant d'en envoyer une nouvelle).
Le lien sur Thread et Task Architecture est exactement le genre de chose que je cherchais. Merci! – Valkyrie
- 1. Procédures stockées système utiles dans SQL Server
- 2. Procédures stockées natives SQL Server 2005
- 3. Tables manquantes de SQL Server et procédures stockées
- 4. SQL Server Enterprise Manager 2005 - procédures stockées ne s'affichent pas
- 5. Procédures stockées dans MS-SQL Server 2005 et Oracle
- 6. Concurrence avec Linq To Sql Procédures stockées
- 7. Entity Framework + Sql Anywhere 11 + Procédures stockées
- 8. Les procédures stockées SQL sont-elles sécurisées?
- 9. Variables et procédures stockées
- 10. Les procédures stockées SQL sont-elles sensibles à la casse?
- 11. Comment puis-je calculer la taille des procédures stockées dans SQL Server 2005?
- 12. Partage de la variable de table entre les procédures stockées dans SQL Server
- 13. Accès aux ensembles de résultats depuis Procédures stockées Transact-SQL SQL Server
- 14. Table SQL et analyseur de colonnes pour les procédures stockées
- 15. Comment précompiler des procédures stockées dans le serveur SQL?
- 16. MySql Procédures stockées Paramètre Échapper
- 17. convertir des procédures stockées du serveur sql à oracle
- 18. Liste des procédures stockées du tableau
- 19. SubSonic - Procédures stockées non-Crud
- 20. Autoriser les procédures stockées d'autorisation
- 21. Motifs pour les procédures stockées?
- 22. Procédures sous-sonnettes et stockées
- 23. Générateur de procédures stockées Simple ADO.NET C#
- 24. ajouter l'index SQL Server mais comment recompiler uniquement les procédures stockées affectées?
- 25. Les autres utilisateurs de SQL Server 2005 Express ne peuvent pas voir les procédures stockées
- 26. DB2 Code SQL pour extraire des procédures stockées
- 27. Implications des performances des commentaires dans les procédures stockées SQL
- 28. SQL Server 2005 - Autorisation de créer des procédures stockées (mais aucun autre objet)
- 29. Quel style d'indentation utilisez-vous dans les procédures stockées SQL Server?
- 30. Impossible de débogage SQL Server 2005 des procédures stockées dans Visual Studio Team System 2008
Vraiment le niveau d'isolement des transactions individuelles et des instructions DML dans la procédure stockée, mais autrement précis. –
Oui, je pourrais probablement le rendre plus clair. – womp
Modifié pour plus de clarté sur le niveau de transaction par rapport au niveau SP. – womp