2009-10-28 4 views
0

Je me suis réveillé ce matin avec une page que notre cluster était en panne. Il est revenu tout de suite. J'ai trouvé des journaux d'erreurs de journal avec des entrées sur IO prenant plus de 15 secondes. Notre serveur de surveillance avait essayé de faire un ping sur le serveur et avait une erreur de timeout.La mise à jour des statistiques semble poser problème

J'ai vérifié un de nos outils de surveillance pour voir ce qui se passait à 4h30 du matin. Il semble que les statistiques soient mises à jour dans l'une de nos grandes bases de données. L'outil montre que notre disque est maxxé. Je vois des temps d'occupation très élevés pour l'un des disques.

Maintenant sqlagent progresse dans toutes les autres bases de données en faisant la même chose par ordre alphabétique. Nous avons des statistiques de mise à jour automatique - mais je pensais que cela se produisait au besoin. Je n'ai aucun travail de mise à jour de statistiques activé en ce moment (que je connais - et le moniteur de travail ne montre aucun travail en cours d'exécution), donc je ne suis pas vraiment sûr de ce qui cause cela.

http://support.microsoft.com/default.aspx?scid=kb;en-us;195565 - confirme mes réflexions sur la nature nécessaire des autostats.

La même chose s'est également produite la nuit dernière vers 18h30 - sur la même grande base de données - quelques statsman stats de ... select.

Les disques sont sur un réseau SAN et nous courons la dernière version de SQL 2005.

Répondre

0

Si vous obtenez 15 secondes erreurs io, je commencerais le diagnostic à un niveau inférieur, vérifiez si un pilote relatif à l'io a récemment été mis à jour par exemple Powerpath emulex etc. Lorsque j'ai rencontré cette erreur avant qu'elle ne soit provoquée par des sous-systèmes défectueux et n'était pas directement SQL, c'est le composant qui a mis le disque sous charge et a révélé le problème.

+0

Nous tirons 300 Mo/s, donc nous allons examiner cela. – Sam

0

L'erreur de 15 secondes n'est pas toujours correcte, elle est parfois causée par la dérive du temps du processeur, voir Event ID 833: I/O requests taking longer than 15 seconds. Vérifiez que les requêtes d'E/S prennent effectivement autant de temps (notez que les compteurs de performance d'OS souffrent du même problème de dérive temporelle).

Les statistiques obsolètes sont les favoris de tout le monde et la première chose à blâmer pour tout problème de performance, mais en vérité, ils sont rarement la cause première. Les statistiques erronées peuvent être diagnées en examinant le plan d'exécution des requêtes problèmes, elles apparaissent comme un écart significatif entre le nombre estimé de lignes et le nombre réel de lignes sur les opérateurs de gamme et d'analyse. Si vous pensez que vous devez faire une mise à jour complète des statistiques chaque nuit (je doute), alors votre sous-système d'E/S doit être planifié pour supporter la capacité requise, si la base de données est grande lire la base de données entière une fois, donc planifier en conséquence, y compris la bande passante d'E/S de SAN à SQL.

+0

Je n'ai pas de travaux de mise à jour des statistiques activés. J'ai vu les commandes de statistiques de mise à jour qui parcourent chaque base de données sur chaque table! Je ne sais pas ce qui cause ça. – Sam

Questions connexes