Jump to content
  • entries
    292
  • comments
    368
  • views
    59872

Παρουσίαση του Activity Monitor στον SQL Server 2008


antonch

718 views

 Share

Πριν ξεκινήσω να περιγράφω το συγκεκριμένο εργαλείο, οφείλω να καταθέσω την άποψη μου γι’ αυτό. ΕΙΝΑΙ ΚΑΤΑΠΛΗΚΤΙΚΟ!!!.

Όσοι έχετε ασχοληθεί από παλία με τον SQL Server, προσωπικά ασχολούμαι από την έκδοση 6.0 (1996), θα έχετε παρακολουθήσει την εξέλιξη του συγκεκριμένου εργαλείου. Σε κάθε έκδοση είχαμε κάποιες βελτιώσεις. Όμως στην έκδοση του SQL Server 2008 πιστεύω ότι έχουμε τις περισσότερες αλλά και τις σημαντικότερες βελτιώσεις. Eίναι μια διαφορετική υλοποίηση του εργαλείου που δίνει μια πληρέστερη εικόνα τόσο στον Database Admin όσο και στον Database Developer.

Ας ξεκινήσω λοιπόν την περιήγηση στο εργαλείο αυτό.

Πρώτη αλλαγή είναι το πως τον ξεκινάς. Δεν είναι πλεόν στο Management του SSMS (SQL Server Management Studio). Αλλά πρέπει να κάνεις δεξί κλικ στον server στον Object Explorer και να επιλέξεις την επιλογή Activity Monitor από το menu επιλογών.

image

Μετά από αυτο θα δούμε το νέο Activity Monitor

image

Όπως θα δείτε υπάρχουν τέσσερα γραφήματα τα οποία δείχνουν

% Processor Time

Το ποσοστό του χρόνου που έχει διανυθεί και τον οποίο ο επεξεργαστής έχει δαπανήσει για να εκτελέσει non-idle threads για τον SQL Server σε όλες τις CPUs.

Waiting Tasks

Ο αριθμός των tasks τα οποία περιμένουν πόρους είτε του επεξεργαστή, είτε για Ι/Ο, είτε για μνήμη.

Database I/Ο

Το transfer rate σε MB/Sec για την μεταφορά των δεδομένων είτε από την μνήμη στον δίσκο, είτε από το δίσκο στη μνήμη, είτε από δίσκο σε δίσκο.

Batch Requests/sec

Ο αριθμός των batches που έχουν σταλθεί στον SQL Server.

Ακριβώς κάτω από τα γραφήματα υπάρχουν τέσσερεις λίστες

Processes

Εδώ βλέπουμε κάθε connection που έχει γίνει στον SQL Server και τι ακριβώς κάνει. Η λίστα περιέχει τις εξής πληροφορίες

image

Session ID

Ο μοναδικός αριθμός που παίρνει κάθε connection το γνωστό SPID. Αν δείτε δίπλα του μια κλεψύδρα εύκολα θα καταλάβετε ότι κάτι περιμένει ή είναι μπλοκαρισμένο από κάποιο άλλο connection.

User Process Flag

Δείχνει τα αν το συγκεκριμένο process είναι internal (τιμή 0) ή user (τιμή 1). By default δείχνει μόνο τα user αλλά μπορείτε να το αλλαξετε πατώντας το drop down που υπάρχει στο header της κολώνας. Υπάρχει και η τιμή All που τα δείχνει όλα.

Login

Το login name με το οποίο το συγκεκριμένο process έχει γίνει.

Database

Η τρέχουσα database στην οποία το connection είναι συνδεδεμένο.

Task State

Δείχνει εάν το process είναι ενεργό ή όχι. Εδώ μπορώ να έχω τις εξής τιμές

Done: Ολοκλήρωση
Pending: Το process περιμένει ένα worker thread
Runnable: Κάτι έχει κάνει λίγο πριν αλλά αυτή την στιγμή δεν κάνει τίποτα αλλά είναι ακόμα συνδεδεμένο.
Running: Κάτι κάνει αυτή την στιγμή
Suspended: Το process αν και έχει δουλειά να κάνει, έχει σταματήσει γιατί κάτι το εμποδίζει να συνεχίσει. Δες το γιατί από την κολώνα Wait Type.

Σχόλιο: Διευκρίνηση για το αφεντικό, αυτό δεν δείχνει αν χρήστης το φυσικό πρόσωπο δηλαδή κοιμάτε ή όχι πάνω στο πληκτρολόγιο του. Το λέω γιατί κάποιος πελάτης, μου είπε κάτι τέτοιο στο παρελθόν!!!.

Command

Δείχνει το command type (πχ SELECT, DBCC, INSERT, AWAITING COMMAND,…) το οποίο εκτελείτε. Προσοχή δεν δείχνει το πραγματικό command. Εαν θέλετε να δείτε το πραγματικό κάντε δεξί κλικ και επιλέξτε Details.

Application

Δείχνει την εφαρμογή με την οποία έχει γίνει το connection. Αυτό μπορεί να ορισθεί από τον developer πάνω στο connection string με το keyword Application Name.

Wait Time (ms)

Εαν το process είναι bloked δείχνει τον χρόνο που είναι σε αναμονή σε milliseconds αλλιώς δείχνει 0.

Wait Type

Δείχνει το event το οποίο περιμένει το process για να συνεχίσει.

Wait Resource

Δείχνει το resource το οποίο περιμένει το process να ελευθερώθεί για να συνεχίσει.

Blocked By

Δείχνει το SPID (Session ID) το οποίο έχει μπλοκάρει το process αυτό.

Head Blocker

Εαν η τιμή είναι 1 αυτό σημαίνει ότι το Session ID που φαίνεται στην Blocked By κολώνα είναι ο επικεφαλής στην αλυσίδα των μπλοκαρισμάτων.

Memory Use (KB)

Δείχνει το ποσό της μνήμης η οποία χρησιμοποιείται από το process αυτό.

Host

Δείχνει το computer name από όπου έχει γίνει το connection αυτό.

Workload Group

Δείχνει το όνομα του Resource Governor workload group για το query αυτό.

Resource Waits

Η λίστα αυτή δείχνει πληροφορίες για την αναμονή στα resources και περιλαμβάνει τις εξής πληροφορίες:

image

Wait Category

Είναι οι κατηγορίες που συγκεντρώνονται για τα wait type statistics. Κάτι αντίστοιχο μπορώ να πάρω με την dmv
sys.dm_os_wait_stats
.

Wait Time (ms/sec)

Ο χρόνος wait time σε ms/sec για όλα τα task τα οποία περιμένουν κάποιο ή κάποια resources στην συγκεκριμένη κατηγορία από το τελευταίο update interval.

Recent Wait Time (ms/sec)

O σταθμικός μέσος του wait time ms/sec για όλα τα task τα οποία περιμένουν ένα ή περισσότερα resources στην κατηγορία από το τελευταίο update interval.

Average Waiter Count

Ο αριθμός των tasks που περιμένουν για κάποιο ή κάποια resources στην συγκεριμένη κατηγορία σε μια δεδομένη στιγμή.

Cumulative Wait Time (sec)

Ο συνολικός χρόνος που τα tasks πρέπει να περιμένουν για ένα ή περισσότερα resources στην κατηγορία από τοτε που ξεκίνησε ο SQL Server ή από τότε που εκτελέσθηκε τελευταία φορά ή DBCC SQLPERF.

clear.gif

Data File I/O

Η λίστα αυτή δείχνει πληροφορίες για τα database files των databases που υπάρχουν στον SQL Server, και περιέχει τις εξής πληροφορίες:

image

Database

Το όνομα της βάσης.

File Name

Το όνομα (φυσικό) του αρχειου της βάσης.

MB/sec Read

Το τελευταίο read activity, σε megabytes ανά second, για το database file.

MB/sec Written

Το τελευταίο write activity, σε megabytes ανά second, για το database file.

Response Time (ms)

Ο Μ.Ο του response time, σε milliseconds, για το τελευταίο read-and-write activity στο database file.

Recent Expensive Queries

Η λίστα αυτή δείχνει πληροφορίες για τα πιό ακριβά σε resources queries τα οποία έχουν τρέξει στον SQL Server τα τελευταία 30 sec.

H πληροφορία βγαίνει από την ένωση των dmv
sys.dm_exec_requests
και
sys.dm_exec_query_stats
και περιλαμβάνει queries τα οποία είναι σε εξέλιξη αλλά και αυτά τα όποία έχουν τελειώσει μέσα στην χρονική περίοδο των 30 sec, και περιλαμβάνει τις εξης πληροφορίες:

image

Query

Το query statement το οποίο γίνεται monitor.

Executions/min

Τα executions ανα λεπτό για το query.

CPU (ms/sec)

Η χρήση της CPU από το query

Physical Reads/sec

Η χρήση ανα second των physical reads από το query.

Logical Writes/sec

Η χρήση ανά second των logical writes από το query.

Logical Reads/sec

Η χρήση ανά second των logical reads από το query.

Average Duration (ms)

Η μέση διάρκεια εκτέλεσης του query σε milliseconds.

Plan Count

O αριθμός των cached query plans για αυτό το query. Ένας μεγάλος αριθμός δείχνει ότι χρειάζεται να στρέψουμε την προσοχή μας στο query αυτό.

 Share

4 Comments


Recommended Comments

Καλημέρα,

Είμαι καινούργιος στο περιβάλλον στου SQL SERVER 2008 και το άρθρο μου φάνηκε ιδιαίτερα χρήσιμο. Παρόλα αυτά έχω μια απορία. Στο Plan Count αναφέρεται πως "ένας μεγάλος αριθμός δείχνει ότι χρειάζεται να στρέψουμε την προσοχή μας στο query αυτό". Υπάρχει ένα query που στη στήλη plan count εμφανίζει την τιμή 34. Η τιμή αυτή θεωρείται υψηλή; Και αν θεωρείται υψηλή από που θα έπρεπε να ξεκινήσουμε να ψάχνουμε το συγκεκριμένο query;

Σας ευχαριστώ εκ των προτέρων.

Link to comment

@jhdrosos

 

Καλησπέρα

 

Θεωρητικά το 34 είναι μεγάλο νούμερο και θα πρέπει να δεις το query parameterization. To οποίο είναι μεγάλη κουβέντα και σου υπόσχομαι ότι σύντομα θα σου έχω ένα post για αυτό. Διότι μόνο έτσι θα καταλάβεις τι πρέπει να κάνεις για αυτό το query. Λυπάμαι για την απάντηση που σου δίνω αλλά δεν είναι από τα θέματα τα οποία δίνεις μια απάντηση έτσι.

 

Φιλικά

Αντώνης

Link to comment

Αρχικά, σας ευχαριστώ πολύ για την απάντηση και συγνώμη για την καθυστερημένη αντίδραση μου.

Παρόλα αυτά οι απορίες μου για το Act;ivity Monitor δεν τελειώνουν εδώ. Η ερώτηση μου αυτή τη φορά είναι αν μπορώ μέσα από το Actiivity Monitor να παρακολουθώ dtsx διεργασίες.

Σας ευχαριστώ εκ των προτέρων.

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...