Je rencontre un problème avec SQL Server 2005, où une procédure stockée semble se bloquer/se bloquer de manière aléatoire et ne renvoie aucun résultat.SPROC se bloque dans SQL Server 2005
Ce que la procédure stockée fait est d'appeler une fonction, qui à son tour fait une union de deux fonctions différentes - retournant le même type de données, mais à partir de différents critères. Rien n'a avancé. Je ne pense pas que les fonctions soient suspendues, car il y a d'autres SPROC qui appellent les mêmes fonctions sans problème, même lorsque le premier est verrouillé. Une fois que le SPROC se bloque, toutes les autres tentatives d'appel entraîneront un délai d'attente - pas dans l'appel lui-même, mais le temps de réponse sera trop important, car aucun résultat n'est renvoyé, le code lèvera une exception.
Il s'est passé au moins trois fois en deux mois dans un système à faible charge. Redémarrer SQL Server résout la situation, mais je ne considère pas cela comme une «solution» au problème.
J'ai recherché des informations et trouvé quelque chose à propos de la corruption du cache de requêtes. Cependant, c'était en ce qui concerne les chaînes SQL dynamiques, ce qui n'est pas mon problème. Je suppose que cela pourrait toujours être le cache de requête.
Quelqu'un at-il eu le même problème, et si oui, qu'avez-vous fait à ce sujet (ne dites pas "redémarrer SQL Server tous les matins";))? Y at-il un moyen de déboguer le problème pour essayer de trouver exactement quoi et où les choses vont mal? Je ne peux pas recréer le problème, mais quand il apparaîtra à nouveau ce serait bien si je savais où regarder de plus près.
Je ne pense pas que cela fasse une différence, mais juste pour l'enregistrement, le SPROC est appelé à partir du code .NET 3.5, en utilisant le Entity Franework. Je dis que cela ne fait pas de différence, car lorsque j'ai testé simplement exécuter SPROC directement à partir de SQL Server Management Studio, aucun résultat n'est renvoyé non plus.
Je vais regarder dans cela. Est-ce que cela devrait être fait comme une tâche programmée tous les soirs?La reconstruction des index et la mise à jour des statistiques avant chaque requête ne sont pas une solution réalisable. :) –
oui comme meilleure pratique. ça va encore arriver, mais c'est un bon test pour le reniflage des paramètres car le plan stocké est invalidé par les mises à jour statistiques – gbn
Juste pour m'assurer que je comprends tout ici: Donc le problème peut encore se produire, mais il va se "résoudre" reconstruit? Je sens que j'ai quelques lectures à faire. :) –