2010-05-05 9 views
-1

Je sais que je ne peux pas obtenir une réponse spécifique à ma question, mais j'aimerais savoir si je peux trouver les outils pour arriver à ma réponse.Sql Server performance

Ok, nous avons une base de données Sql Server 2008 qui, au cours des 4 derniers jours, a eu des moments où pendant 5-20 minutes ne répond plus pour des requêtes spécifiques.

par exemple. Les requêtes suivantes exécutent dans différentes fenêtres de requête ont en même temps les résultats suivants

SELECT * FROM Assignment --hangs indefinitely 

SELECT * FROM Invoice -- works fine 

Beaucoup des tables ont des index non-cluster pour aider à accélérer SELECTs

Voici ce que je sais: 1) La même requête soit se bloquer indéfiniment ou fonctionner normalement. 2) Dans le Moniteur d'activité dans l'onglet processus il y a normalement autour de 80-100 processus en cours d'exécution

Je pense que ce qui se passe est 1) Un utilisateur met à jour une table 2) Cela provoque un ou plusieurs index pour obtenir mis à jour 3) Un autre utilisateur émet un select pendant la mise à jour de l'index

Existe-t-il un moyen de comprendre pourquoi, à un moment donné, SQL Server ne répond pas à une requête spécifique?

+1

Y a-t-il autre chose sur le système hébergeant l'instance SQL Server? Je recommande de se familiariser avec SQL Server Profiler (http://msdn.microsoft.com/en-us/library/ms187929.aspx) sur une période de temps pour voir ce qui cause réellement le raccrochage. –

Répondre

3

La procédure stockée système sp_who vous indiquera si une connexion est bloquée en raison d'une autre requête.

1

Lorsqu'une requête (comme vos exemples) se bloque, la cause la plus fréquente (selon mon expérience) est qu'une autre requête la bloque. Cela pourrait être apparent.

Pour diagnostiquer cela, j'utilise simplement Activity Monitor dans Sql server Management Studio.

Trouvez le nœud qui est bloqué et grâce à cela, vous pouvez trouver ce qui cause le blocage. Alors au moins vous isolez le problème. L'étape suivante consiste à empêcher le blocage ... Cela dépendra certainement.

Pour moi, ça a été un long BEGIN TRAN contenu.