2009-07-14 5 views
3

Je travaille sur une application Flex qui se connecte via Flash Remoting à ColdFusion 8 avec une base de données SQL Server 2005. La plupart du temps, tout va bien. Cependant, de temps en temps, SQL Server mettra un temps exceptionnellement long à renvoyer des données d'un appel de procédure stockée à ColdFusion; renvoyer des données de CF à Flex est très rapide. Lorsque cela se produit, je peux exécuter exactement le même appel depuis Management Studio sur le serveur SQL ou une page ColdFusion sur le serveur CF et obtenir des résultats immédiatement. L'apparition la plus récente du problème a pris environ 90 secondes pour renvoyer les données à CF. Au cours de la fenêtre de 90 secondes, j'ai pu exécuter la procédure stockée dans Management Studio plusieurs fois.SQL Server prend beaucoup de temps pour renvoyer des données à ColdFusion lors de l'utilisation de Flex

J'ai essayé d'utiliser des pilotes différents et cela ne semble pas important. J'ai également gardé un œil sur les performances du serveur et n'ai rien remarqué d'inhabituel pendant ce temps. Quelqu'un at-il déjà vu ce comportement? Des idées sur ce que je devrais rechercher.

+0

Où se trouve le serveur SQL? Sur la même machine que votre serveur d'applications CF? À distance? –

+1

Semble comme un problème de concurrence/verrouillage à moi ... – Tomalak

Répondre

1

Alors que cela fonctionne lentement, pouvez-vous exécuter "sp_who2" contre votre SQL Server? Si c'est un problème de blocage, vous verrez des lignes qui ont une valeur dans la colonne "BlkBy", ce qui signifie qu'ils attendent un autre processus avant de pouvoir continuer.

Si c'est le cas, alors il y a d'autres procédures de dépannage à faire pour que vous puissiez comprendre ce qui cause les blocs. This article fournit une vue d'ensemble des blocs de verrouillage et de dépannage. Si c'est votre problème, veuillez mettre à jour votre question et ajouter plus de détails, et nous pouvons vous aider à partir de là!

1

Etes-vous absolument sûr que la requête en cours d'exécution dans le SP est la même à chaque fois? Par exemple, est-il possible que, lorsqu'il ralentit, la requête ait un ordre de tri différent? Peut-être 9 fois sur 10, la requête revient rapidement, et cette 10ème fois est lente. B/c les données que vous obtenez sont triées par une colonne qui n'est pas indexée?

Dans ces situations, j'essaierais d'avoir une configuration SQL Trace (en utilisant sql profiler) et de la laisser tourner pendant un certain temps. Une fois que la situation se produit, laissez-la parcourir, puis analysez la trace. Confirmer sans aucun doute que la requête en cours d'exécution est la même que les autres exécutions du même sp

Questions connexes