Toon posts:

[MS SQL SERVER] Processen met hoge CPU load detecteren

Pagina: 1
Acties:
  • 244 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Is het mogelijk om met MS SQL Server processen te monitoren en te detecteren als een proces zeer veel CPU tijd eist?

We hebben namelijk wel eens last van een trage database server, wat het hele callcenter beïnvloed. Ik wil graag achterhalen waar de oorzaak ligt.

Het zou mooi zijn als ik automatisch een mailtje krijg als dit gebeurt. En met de informatie erbij om welke client host het gaat en eventueel de query.

Het lukt vaak niet om in te loggen met de enterprise manager omdat de database server dan zo traag is. Ik kan dan dus zelf niet achterhalen welk proces dat is.

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:15
Kijk eens naar de Profiler die bij SQL SErver zit.

(ttz wat je bedoelt met 'processen', je bedoelt daar 'queries' mee, neem ik aan?)

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ik bedoel queries ja.

De profiler is misschien wel een goeie oplossing. Alleen zal ik dan altijd een client aan moeten hebben staan die kijkt naar events met een hoge cpu time. Maar gebruikt de profiler dan weer niet veel processor verbruik op de server?

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 18-05 09:50

pjvandesande

GC.Collect(head);

Ik zou niet continu profilen, dit doe je 1x goed dus profile is een tijdje en daarna los je alle bottlenecks op en is het in principe niet meer nodig.

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:15
Als je de profiler gebruikt dan vertraagt dat natuurlijk je server wel, maar het is afaik de enige manier om trage queries efficient te gaan opsporen.
Je kan natuurlijk wel die profiler eens een uurtje ofzo laten draaien, en dan kijken wat er fout loopt...

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:15
questa schreef op vrijdag 17 december 2004 @ 15:16:
Ik zou niet continu profilen, dit doe je 1x goed dus profile is een tijdje en daarna los je alle bottlenecks op en is het in principe niet meer nodig.
Dat is in een ideale wereld. :P
Het kan zijn dat een oplossing voor een query, een andere bottlenekc veroorzaakt.

Je kan natuurlijk wel de output van de profiler gaan saven, en dan de Index Tuning Wizard erop los laten. Schijnt dat die Wizard bijzonder goed is.

https://fgheysels.github.io/


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 18-05 09:50

pjvandesande

GC.Collect(head);

whoami schreef op vrijdag 17 december 2004 @ 15:21:
[...]
Dat is in een ideale wereld. :P
Het kan zijn dat een oplossing voor een query, een andere bottlenekc veroorzaakt.
Ja, maar dat hou je toch. Maar je moet gewoon zorgen dat alle bottlenecks opgelost worden. Als het weer een anderen veroorzaakt, moet deze ook weer opgelost worden.
Je kan natuurlijk wel de output van de profiler gaan saven, en dan de Index Tuning Wizard erop los laten. Schijnt dat die Wizard bijzonder goed is.
Ik heb hier zelf geen ervaring mee, maar op mijn vorrige werk waren een aantal mensen daar helemaal weg van. :)

Verwijderd

Die profiler werk echt wel goed hoor. Alleen als er veel query's worden afgevuurd zie je soms door de bomen het bos niet meer. Ik heb bij mij op het werk de afgelopen werken geprofiled en iedere de traagste query onder loep genomen. Alle query's werken nu, soms met herschrijven van de stored procedure of met het leggen van betere indexen, onder de 200ms CPU en de database-server staat nu lekker te slapen met een miljoen hits per dag op onze websites :)

De eerlijkheid gebied me wel te zeggen dat een miljoen raw-hits zijn, dus ook static images etc...

Wat je met de profiler ook goed kan zien is inefficiente programma's die veel kleine query's uitvoeren, dubbele query's etc. Die kunnen vaak vervangen worden een enkele SP die al het werk in een keer doet.
Pagina: 1