2010-09-28 7 views
0

J'ai remarqué que lors de l'affichage des résultats d'une requête dans une grille dans SQL Server Management Studio, il se produisait souvent un verrouillage des ressources sur le serveur, empêchant l'exécution d'autres requêtes. Pourquoi cela se produit-il, alors que je ne fais qu'ouvrir la table pour la regarder et non pour l'éditer? La déconnexion de la fenêtre de requête du serveur libère les ressources. Je suppose que cela n'arrive pas lorsque je renvoie les résultats sous forme de texte, mais je ne l'ai pas encore testé.Verrouillage de ressources dans SQL Server Management Studio

Quelle est la meilleure pratique pour utiliser des fenêtres de requête dans SSMS?

Répondre

0

Quel type de "verrouillage des ressources sur le serveur"? L'exécution d'une requête SELECT bloquera les verrous en lecture (comportement normal).

Les verrous de lecture n'empêchent pas d'autres lectures simples (SELECT).

Avez-vous d'autres transactions que le niveau d'isolement SERIALIZABLE?

+0

Oui, ce n'est qu'une requête SELECT, alors j'imagine que nous parlons de verrous en lecture, qui empêchent d'autres opérations SELECT. À moins qu'une opération de lecture fasse partie d'une transaction, à quoi bon verrouiller les enregistrements retournés? Il serait plus logique de publier les documents immédiatement. – Billious

+0

OK, je pense que je viens de faire un idiot de moi-même. J'ai oublié que ce que je testais n'était pas une simple procédure SELECT, mais qu'il a réellement généré des résultats dans une table temporaire publique. D'une certaine manière, bien que la fenêtre de requête ait renvoyé des résultats, la transaction avait effectivement échoué et bloquait la table temporaire, empêchant ainsi la même procédure d'être exécutée ailleurs. Pourquoi une table temporaire publique? Une partie de la procédure génère et exécute dynamiquement une chaîne SQL qui génère la table, de sorte qu'une table temporaire normale ne fonctionnerait pas. Merci pour votre aide - j'accepterai votre réponse pour votre problème! – Billious

+0

@Billious: pas de problème. C'est facile à faire! Je suis sûr que je l'ai fait plusieurs fois! ;) –

Questions connexes