1. Εισαγωγή
1.1 Τι είναι SQL Server ActivityMonitor;
SQL Server Η Παρακολούθηση Δραστηριότητας είναι μια ενσωματωμένη διάγνωσηostεργαλείο ic μέσα SQL Server Management Studio που εμφανίζει πληροφορίες σχετικά με SQL Server διεργασίες και την επίδρασή τους στην απόδοση του διακομιστή. Σας επιτρέπει να παρακολουθείτε SQL Server διεργασίες, παρακολούθηση αναμονής πόρων, ανάλυση ακριβών ερωτημάτων και παρατήρηση μοτίβων εισόδου/εξόδου—όλα από μία μόνο διεπαφή.
1.2 Γιατί να χρησιμοποιήσετε SQL Server ActivityMonitor;
Το Activity Monitor χρησιμεύει ως η πρώτη γραμμή άμυνάς σας κατά την αντιμετώπιση προβλημάτων απόδοσης. Παρέχει άμεση ορατότητα σε ό,τι συμβαίνει στο SQL Server παράδειγμα χωρίς να απαιτούνται πολύπλοκα ερωτήματα T-SQL ή εργαλεία τρίτων.
Το εργαλείο υπερέχει στο να σας βοηθά να εντοπίζετε γρήγορα συνηθισμένα προβλήματα, όπως ο αποκλεισμός περιόδων λειτουργίας, τα ερωτήματα που απαιτούν μεγάλη χρήση της CPU, οι υπερβολικές εκτελέσεις ερωτημάτων και τα σημεία συμφόρησης εισόδου/εξόδου. Όταν οι χρήστες αναφέρουν ότι μια εφαρμογή είναι αργή ή δεν ανταποκρίνεται, το Activity Monitor σάς βοηθά να προσδιορίσετε εάν ο ένοχος είναι ο διακομιστής βάσης δεδομένων.
Για διαχειριστές βάσεων δεδομένων που δεν εργάζονται με SQL Server Το Activity Monitor προσφέρει καθημερινά ένα προσβάσιμο σημείο εισόδου για την κατανόηση της δραστηριότητας του διακομιστή. Ακόμα και έμπειροι DBA το χρησιμοποιούν ως εργαλείο τους.tarσημείο αναφοράς για τις έρευνες απόδοσης.
1.3 Παρακολούθηση Δραστηριότητας έναντι Άλλων Εργαλείων Παρακολούθησης
Ενώ η Παρακολούθηση Δραστηριότητας είναι πολύτιμη, είναι σημαντικό να κατανοήσετε πώς συγκρίνεται με άλλες επιλογές παρακολούθησης:
Παρακολούθηση δραστηριότητας έναντι sp_WhoIsActive: Το Activity Monitor παρέχει μια γραφική διεπαφή με πολλαπλά τμήματα παραθύρων, ενώ το sp_WhoIsActive είναι μια ολοκληρωμένη αποθηκευμένη διαδικασία που προσφέρει πιο λεπτομερείς πληροφορίες σε ένα μόνο σύνολο αποτελεσμάτων. Το sp_WhoIsActive εμφανίζει συγκεκριμένους τύπους αναμονής που ομαδοποιεί το Activity Monitor και παρέχει πιο λεπτομερείς πληροφορίες αποκλεισμού.
Παρακολούθηση δραστηριότητας έναντι sp_who2: Η παραδοσιακή εντολή sp_who2 εμφανίζει βασικές πληροφορίες περιόδου λειτουργίας, αλλά το Activity Monitor προχωρά ένα βήμα παραπέρα, εμφανίζοντας στατιστικά στοιχεία αναμονής, ακριβά ερωτήματα και μετρήσεις εισόδου/εξόδου σε μια οργανωμένη, οπτική μορφή.
Παρακολούθηση δραστηριότητας έναντι εργαλείων τρίτων: Οι εμπορικές λύσεις παρακολούθησης, όπως το SolarWinds Database Performance Analyzer, προσφέρουν ιστορική παρακολούθηση, ειδοποιήσεις και προηγμένες αναλύσεις που δεν διαθέτει το Activity Monitor. Ωστόσο, το Activity Monitor δεν απαιτεί πρόσθετες γνώσεις.ost ή εγκατάσταση.
1.4 Βασικά οφέλη για τους διαχειριστές βάσεων δεδομένων
Το Activity Monitor προσφέρει πολλά πλεονεκτήματα που το καθιστούν ένα απαραίτητο εργαλείο DBA:
- Μηδέν Γost: Ως ενσωματωμένο SQL Server Με τη λειτουργία Management Studio, δεν απαιτείται τέλος αδειοδότησης ή προσπάθεια ανάπτυξης.
- Παρακολούθηση σε πραγματικό χρόνο: Δείτε την τρέχουσα δραστηριότητα του διακομιστή καθώς συμβαίνει, με διαμορφώσιμα διαστήματα ανανέωσης από 1 δευτερόλεπτο έως 1 ώρα.
- Ολοκληρωμένες Δράσεις: Κάντε δεξί κλικ στις διεργασίες για να τερματίσετε τις συνεδρίες, να δείτε λεπτομέρειες ερωτήματος ή να ξεκινήσετε SQL Server Ίχνη Profiler—όλα μέσα από το εργαλείο.
- Πολλαπλές προοπτικές: Δείτε την εύρυθμη λειτουργία του διακομιστή από διαφορετικές οπτικές γωνίες μέσα από πέντε εξειδικευμένα παράθυρα, καθένα από τα οποία εστιάζει σε συγκεκριμένες πτυχές της απόδοσης.
- Γρήγορη αντιμετώπιση προβλημάτων: Προσδιορίστε το most συνηθισμένα προβλήματα απόδοσης μέσα σε λίγα λεπτά, επιταχύνοντας τον μέσο χρόνο επίλυσής τους.
- Χαμηλό εμπόδιο εισόδου: Δεν απαιτούνται προηγμένες γνώσεις για να ξεκινήσετε να χρησιμοποιείτε το εργαλείο αποτελεσματικά, αν και σε βάθος SQL Server Η εμπειρογνωμοσύνη βοηθά στην ερμηνεία.
2. Απόκτηση Starμε την Παρακολούθηση Δραστηριότητας
Προτού μπορέσετε να αξιοποιήσετε αποτελεσματικά το Activity Monitor, πρέπει να κατανοήσετε τις προϋποθέσεις, τα απαιτούμενα δικαιώματα και τις διάφορες μεθόδους για την εκκίνηση του εργαλείου.
2.1 Προαπαιτούμενα και Απαιτήσεις Συστήματος
Χρησιμοποιώ SQL Server Παρακολούθηση Δραστηριότητας, χρειάζεστε SQL Server Management Studio (SSMS) εγκατεστημένο στον τοπικό σας υπολογιστή ή σε έναν διακομιστή jump. Το εργαλείο Activity Monitor επανασχεδιάστηκε σημαντικά το SQL Server 2008, επομένως οι πληροφορίες σε αυτόν τον οδηγό ισχύουν για SQL Server 2008 και νεότερες εκδόσεις.
Πρέπει να έχετε συνδεσιμότητα δικτύου με το SQL Server την περίπτωση που θέλετε να παρακολουθήσετε. Για cloud-hosted βάσεις δεδομένων, συνήθως θα χρειαστείτε μια σύνδεση VPN ή σωστά διαμορφωμένους κανόνες τείχους προστασίας για να αποκτήσετε πρόσβαση στην παρουσία.
Το Activity Monitor λειτουργεί με όλες τις εκδόσεις του SQL Server, συμπεριλαμβανομένων των Express, Standard και Enterprise. Το ίδιο το εργαλείο εκτελείται στον υπολογιστή-πελάτη σας εντός του SSMS, επομένως οι πόροι του διακομιστή επηρεάζονται μόνο από τα ερωτήματα παρακολούθησης που εκτελεί.
2.2 Απαιτούμενα Δικαιώματα
Τα κατάλληλα δικαιώματα είναι απαραίτητα για τη σωστή λειτουργία της Παρακολούθησης Δραστηριότητας. Χωρίς τα κατάλληλα δικαιώματα, ενδέχεται να δείτε μια κενή οθόνη ή να λάβετε σφάλματα άρνησης πρόσβασης.
2.2.1 Άδεια ΠΡΟΒΟΛΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΙΑΚΟΜΙΣΤΗ
The ΠΡΟΒΟΛΗ ΚΑΤΑΣΤΑΣΗΣ ΔΙΑΚΟΜΙΣΤΗ Η κύρια απαίτηση για τη χρήση του Activity Monitor είναι η άδεια. Αυτή η άδεια σε επίπεδο διακομιστή σάς επιτρέπει να βλέπετε όλες τις ενεργές διεργασίες και τις σχετικές μετρήσεις τους.
Για να παραχωρήσει αυτό το δικαίωμα, ένας διαχειριστής διακομιστή μπορεί να εκτελέσει:
GRANT VIEW SERVER STATE TO [YourLoginName];
Χωρίς την επιλογή ΠΡΟΒΟΛΗ ΚΑΤΑΣΤΑΣΗΣ ΔΙΑΚΟΜΙΣΤΗ, η Παρακολούθηση δραστηριότητας ενδέχεται να ανοίξει αλλά να μην εμφανίζει δεδομένα σε κανένα από τα παράθυρα της.
2.2.2 Δικαιώματα σε επίπεδο βάσης δεδομένων
Για να προβάλετε πληροφορίες στο παράθυρο Εισόδου/Εξόδου Αρχείου Δεδομένων, χρειάζεστε πρόσθετα δικαιώματα. Συγκεκριμένα, πρέπει να έχετε έναν από τους ακόλουθους συνδυασμούς:
- ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ άδεια, ή
- ΤΡΟΠΟΠΟΙΗΣΗ ΟΠΟΙΑΣΔΗΠΟΤΕ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ άδεια, ή
- ΔΕΙΤΕ ΟΠΟΙΟΝΔΗΠΟΤΕ ΟΡΙΣΜΟ άδεια
Αυτά τα δικαιώματα πρέπει να συνδυαστούν με ΠΡΟΒΟΛΗ ΚΑΤΑΣΤΑΣΗΣ ΔΙΑΚΟΜΙΣΤΗ για πλήρη λειτουργικότητα της Παρακολούθησης Δραστηριότητας.
2.2.3 Αντιμετώπιση προβλημάτων δικαιωμάτων
Εάν ανοίξει η Παρακολούθηση Δραστηριότητας αλλά δεν εμφανίζει δεδομένα, τα δικαιώματα είναι τα μost κοινή αιτία. Ελέγξτε ότι η παράμετρος VIEW SERVER STATE (ΚΑΤΑΣΤΑΣΗ ΔΙΑΚΟΜΙΣΤΗ ΠΡΟΒΟΛΗΣ) έχει εκχωρηθεί στη σύνδεσή σας σε επίπεδο διακομιστή. Μπορείτε να επαληθεύσετε τα δικαιώματά σας εκτελώντας:
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
Αναζητήστε την ένδειξη «ΠΡΟΒΟΛΗ ΚΑΤΑΣΤΑΣΗΣ ΔΙΑΚΟΜΙΣΤΗ» στη στήλη permission_name. Εάν λείπει, επικοινωνήστε με τον διαχειριστή της βάσης δεδομένων σας για να την εκχωρήσετε.
2.3 Πώς να ανοίξετε την Παρακολούθηση Δραστηριότητας στο SSMS
SQL Server Το Management Studio παρέχει τέσσερις διαφορετικές μεθόδους για την εκκίνηση του Activity Monitor, παρέχοντάς σας ευελιξία με βάση τις προτιμήσεις ροής εργασίας σας.
2.3.1 Μέθοδος 1: Από τη Γραμμή Εργαλείων
Ο πιο γρήγορος τρόπος για να ανοίξετε την Παρακολούθηση Δραστηριότητας είναι χρησιμοποιώντας το εικονίδιο της γραμμής εργαλείων:
- Συνδεθείτε με το δικό σας SQL Server παράδειγμα στο SQL Server Στούντιο διαχείρισης.
- Εντοπίστε το εικονίδιο Παρακολούθησης Δραστηριότητας στην τυπική γραμμή εργαλείων (μοιάζει με γράφημα ράβδων με ένα πράσινο κουμπί αναπαραγωγής).
- Κάντε κλικ στο εικονίδιο για να εκκινήσετε την Παρακολούθηση Δραστηριότητας.
Αυτή η μέθοδος είναι η ταχύτερη όταν εργάζεστε ήδη σε SSMS και χρειάζεται να ελέγξετε γρήγορα τη δραστηριότητα του διακομιστή.
2.3.2 Μέθοδος 2: Από την Εξερεύνηση Αντικειμένων
Μπορείτε επίσης να εκκινήσετε την Παρακολούθηση Δραστηριότητας απευθείας από την Εξερεύνηση Αντικειμένων:
- Στην Εξερεύνηση αντικειμένων, εντοπίστε το SQL Server περίπτωση που θέλετε να παρακολουθήσετε.
- Κάντε δεξί κλικ στο όνομα της παρουσίας.
- Αγορά Δραστηριότητα Monitor από το μενού περιβάλλοντος.
Αυτή η μέθοδος είναι χρήσιμη κατά τη σύνδεση σε πολλούς διακομιστές, καθώς διασφαλίζει ότι παρακολουθείτε τη σωστή παρουσία.
2.3.3 Μέθοδος 3: Χρήση συντόμευσης πληκτρολογίου
Για χρήστες που επικεντρώνονται στο πληκτρολόγιο, SQL Server Το Management Studio παρέχει μια ειδική συντόμευση:
- Βεβαιωθείτε ότι το SSMS είναι το ενεργό παράθυρο και ότι είστε συνδεδεμένοι σε μια παρουσία.
- Τύπος Ctrl + άλλος + A.
- Η Παρακολούθηση Δραστηριότητας θα ανοίξει για την τρέχουσα επιλεγμένη παρουσία στην Εξερεύνηση Αντικειμένων.
Σημειώστε ότι το Activity Monitor θα συνδεθεί με οποιαδήποτε παρουσία διακομιστή έχετε επιλέξει στην Εξερεύνηση Αντικειμένων, επομένως βεβαιωθείτε ότι έχετε επιλέξει τη σωστή παρουσία πριν χρησιμοποιήσετε αυτήν τη συντόμευση.
2.3.4 Μέθοδος 4: Από το μενού Επιλογές (StarΔιαμόρφωση tup)
Εάν χρησιμοποιείτε συχνά το Activity Monitor, μπορείτε να ρυθμίσετε το SSMS ώστε να το εκκινεί αυτόματα κάθε φορά που το χρησιμοποιείτε.tarτην εφαρμογή:
- In SQL Server Στούντιο Διαχείρισης, μεταβείτε στο Εργαλεία -> Επιλογές.
- Στο παράθυρο διαλόγου Επιλογές, αναπτύξτε το Περιβάλλον, Και στη συνέχεια επιλέξτε Starσωλήνας.
- Από το Στο starσωλήνας αναπτυσσόμενη λίστα, επιλέξτε Άνοιγμα Εξερεύνησης Αντικειμένων και Παρακολούθησης Δραστηριότητας.
- Αγορά OK.
Την επόμενη φορά που θα εκκινήσετε το SSMS και θα συνδεθείτε σε έναν διακομιστή, το Activity Monitor θα ανοίξει αυτόματα μαζί με το Object Explorer.
3. Κατανόηση των παραθύρων παρακολούθησης δραστηριότητας
Το Activity Monitor οργανώνει τις πληροφορίες σε πέντε επεκτάσιμα παράθυρα, καθένα από τα οποία παρέχει μια διαφορετική οπτική γωνία για τη δραστηριότητα του διακομιστή. Η κατανόηση του τι εμφανίζει κάθε παράθυρο είναι ζωτικής σημασίας για την αποτελεσματική αντιμετώπιση προβλημάτων.
3.1 Παράθυρο Επισκόπησης
Το παράθυρο Επισκόπηση παρουσιάζει τέσσερα γραφήματα σε πραγματικό χρόνο που σας δίνουν μια γρήγορη εικόνα της εύρυθμης λειτουργίας σας. SQL Server παράδειγμα. Αυτά τα γραφήματα ενημερώνονται σε ένα διαμορφώσιμο χρονικό διάστημα και σας βοηθούν να εντοπίσετε μη φυσιολογικά μοτίβα με μια ματιά.
3.1.1 % Χρόνος Επεξεργαστή
Αυτό το γράφημα δείχνει το ποσοστό του χρόνου που ο επεξεργαστής αφιερώνει στην εκτέλεση μη αδρανειακών νημάτων για το SQL Server σε όλες τις CPU. Η τιμή αντιπροσωπεύει SQL Serverτην αξιοποίηση του επεξεργαστή του, όχι ολόκληρη την χρήση της CPU του διακομιστή.
Εάν βλέπετε συνεχώς χρόνο επεξεργαστή στο 100% ή κοντά στο 100%, ο διακομιστής σας έχει περιορισμένη CPU. Αυτό θα μπορούσε να υποδηλώνει αναποτελεσματικά ερωτήματα, ελλείποντα ευρετήρια ή ανεπαρκή χωρητικότητα υλικού. Χρησιμοποιήστε το παράθυρο Πρόσφατα ακριβά ερωτήματα για να εντοπίσετε ποια ερωτήματα καταναλώνουν χρόνο.ost CPU.
3.1.2 Εργασίες σε αναμονή
Αυτή η μέτρηση εμφανίζει τον αριθμό των εργασιών που περιμένουν την απελευθέρωση πόρων πριν προχωρήσουν. Οι εργασίες ενδέχεται να περιμένουν CPU, I/O, μνήμη ή κλειδώματα.
Ένας σταθερά υψηλός αριθμός εργασιών σε αναμονή υποδηλώνει διένεξη πόρων. Το παράθυρο "Αναμονές πόρων" παρέχει περισσότερες λεπτομέρειες σχετικά με τους τύπους πόρων που προκαλούν αναμονές.
3.1.3 Είσοδος/Έξοδος βάσης δεδομένων (MB/s)
Αυτό το γράφημα δείχνει τον ρυθμό μεταφοράς δεδομένων μεταξύ μνήμης και δίσκου. Συνδυάζει τόσο τις αναγνώσεις όσο και τις εγγραφές, μετρημένες σε megabyte ανά δευτερόλεπτο.
Οι αιχμές στις εισόδους/εξόδους βάσης δεδομένων μπορούν να υποδηλώνουν ερωτήματα που εκτελούν σαρώσεις μεγάλων πινάκων, υπερβολική δραστηριότητα καταγραφής ή λειτουργίες σημείων ελέγχου. Το παράθυρο εισόδου/εξόδου αρχείου δεδομένων αναλύει τη δραστηριότητα εισόδου/εξόδου ανά βάση δεδομένων και αρχείο.
3.1.4 Αιτήματα παρτίδας/δευτ.
Αυτή η μετρική αντιπροσωπεύει τον αριθμό των SQL Server δέσμες που λαμβάνονται από την παρουσία ανά δευτερόλεπτο. Μια δέσμη μπορεί να είναι μία μόνο δήλωση ή πολλαπλές δηλώσεις που υποβάλλονται μαζί.
Αυτή η τιμή σάς δίνει μια εικόνα της συνολικής δραστηριότητας του διακομιστή. Οι απότομες μειώσεις στα μαζικά αιτήματα κατά τις κανονικές εργάσιμες ώρες ενδέχεται να υποδηλώνουν προβλήματα συνδεσιμότητας εφαρμογών ή προβλήματα που αντιμετωπίζουν οι χρήστες.
3.1.5 Ρύθμιση διαστημάτων ανανέωσης
Μπορείτε να προσαρμόσετε τη συχνότητα με την οποία το Activity Monitor ενημερώνει τα δεδομένα του:
- Κάντε δεξί κλικ οπουδήποτε στο παράθυρο Επισκόπηση.
- Αγορά Ανανέωση διαστήματος.
- Επιλέξτε ένα διάστημα από τις προκαθορισμένες τιμές: 1 δευτερόλεπτο, 5 δευτερόλεπτα, 10 δευτερόλεπτα (προεπιλογή), 30 δευτερόλεπτα, 1 λεπτό ή 1 ώρα.
Ο ορισμός διαστημάτων ανανέωσης κάτω των 10 δευτερολέπτων αυξάνει την επιβάρυνση παρακολούθησης στον διακομιστή σας. Για συστήματα παραγωγής που υπόκεινται σε μεγάλο φόρτο εργασίας, εξετάστε το ενδεχόμενο χρήσης διαστημάτων 30 δευτερολέπτων ή μεγαλύτερων για την ελαχιστοποίηση των επιπτώσεων.
3.2 Παράθυρο Διεργασιών
Το παράθυρο "Διαδικασίες" εμφανίζει πληροφορίες σχετικά με τις συνεδρίες που εκτελούνται αυτήν τη στιγμή στο SQL Server παράδειγμα. Αυτό το παράθυρο είναι απαραίτητο για τον εντοπισμό του ποιος κάνει τι και τον εντοπισμό προβλημάτων αποκλεισμού.
3.2.1 Κατανόηση των πληροφοριών διεργασίας
Κάθε γραμμή στο παράθυρο "Διαδικασίες" αντιπροσωπεύει μια ενεργή συνεδρία στον διακομιστή. Το παράθυρο εμφανίζει συνεδρίες από όλες τις βάσεις δεδομένων και όλους τους χρήστες, παρέχοντάς σας μια ολοκληρωμένη εικόνα της δραστηριότητας του διακομιστή.
Οι πληροφορίες που εμφανίζονται περιλαμβάνουν το όνομα σύνδεσης, το όνομα της εφαρμογής, το hostόνομα, βάση δεδομένων στην οποία γίνεται πρόσβαση και τρέχουσα εντολή. Αυτό σας βοηθά να συσχετίσετε τη δραστηριότητα της βάσης δεδομένων με συγκεκριμένους χρήστες ή εφαρμογές.
3.2.2 Επεξήγηση Βασικών Στηλών
Η κατανόηση των βασικών στηλών σάς βοηθά να ερμηνεύετε αποτελεσματικά τις πληροφορίες της διαδικασίας:
- Αναγνωριστικό συνεδρίας: Ένα μοναδικό αναγνωριστικό για κάθε σύνδεση. Οι διεργασίες του συστήματος χρησιμοποιούν αρνητικά αναγνωριστικά περιόδου σύνδεσης.
- Διαδικασία χρήστη: Υποδεικνύει εάν πρόκειται για συνεδρία χρήστη (Ναι) ή για διεργασία συστήματος (Όχι).
- Σύνδεση: The SQL Server σύνδεση ή λογαριασμός Windows που σχετίζεται με την περίοδο λειτουργίας.
- Βάση δεδομένων: Το τρέχον περιβάλλον βάσης δεδομένων για την περίοδο λειτουργίας.
- Κατάσταση εργασίας: Δείχνει τι κάνει η συνεδρία αυτήν τη στιγμή (ΤΡΕΞΙΜΟ, ΑΝΑΣΤΟΛΗ, ΥΠΝΟ, κ.λπ.).
- Εντολή: Ο τύπος της εντολής που εκτελείται (SELECT, INSERT, UPDATE, κ.λπ.).
- Εφαρμογή: Το όνομα της εφαρμογής που δημιούργησε τη σύνδεση.
- Χρόνος αναμονής: Για πόσο χρόνο (σε χιλιοστά του δευτερολέπτου) η συνεδρία αναμένει πόρους.
- Τύπος αναμονής: Ο συγκεκριμένος τύπος πόρου που περιμένει η συνεδρία.
- Χρόνος CPU: Συνολικός χρόνος CPU που καταναλώθηκε από αυτήν την περίοδο σύνδεσης από τη σύνδεσή της.
- Χρήση μνήμης: Ποσότητα μνήμης (σε KB) που έχει εκχωρηθεί αυτήν τη στιγμή στην περίοδο λειτουργίας.
3.2.3 Διαδικασίες φιλτραρίσματος και ταξινόμησης
Το παράθυρο "Διαδικασίες" περιλαμβάνει ισχυρές δυνατότητες φιλτραρίσματος που σας βοηθούν να εστιάσετε σε σχετικές συνεδρίες:
- Κάντε κλικ στο αναπτυσσόμενο βέλος σε οποιαδήποτε κεφαλίδα στήλης.
- Το φίλτρο εμφανίζει τις διαθέσιμες τιμές για αυτήν τη στήλη, συμπεριλαμβανομένων Όλα, Κενάκαι Μη Κενά.
- Επιλέξτε συγκεκριμένες τιμές για να φιλτράρετε την εμφάνιση μόνο σε αυτές τις συνεδρίες.
Για παράδειγμα, μπορείτε να φιλτράρετε Κατάσταση εργασίας για να εμφανίσετε μόνο τις συνεδρίες που εκτελούνται ή να φιλτράρετε βάση δεδομένων για να δείτε τη δραστηριότητα σε μια συγκεκριμένη βάση δεδομένων.
Μπορείτε επίσης να ταξινομήσετε κατά οποιαδήποτε στήλη κάνοντας κλικ στην κεφαλίδα της. Κάντε κλικ μία φορά για αύξουσα σειρά, δύο φορές για φθίνουσα σειρά.
3.2.4 Προσδιορισμός Αποκλεισμένων και Αποκλεισμένων Περιόδων Λειτουργίας
Το παράθυρο "Διαδικασίες" σάς βοηθά να εντοπίσετε σενάρια αποκλεισμού όπου μια συνεδρία εμποδίζει άλλες να προχωρήσουν:
- Αποκλεισμένο από: Εμφανίζει το αναγνωριστικό περιόδου σύνδεσης (Session ID) της περιόδου σύνδεσης που αποκλείει αυτήν την περίοδο σύνδεσης. Εάν αυτή η στήλη περιέχει μια τιμή, η περίοδος σύνδεσης αναμένει ένα κλείδωμα που διατηρείται από μια άλλη περίοδο σύνδεσης.
- Αποκλεισμός Κεφαλής: Εμφανίζει την τιμή '1' εάν αυτή η συνεδρία αποκλείει άλλες συνεδρίες αλλά η ίδια δεν είναι αποκλεισμένη. Αυτή είναι η βασική αιτία μιας αλυσίδας αποκλεισμού.
Για να διερευνήσετε ένα πρόβλημα αποκλεισμού, προσδιορίστε πρώτα τον κύριο αποκλειστή (την περίοδο λειτουργίας που σημειώνεται με '1' στη στήλη Κύριος αποκλειστής) και, στη συνέχεια, εξετάστε τι κάνει και αποφασίστε εάν θα τον αφήσετε να την ολοκληρώσει ή θα την τερματίσει.
3.2.5 Ενέργειες επεξεργασίας (Κλείδωμα, Λεπτομέρειες, Παρακολούθηση)
Η Παρακολούθηση Δραστηριότητας σάς επιτρέπει να εκτελείτε ενέργειες σε μεμονωμένες συνεδρίες:
- Κάντε δεξί κλικ σε οποιαδήποτε συνεδρία στο παράθυρο Διεργασίες.
- Θα δείτε αρκετές επιλογές:
- Καθέκαστα: Εμφανίζει την τελευταία εντολή που εκτελέστηκε από αυτήν την συνεδρία.
- Διαδικασία τερματισμού: Τερματίζει την συνεδρία (χρησιμοποιήστε με προσοχή).
- Διαδικασία ανίχνευσης σε SQL Server Προφίλ: Εγκαινιάζει SQL Server Κατατομή και φιλτράρει αυτόματα για να εμφανίσει μόνο τη δραστηριότητα από αυτήν την περίοδο σύνδεσης.
Η επιλογή Λεπτομέρειες εμφανίζει το κείμενο της εντολής, αλλά σημειώστε ότι αυτό είναι το τελευταία Η εντολή εκτελέστηκε—ενδέχεται να μην εκτελείται ακόμα. Η επιλογή Trace (Ανίχνευση) είναι ιδιαίτερα χρήσιμη όταν χρειάζεται να δείτε την πλήρη ακολουθία εντολών που εκτελεί μια συνεδρία.
3.3 Παράθυρο Αναμονής Πόρων
Το παράθυρο "Αναμονή πόρων" συνοψίζει τα στατιστικά στοιχεία αναμονής, δείχνοντας τους τύπους περιόδων λειτουργίας πόρων που περιμένουν για m.ost συχνά. Αυτές οι πληροφορίες είναι κρίσιμες για τη διάγνωση σημείων συμφόρησης στην απόδοση.
3.3.1 Κατανόηση των Στατιστικών Αναμονής
Κατά τη SQL Server Εάν δεν είναι δυνατή η άμεση έγκριση ενός αιτήματος πόρου (όπως κλείδωμα, χρόνο CPU ή μνήμη), η αιτούσα εργασία εισέρχεται σε κατάσταση αναμονής. Τα στατιστικά στοιχεία αναμονής παρακολουθούν αυτές τις περιόδους αναμονής και σας βοηθούν να κατανοήσετε πού αφιερώνει ο διακομιστής χρόνο αναμονής αντί να εργάζεται.
Το παράθυρο "Αναμονές πόρων" συλλέγει δεδομένα από προβολές δυναμικής διαχείρισης συστήματος, όπως sys.dm_os_wait_stats και sys.dm_exec_requests. Σε κάθε διάστημα ανανέωσης, υπολογίζει τη διαφορά μεταξύ του τρέχοντος και του προηγούμενου στιγμιότυπου, εμφανίζοντας τον ρυθμό συσσώρευσης για κάθε τύπο αναμονής.
3.3.2 Κατηγορίες Αναμονής
Το Activity Monitor ομαδοποιεί εκατοντάδες μεμονωμένους τύπους αναμονής σε ευρύτερες κατηγορίες για απλοποίηση της ερμηνείας:
- ΕΠΕΞΕΡΓΑΣΤΗΣ: Εργασίες που περιμένουν να γίνει διαθέσιμος ο χρόνος της CPU.
- Μάνταλο buffer: Αναμονή για αντικείμενα βραχυπρόθεσμου συγχρονισμού που προστατεύουν την πρόσβαση σε σελίδες δεδομένων στη μνήμη. Αυτή η κατηγορία περιλαμβάνει αναμονές κλειδώματος σελίδας (PAGELATCH_*).
- Κλείδωμα: Αναμονές που προκαλούνται από συνεδρίες που κρατούν κλειδώματα που χρειάζονται άλλες συνεδρίες.
- Μνήμη: Αναμένει για παραχωρήσεις μνήμης που απαιτούνται από λειτουργίες όπως η ταξινόμηση και ο κατακερματισμός.
- Είσοδος/Έξοδος Δικτύου: Περιμένει την αποστολή ή τη λήψη δεδομένων από τους πελάτες.
- SQL CLR: Αναμονές που σχετίζονται με την εκτέλεση του Common Language Runtime.
Ενώ αυτή η ομαδοποίηση απλοποιεί την προβολή, αποκρύπτει επίσης σημαντικές λεπτομέρειες. Για παράδειγμα, το "Buffer Latch" μπορεί να ομαδοποιήσει τις αναμονές PAGELATCH_SH, PAGELATCH_UP και PAGELATCH_EX, οι οποίες έχουν διαφορετικές επιπτώσεις στην απόδοση.
3.3.3 Ερμηνεία Χρόνου Αναμονής και Εργασιών Αναμονής
Το παράθυρο "Αναμονές πόρων" εμφανίζει δύο βασικές μετρήσεις για κάθε κατηγορία αναμονής:
- Συνολικός χρόνος αναμονής (ms): Τα συνολικά χιλιοστά του δευτερολέπτου που συσσωρεύτηκαν κατά τη διάρκεια του τρέχοντος διαστήματος ανανέωσης για αυτήν την κατηγορία αναμονής.
- Εργασίες αναμονής: Ο αριθμός των εργασιών που αναμένουν πόρους αυτήν τη στιγμή σε αυτήν την κατηγορία.
Η τιμή του χρόνου αναμονής είναι ιδιαίτερα ενδιαφέρουσα. Εάν έχετε ένα διάστημα ανανέωσης 10 δευτερολέπτων και βλέπετε 20,000ms χρόνου αναμονής για μια κατηγορία, αυτό υποδηλώνει πολλαπλές ταυτόχρονες αναμονές (20,000ms / 10,000ms = μέσος όρος 2 ταυτόχρονων αναμονών κατά τη διάρκεια του διαστήματος).
3.3.4 Εντοπισμός σημείων συμφόρησης στην απόδοση
Χρησιμοποιήστε το παράθυρο Αναμονή πόρων για να προσδιορίσετε πού ξοδεύει ο διακομιστής σας τα χρήματα.ost χρόνος αναμονής:
- Αναπτύξτε το παράθυρο Αναμονή πόρων.
- Παρατηρήστε τις κατηγορίες αναμονής που συγκεντρώνουν τους υψηλότερους χρόνους αναμονής.
- Ταξινόμηση κατά Συνολικός χρόνος αναμονής για να δείτε ποιοι πόροι είναι most βεβιασμένος.
Οι υψηλές αναμονές κλειδώματος buffer συχνά υποδεικνύουν διαφωνίες για σελίδες δεδομένων στη μνήμη, κάτι που μπορεί να υποδηλώνει σημεία συμφόρησης εισόδου/εξόδου ή διαφωνίες στο tempdb. Οι υψηλές αναμονές κλειδώματος υποδηλώνουν προβλήματα αποκλεισμού. Οι υψηλές αναμονές μνήμης υποδηλώνουν ανεπαρκείς εκχωρήσεις μνήμης για λειτουργίες ερωτημάτων.
3.4 Παράθυρο Εισόδου/Εξόδου Αρχείου Δεδομένων
Το παράθυρο Εισόδου/Εξόδου Αρχείου Δεδομένων εμφανίζει τη δραστηριότητα του δίσκου για κάθε αρχείο βάσης δεδομένων στον διακομιστή σας, βοηθώντας σας να εντοπίσετε σημεία συμφόρησης Εισόδου/Εξόδου και να κατανοήσετε τα μοτίβα χρήσης του δίσκου.
3.4.1 Κατανόηση μετρικών εισόδου/εξόδου
Το παράθυρο Εισόδου/Εξόδου Αρχείου Δεδομένων εμφανίζει διάφορες μετρήσεις για κάθε αρχείο βάσης δεδομένων:
- Βάση δεδομένων: Το όνομα της βάσης δεδομένων.
- Τύπος αρχείου: Είτε Δεδομένα (συμπεριλαμβανομένων πινάκων και ευρετηρίων) είτε Αρχείο καταγραφής (αρχείο καταγραφής συναλλαγών).
- Λογικό όνομα: Το λογικό όνομα αρχείου όπως ορίζεται στο SQL Server.
- MB/δευτ. Ανάγνωση: Ο ρυθμός ανάγνωσης δεδομένων από αυτό το αρχείο.
- MB/δευτ. Γράφτηκε: Ο ρυθμός εγγραφής δεδομένων σε αυτό το αρχείο.
- Χρόνος απόκρισης (ms): Μέσος χρόνος απόκρισης για λειτουργίες εισόδου/εξόδου σε αυτό το αρχείο.
Αυτές οι μετρήσεις ανανεώνονται στο ίδιο χρονικό διάστημα με το παράθυρο Επισκόπηση, παρέχοντάς σας ορατότητα σε πραγματικό χρόνο στη δραστηριότητα του δίσκου.
3.4.2 Προσδιορισμός σημείων συμφόρησης εισόδου/εξόδου
Παρακολουθήστε αυτά τα μοτίβα που υποδεικνύουν προβλήματα απόδοσης I/O:
- Υψηλός χρόνος απόκρισης: Οι χρόνοι απόκρισης που είναι σταθερά πάνω από 15-20ms υποδηλώνουν αργά υποσυστήματα δίσκου. Οι χρόνοι απόκρισης άνω των 50ms υποδηλώνουν σοβαρά σημεία συμφόρησης εισόδου/εξόδου.
- Μη ισορροπημένο φορτίο: Εάν ένα αρχείο δεδομένων εμφανίζει σημαντικά υψηλότερους ρυθμούς εισόδου/εξόδου από άλλα στην ίδια βάση δεδομένων, μπορείτε να επωφεληθείτε από την προσθήκη επιπλέον αρχείων για την κατανομή του φορτίου.
- Υπερβολική δραστηριότητα Tempdb: Οι υψηλοί ρυθμοί εισόδου/εξόδου σε αρχεία tempdb συχνά υποδεικνύουν ερωτήματα που δημιουργούν μεγάλα σύνολα ενδιάμεσων αποτελεσμάτων ή χρησιμοποιούν αναποτελεσματικά σχέδια εκτέλεσης.
3.4.3 Ανάλυση αρχείων βάσης δεδομένων
Χρησιμοποιήστε το παράθυρο Εισόδου/Εξόδου Αρχείου Δεδομένων για να κατανοήσετε πώς οι βάσεις δεδομένων σας χρησιμοποιούν τους πόρους του δίσκου:
- Αναπτύξτε το παράθυρο Εισόδου/Εξόδου Αρχείου Δεδομένων.
- Ταξινόμηση κατά MB/δευτ. Ανάγνωση or MB/δευτ. Γράφτηκε να αναγνωρίσω το μost ενεργά αρχεία.
- Σημειώστε τυχόν αρχεία με σταθερά υψηλή δραστηριότητα ή μεγάλους χρόνους απόκρισης.
- Διασταυρώστε αυτές τις πληροφορίες με το παράθυρο Πρόσφατα ακριβά ερωτήματα για να εντοπίσετε ποια ερωτήματα οδηγούν στο φόρτο εισόδου/εξόδου.
3.5 Παράθυρο Πρόσφατων Ακριβών Ερωτημάτων
Το παράθυρο Πρόσφατα Ακριβά Ερωτήματα είναι συχνά το most ένα πολύτιμο παράθυρο για την αντιμετώπιση προβλημάτων απόδοσης εφαρμογών. Εμφανίζει ερωτήματα που καταναλώνουν σημαντικούς πόρους διακομιστή, βοηθώντας σας να εντοπίσετε ευκαιρίες βελτιστοποίησης.
3.5.1 Κατανόηση μετρήσεων ερωτημάτων
Το Activity Monitor εμφανίζει διάφορες μετρήσεις για κάθε ακριβό ερώτημα:
- Εκτελέσεις/λεπτό: Πόσες φορές εκτελέστηκε το ερώτημα κατά την τελευταία στιγμή.
- CPU (ms/δευτ.): Χρόνος CPU που καταναλώνεται από αυτό το ερώτημα ανά δευτερόλεπτο.
- Φυσικές αναγνώσεις/δευτ.: Αριθμός αναγνώσεων φυσικού δίσκου ανά δευτερόλεπτο για αυτό το ερώτημα.
- Λογικές Εγγραφές/δευτ.: Αριθμός λογικών εγγραφών (στην προσωρινή μνήμη buffer) ανά δευτερόλεπτο.
- Λογικές αναγνώσεις/δευτ.: Αριθμός λογικών αναγνώσεων (από την προσωρινή μνήμη buffer) ανά δευτερόλεπτο.
- Μέση διάρκεια (ms): Μέσος χρόνος εκτέλεσης για αυτό το ερώτημα.
- Αριθμός σχεδίων: Αριθμός σχεδίων εκτέλεσης στην προσωρινή μνήμη για αυτό το ερώτημα.
Αυτές οι μετρήσεις σάς βοηθούν να κατανοήσετε όχι μόνο ποια ερωτήματα είναι ακριβά, αλλά και γιατί είναι ακριβά και πόσο συχνά εκτελούνται.
3.5.2 Επιλογές ταξινόμησης
Μπορείτε να ταξινομήσετε το παράθυρο Πρόσφατα Ακριβά Ερωτήματα με βάση διαφορετικές μετρήσεις για να βρείτε διαφορετικούς τύπους προβλημάτων:
- Κάντε κλικ σε οποιαδήποτε κεφαλίδα στήλης για να ταξινομήσετε με βάση αυτήν τη μέτρηση.
- Οι συνήθεις στρατηγικές ταξινόμησης περιλαμβάνουν:
- Ταξινόμηση κατά CPU: Βρείτε ερωτήματα που καταναλώνουν το most χρόνος επεξεργαστή.
- Ταξινόμηση κατά Εκτελέσεις/λεπτό: Εντοπίστε ερωτήματα που εκτελούνται υπερβολικά συχνά.
- Ταξινόμηση κατά Φυσικές Αναγνώσεις: Βρείτε ερωτήματα που προκαλούν το most Είσοδος/Έξοδος δίσκου.
- Ταξινόμηση κατά Μέση Διάρκεια: Εντοπίστε ερωτήματα που εκτελούνται μακράς διαρκείας.
Κατά την αντιμετώπιση προβλημάτων απόδοσης, δοκιμάστε να ταξινομήσετε κατά πολλαπλές στήλες για να λάβετε διαφορετικές προοπτικές. Ένα ερώτημα με μέτρια χρήση CPU αλλά εξαιρετικά υψηλές εκτελέσεις ανά λεπτό μπορεί να είναι το πραγματικό σας πρόβλημα.
3.5.3 Προβολή κειμένου ερωτήματος
Για να δείτε την πραγματική πρόταση SQL πίσω από ένα ακριβό ερώτημα:
- Κάντε δεξί κλικ στη γραμμή ερωτήματος στο παράθυρο Πρόσφατα ακριβά ερωτήματα.
- Αγορά Επεξεργασία κειμένου ερωτήματος.
- Ανοίγει ένα νέο παράθυρο ερωτήματος που εμφανίζει την πλήρη πρόταση SQL.
Αυτό σας επιτρέπει να εξετάσετε τη λογική του ερωτήματος και να εντοπίσετε πιθανές ευκαιρίες βελτιστοποίησης. Στη συνέχεια, μπορείτε να αντιγράψετε το κείμενο του ερωτήματος για τη δοκιμή τροποποιημένων εκδόσεων.
3.5.4 Ανάλυση Σχεδίων Εκτέλεσης
Τα σχέδια εκτέλεσης σας δείχνουν πώς SQL Server εκτελεί ένα ερώτημα, αποκαλύπτοντας ανεπάρκειες όπως ελλείποντα ευρετήρια ή ακατάλληλους τύπους σύνδεσης:
- Κάντε δεξί κλικ στη γραμμή ερωτήματος στο παράθυρο Πρόσφατα ακριβά ερωτήματα.
- Αγορά Εμφάνιση σχεδίου εκτέλεσης.
- SQL Server Το Management Studio εμφανίζει μια γραφική αναπαράσταση του τρόπου εκτέλεσης του ερωτήματος.
Αναζητήστε λειτουργίες που καταναλώνουν μεγάλα ποσοστά του ερωτήματος cost, προειδοποιήσεις σχετικά με ελλείποντα στατιστικά στοιχεία ή ευρετήρια και μη αναμενόμενες λειτουργίες σάρωσης πίνακα. Αυτά συχνά υποδεικνύουν πού πρέπει να επικεντρωθούν οι προσπάθειες βελτιστοποίησης.
3.5.5 Εντοπισμός προβληματικών ερωτημάτων
Παρακολουθήστε αυτά τα μοτίβα στο παράθυρο Πρόσφατα ακριβά ερωτήματα:
- Υπερβολικές εκτελέσεις: Ένα ερώτημα που εκτελείται χιλιάδες φορές ανά λεπτό μπορεί να υποδεικνύει ένα πρόβλημα ερωτήματος N+1 όπου ο κώδικας εφαρμογής καλεί τη βάση δεδομένων μέσα σε έναν βρόχο.
- Υψηλές Φυσικές Αναγνώσεις: Τα ερωτήματα με υψηλούς ρυθμούς φυσικής ανάγνωσης εμφανίζονται συχνά στον δίσκο, γεγονός που υποδηλώνει ελλείποντα ευρετήρια ή κακογραμμένα ερωτήματα.
- Υψηλή CPU με χαμηλή διάρκεια: Πολλά γρήγορα ερωτήματα που καταναλώνουν συνολικά πολλή CPU μπορούν να επηρεάσουν την απόδοση του διακομιστή όσο και μερικά αργά ερωτήματα.
- Πολλαπλοί αριθμοί σχεδίων: Τα ερωτήματα με πολλά σχέδια εκτέλεσης ενδέχεται να υποφέρουν από προβλήματα ανίχνευσης παραμέτρων ή μη παραμετροποιημένα ερωτήματα που προκαλούν υπερφόρτωση της προσωρινής μνήμης σχεδίου.
4. Χρήση της Παρακολούθησης Δραστηριότητας για την Αντιμετώπιση Προβλημάτων Απόδοσης
Το Activity Monitor πραγματικά ξεχωρίζει όταν το χρησιμοποιείτε συστηματικά για τη διάγνωση και την επίλυση προβλημάτων απόδοσης. Αυτή η ενότητα καλύπτει συνηθισμένα σενάρια αντιμετώπισης προβλημάτων και τον τρόπο αντιμετώπισής τους.
4.1 Διάγνωση υπερβολικών εκτελέσεων ερωτημάτων
Ενας από αυτούςost Ένα συνηθισμένο πρόβλημα απόδοσης είναι η εκτέλεση ερωτημάτων πολύ πιο συχνά από ό,τι είναι απαραίτητο, συχνά λόγω προβλημάτων σχεδιασμού εφαρμογών.
4.1.1 Αναγνώριση Επαναλαμβανόμενων Ερωτημάτων
Για να εντοπίσετε ερωτήματα που εκτελούνται πολύ συχνά:
- Ανοίξτε την Παρακολούθηση Δραστηριότητας και αναπτύξτε την Πρόσφατα ακριβά ερωτήματα τζάμι.
- Ταξινόμηση κατά Εκτελέσεις/λεπτό (εκτελέσεις ανά λεπτό).
- Αναζητήστε ερωτήματα στην κορυφή με αριθμούς εκτέλεσης που φαίνονται υπερβολικά υψηλοί.
- Κάντε δεξί κλικ στο ύποπτο ερώτημα και επιλέξτε Επεξεργασία κειμένου ερωτήματος για να εξετάσουμε την πρόταση SQL.
Για παράδειγμα, αν δείτε μια απλή εντολή SELECT να εκτελείται 37,000 φορές ανά λεπτό, ρωτήστε αν η εφαρμογή χρειάζεται πραγματικά να καλεί αυτό το ερώτημα τόσο συχνά. Most Τα ερωτήματα που εκτελούνται περισσότερες από μερικές χιλιάδες φορές ανά λεπτό απαιτούν έρευνα.
4.1.2 Ανάλυση ριζικής αιτίας
Οι υπερβολικές εκτελέσεις ερωτημάτων συνήθως προκύπτουν από τα εξής προβλήματα:
- Πρόβλημα ερωτήματος N+1: Ο κώδικας εφαρμογής ανακτά μια λίστα στοιχείων και, στη συνέχεια, εκτελεί ένα ξεχωριστό ερώτημα για κάθε στοιχείο για να ανακτήσει σχετικά δεδομένα. Αυτό δημιουργεί N επιπλέον ερωτήματα όπου N είναι ο αριθμός των στοιχείων.
- Λείπει η προσωρινή αποθήκευση: Η εφαρμογή υποβάλλει ερώτημα στη βάση δεδομένων για δεδομένα που rarely αλλάζει αντί να το αποθηκεύει προσωρινά στη μνήμη της εφαρμογής.
- Βρόχοι σταθμοσκόπησης: Ο κώδικας υποβάλλει επανειλημμένα ερωτήματα στη βάση δεδομένων ελέγχοντας για αλλαγές κατάστασης αντί να χρησιμοποιεί ειδοποιήσεις αλλαγών ή ουρές μηνυμάτων.
- Αναποτελεσματικότητα ORM: Το Entity Framework και παρόμοια εργαλεία μερικές φορές δημιουργούν αναποτελεσματικά μοτίβα ερωτημάτων όταν οι προγραμματιστές δεν κατανοούν πώς ο κώδικάς τους μεταφράζεται σε SQL.
Για να προσδιορίσετε την αιτία, εντοπίστε το ερώτημα μέχρι τον κώδικα της εφαρμογής. Σημειώστε το Εφαρμογή Συνδέση στήλες στο παράθυρο Διεργασίες όταν εκτελείται το ερώτημα. Μπορείτε επίσης να κάνετε δεξί κλικ στη διεργασία και να επιλέξετε Διαδικασία ανίχνευσης σε SQL Server Κατατομή για να δείτε το μοτίβο κλήσεων.
4.1.3 Λύσεις και βέλτιστες πρακτικές
Μόλις εντοπίσετε υπερβολικές εκτελέσεις ερωτημάτων, σκεφτείτε αυτές τις λύσεις:
- Επεξεργασία παρτίδας: Τροποποιήστε τον κώδικα εφαρμογής για να ανακτήσετε πολλά στοιχεία σε ένα μόνο ερώτημα χρησιμοποιώντας συνδέσμους ή όρους IN αντί να εκτελέσετε ξεχωριστά ερωτήματα σε έναν βρόχο.
- Αποθήκευση αποτελεσμάτων στην προσωρινή μνήμη: Συχνή πρόσβαση στην προσωρινή μνήμη, σπάνια αλλαγή δεδομένων στη μνήμη της εφαρμογής με κατάλληλους χρόνους λήξης.
- Eager Loading: Ρυθμίστε τις παραμέτρους των ORM ώστε να χρησιμοποιούν στρατηγικές φόρτωσης με ανυπομονησία που ανακτούν σχετικά δεδομένα σε λιγότερα και πιο αποτελεσματικά ερωτήματα.
- Παραμετροποίηση ερωτήματος: Βεβαιωθείτε ότι τα ερωτήματα χρησιμοποιούν παραμέτρους αντί να συνενώνουν τιμές, κάτι που βελτιώνει την επαναχρησιμοποίηση της προσωρινής μνήμης του σχεδίου και μειώνει την επιβάρυνση μεταγλώττισης.
4.2 Διερεύνηση προβλημάτων αποκλεισμού
Ο αποκλεισμός συμβαίνει όταν μια συνεδρία διατηρεί κλειδώματα που εμποδίζουν την εξέλιξη άλλων περιόδων λειτουργίας. Αυτό εκδηλώνεται με αργούς χρόνους απόκρισης εφαρμογών και απογοήτευση των χρηστών.
4.2.1 Προσδιορισμός Αλυσίδων Αποκλεισμού
Για να εντοπίσετε και να αναλύσετε το μπλοκάρισμα:
- Ανοίξτε την Παρακολούθηση Δραστηριότητας και αναπτύξτε την διεργασίες τζάμι.
- Αναζητήστε συνεδρίες με τιμές στο Αποκλεισμένο από στήλη—αυτές περιμένουν κλειδώματα που κατέχονται από άλλες συνεδρίες.
- Βρείτε συνεδρίες με '1' στο Κεφάλι μπλοκαρίσματος στήλη—αυτές είναι η βασική αιτία του μπλοκαρίσματος των αλυσίδων.
- Σημειώστε το Αναγνωριστικό συνεδρίας του μπλοκέρ κεφαλής.
- Κάντε δεξί κλικ στην περίοδο λειτουργίας αποκλεισμού κεφαλής και επιλέξτε Λεπτομέρειες για να δω ποια εντολή εκτελεί.
Η κατανόηση της αλυσίδας αποκλεισμού είναι ζωτικής σημασίας. Ο κύριος αποκλειστής είναι η συνεδρία που πρέπει να διερευνήσετε, όχι οι μπλοκαρισμένες συνεδρίες κατάντη.
4.2.2 Κατανόηση των τύπων κλειδαριών
The Τύπος αναμονής Η στήλη στο παράθυρο "Διαδικασίες" υποδεικνύει τον τύπο κλειδώματος που περιμένουν οι αποκλεισμένες συνεδρίες:
- LCK_M_X: Αποκλειστική αναμονή κλειδώματος, που συνήθως προκαλείται από λειτουργίες UPDATE, DELETE ή INSERT.
- LCK_M_S: Κοινόχρηστο κλείδωμα σε αναμονή, συνήθως οι εντολές SELECT περιμένουν την απελευθέρωση των αποκλειστικών κλειδωμάτων.
- LCK_M_U: Αναμονή κλειδώματος ενημέρωσης, ένας ενδιάμεσος τύπος κλειδώματος που χρησιμοποιείται κατά τη διάρκεια ενημερώσεων.
- LCK_M_IX: Αναμονή αποκλειστικού κλειδώματος Intent, που υποδεικνύει διεκδίκηση κλειδώματος σε επίπεδο σελίδας ή γραμμής.
The Πόρος αναμονής Η στήλη δείχνει ποιο αντικείμενο βάσης δεδομένων κλειδώνεται, βοηθώντας σας να κατανοήσετε ποιος πίνακας ή ευρετήριο εμπλέκεται στη διαμάχη.
4.2.3 Επίλυση προβλημάτων αποκλεισμού
Μόλις εντοπίσετε την περίοδο αποκλεισμού και τι κάνει, έχετε αρκετές επιλογές:
- Αναμονή για ολοκλήρωση: Εάν ο χρήστης που μπλοκάρει τον κώδικα εκτελεί ένα έγκυρο ερώτημα που θα ολοκληρωθεί σύντομα, ίσως είναι καλύτερο να το αφήσετε να ολοκληρωθεί φυσικά.
- Σκότωσε την συνεδρία: Εάν το πρόγραμμα αποκλεισμού κεφαλής έχει κολλήσει ή εκτελεί ένα ερώτημα που πρέπει να ακυρωθεί:
- Κάντε δεξί κλικ στην περίοδο λειτουργίας στο παράθυρο Διεργασίες.
- Αγορά Διαδικασία Kill.
- Επιβεβαιώστε την ενέργεια στο παράθυρο διαλόγου.
- Βελτιστοποίηση ερωτημάτων: Εάν ο αποκλεισμός επαναλαμβάνεται με τα ίδια ερωτήματα, βελτιστοποιήστε τα για να μειώσετε τη διάρκεια κλειδώματός τους.
- Προσαρμογή επιπέδων απομόνωσης: Εξετάστε το ενδεχόμενο χρήσης της λειτουργίας READ COMMITTED SNAPSHOT ISOLATION για να μειώσετε τον αποκλεισμό σε φόρτους εργασίας με μεγάλο όγκο ανάγνωσης.
- Συντονισμός ευρετηρίου: Προσθέστε ευρετήρια για να επιταχύνετε τα ερωτήματα, μειώνοντας έτσι το χρονικό διάστημα που διατηρούν κλειδώματα.
4.3 Ανάλυση Υψηλής Χρήσης CPU
Όταν το παράθυρο Επισκόπηση εμφανίζει σταθερά τον χρόνο επεξεργαστή στο 100% ή κοντά στο 100%, πρέπει να προσδιορίσετε ποια ερωτήματα είναι υπεύθυνα και να προσδιορίσετε εάν μπορούν να βελτιστοποιηθούν.
4.3.1 Προσδιορισμός ερωτημάτων που απαιτούν μεγάλη χρήση CPU
Για να βρείτε ερωτήματα που καταναλώνουν υπερβολική CPU:
- Ανοίξτε το Πρόσφατα ακριβά ερωτήματα τζάμι.
- Ταξινόμηση κατά CPU (ms/δευτ.) για να εμφανίσετε ερωτήματα χρησιμοποιώντας το most Χρόνος CPU.
- Εξετάστε τα κορυφαία ερωτήματα στη λίστα.
- Κάντε δεξί κλικ σε ερωτήματα με υψηλή CPU και επιλέξτε Επεξεργασία κειμένου ερωτήματος για να δείτε την πρόταση SQL.
- Αγορά Εμφάνιση σχεδίου εκτέλεσης για να κατανοήσουμε πώς εκτελείται το ερώτημα.
Δώστε προσοχή όχι μόνο στη χρήση της CPU κάθε μεμονωμένου ερωτήματος, αλλά και στο Εκτελέσεις/λεπτό στήλη. Ένα ερώτημα που χρησιμοποιεί μέτρια CPU ανά εκτέλεση αλλά εκτελείται χιλιάδες φορές ανά λεπτό μπορεί να είναι ο μεγαλύτερος καταναλωτής CPU.
4.3.2 Τεχνικές Βελτιστοποίησης Ερωτημάτων
Συνήθεις προσεγγίσεις για τη μείωση της κατανάλωσης της CPU περιλαμβάνουν:
- Προσθήκη ελλειπόντων ευρετηρίων: Το Index επιδιώκει να χρησιμοποιήσει πολύ λιγότερη CPU από τις σαρώσεις πινάκων. Αναζητήστε τυχόν ελλείπουσες προτάσεις index στα σχέδια εκτέλεσης.
- Επαναδιατύπωση μη αποδοτικών ερωτημάτων: Αντικαταστήστε τους κέρσορες με λειτουργίες που βασίζονται σε σύνολα, εξαλείψτε τις περιττές συναρτήσεις στις ρήτρες WHERE και αφαιρέστε τις περιττές ενώσεις.
- Ενημέρωση στατιστικών: Τα ξεπερασμένα στατιστικά στοιχεία προκαλούν SQL Server για να επιλέξετε αναποτελεσματικά σχέδια εκτέλεσης. Εκτελέστε την εντολή UPDATE STATISTICS στους πίνακες που επηρεάζονται.
- Μείωση όγκου δεδομένων: Προσθέστε όρους WHERE για να φιλτράρετε δεδομένα νωρίτερα, χρησιμοποιήστε TOP ή OFFSET/FETCH για σελιδοποίηση και αποφύγετε τη συνάρτηση SELECT *.
- Διόρθωση ανίχνευσης παραμέτρων: Χρησιμοποιήστε την ΕΠΙΛΟΓΗ (ΑΝΑΣΥΝΑΡΜΟΛΟΓΗΣΗ), υποδείξεις ερωτημάτων ή οδηγούς σχεδιασμού όταν η ανίχνευση παραμέτρων προκαλεί προβλήματα.
4.4 Διερεύνηση προβλημάτων μνήμης
Η πίεση μνήμης μπορεί να προκαλέσει διαρροή ερωτημάτων στον δίσκο, μειώνοντας σημαντικά την απόδοση. Το Activity Monitor σάς βοηθά να εντοπίζετε λειτουργίες που απαιτούν μεγάλη μνήμη.
4.4.1 Κατανόηση των μετρήσεων μνήμης
The Χρήση μνήμης Η στήλη στο παράθυρο "Διαδικασίες" εμφανίζει τη μνήμη που έχει εκχωρηθεί σε κάθε συνεδρία σε kilobyte. Η υψηλή χρήση μνήμης από μία μόνο συνεδρία συχνά υποδεικνύει:
- Μεγάλες λειτουργίες ταξινόμησης ή κατακερματισμού που δεν χωρούσαν στην αρχικά εκχωρημένη μνήμη
- Ερωτήματα που ανακτούν τεράστια σύνολα αποτελεσμάτων
- Υπερβολικός παραλληλισμός που δημιουργεί πολλά αντίγραφα των τελεστών του σχεδίου εκτέλεσης
- Διαρροές μνήμης σε διαδικασίες ή συναρτήσεις που είναι αποθηκευμένες στο CLR
Το παράθυρο "Αναμονή πόρων" ενδέχεται να εμφανίζει αναμονές μνήμης όταν τα ερωτήματα δεν μπορούν να λάβουν επαρκείς εκχωρήσεις μνήμης και πρέπει να περιμένουν να γίνει διαθέσιμη η μνήμη.
4.4.2 Αναγνώριση Ερωτημάτων Εντατικής Μνήμης
Για να βρείτε ερωτήματα που προκαλούν πίεση μνήμης:
- Στο διεργασίες παράθυρο, ταξινόμηση κατά Χρήση μνήμης για να δείτε τις συνεδρίες που καταναλώνουν το most μνήμη.
- Κάντε δεξί κλικ στις συνεδρίες με υψηλή χρήση μνήμης και επιλέξτε Λεπτομέρειες για να δείτε τα ερωτήματά τους.
- Στο Πρόσφατα ακριβά ερωτήματα παράθυρο, αναζητήστε ερωτήματα με υψηλό Λογικές αναγνώσεις or Λογικές Γραφές, καθώς αυτά συχνά συσχετίζονται με τη χρήση μνήμης.
- Εξετάστε τα σχέδια εκτέλεσης για τους τελεστές Sort και Hash Match, οι οποίοι χρησιμοποιούν παραχωρήσεις μνήμης.
Τα ερωτήματα που εμφανίζουν προειδοποιήσεις "Επιχορήγηση μνήμης" σε σχέδια εκτέλεσης ή προειδοποιήσεις διαρροής υποδεικνύουν προβλήματα πίεσης μνήμης.
4.5 Εντοπισμός προβλημάτων απόδοσης εφαρμογών
Όταν οι χρήστες αναφέρουν αργούς χρόνους απόκρισης εφαρμογών, το Activity Monitor σάς βοηθά να προσδιορίσετε εάν η βάση δεδομένων αποτελεί το σημείο συμφόρησης.
4.5.1 Συσχέτιση της Παρακολούθησης Δραστηριότητας με Προβλήματα Εφαρμογής
Για να διερευνήσετε την αργότητα της εφαρμογής:
- Σημειώστε την ακριβή ώρα που οι χρήστες αναφέρουν προβλήματα και τις εφαρμογές που επηρεάζονται.
- Ανοίξτε την Παρακολούθηση Δραστηριότητας και ελέγξτε την Επισκόπηση παράθυρο για αιχμές πόρων εκείνη τη στιγμή.
- Στο διεργασίες παράθυρο, φιλτράρισμα κατά Εφαρμογή για να εμφανίζονται μόνο οι συνδέσεις από την εφαρμογή που επηρεάζεται.
- Ψάξτε για ψηλά Χρόνος αναμονής τιμές, οι οποίες υποδεικνύουν καθυστερήσεις στη βάση δεδομένων.
- Έλεγξε το Πρόσφατα ακριβά ερωτήματα παράθυρο για ερωτήματα από αυτήν την εφαρμογή που καταναλώνει σημαντικούς πόρους.
Εάν η βάση δεδομένων δεν εμφανίζει ασυνήθιστη δραστηριότητα ενώ οι χρήστες αντιμετωπίζουν καθυστέρηση, το πρόβλημα πιθανότατα έγκειται στον κώδικα της εφαρμογής, στην καθυστέρηση δικτύου ή στην απόδοση από την πλευρά του πελάτη.
4.5.2 Εντοπισμός Αναποτελεσματικών Προτύπων Εφαρμογών
Το Activity Monitor αποκαλύπτει αρκετά αντι-μοτίβα στο σχεδιασμό εφαρμογών:
- Εφαρμογές συνομιλίας: Πολλά μικρά ερωτήματα αντί για λιγότερα, πιο αποτελεσματικά ερωτήματα. Προσδιορίζονται από τον υψηλό αριθμό συνδέσεων και τα πολυάριθμα απλά ερωτήματα στα Πρόσφατα Ακριβά Ερωτήματα.
- Ερωτήματα N+1: Ένα ερώτημα ακολουθούμενο από N επιπλέον ερωτήματα για σχετικά δεδομένα. Εμφανίζεται ως ένα απλό ερώτημα με εξαιρετικά υψηλές εκτελέσεις ανά λεπτό.
- Μεγάλα σύνολα αποτελεσμάτων: Εφαρμογές που ανακτούν πολύ περισσότερα δεδομένα από όσα χρειάζονται. Αναζητήστε υψηλά Λογικές αναγνώσεις σε συνδυασμό με απλά ερωτήματα SELECT *.
- Λείπουν χρονικά όρια: Οι εφαρμογές που δεν ορίζουν χρονικά όρια εντολών ενδέχεται να αφήνουν τις συνδέσεις ανοιχτές επ' αόριστον, ορατές ως συνεδρίες μεγάλης διάρκειας στο παράθυρο Διεργασίες.
5. Εναλλακτικές μέθοδοι: Λήψη δεδομένων παρακολούθησης δραστηριότητας μέσω T-SQL
Ενώ το Activity Monitor παρέχει μια βολική γραφική διεπαφή, μερικές φορές χρειάζεται να ανακτήσετε ισοδύναμες πληροφορίες μέσω προγραμματισμού ή να δημιουργήσετε προσαρμοσμένες λύσεις παρακολούθησης.
5.1 Χρήση Δυναμικών Προβολών Διαχείρισης (DMV)
SQL Server εκθέτει πληροφορίες δραστηριότητας μέσω δυναμικών προβολών διαχείρισης, τις οποίες το Activity Monitor υποβάλλει σε αναζήτηση στο παρασκήνιο.
5.1.1 Βασικά DMV για την Παρακολούθηση Δραστηριότητας
Η μost Σημαντικά DMV για την αναπαραγωγή λειτουργικότητας του Activity Monitor περιλαμβάνουν:
- sys.dm_exec_requests: Εμφανίζει τα αιτήματα που εκτελούνται αυτήν τη στιγμή με πληροφορίες CPU, I/O και αναμονής.
- sys.dm_exec_sessions: Περιέχει πληροφορίες επιπέδου συνεδρίας, όπως όνομα σύνδεσης, host όνομα και όνομα προγράμματος.
- sys.dm_os_wait_stats: Παρέχει αθροιστικά στατιστικά στοιχεία αναμονής για ολόκληρη την παρουσία.
- sys.dm_exec_query_stats: Περιέχει συγκεντρωτικά στατιστικά στοιχεία απόδοσης για ερωτήματα που αποθηκεύονται στην προσωρινή μνήμη.
- sys.dm_io_virtual_file_stats: Επιστρέφει στατιστικά στοιχεία εισόδου/εξόδου για δεδομένα και αρχεία καταγραφής.
- sys.dm_exec_sql_text: Ανακτά το κείμενο SQL για ένα δεδομένο sql_handle ή plan_handle.
- sys.dm_exec_query_plan: Επιστρέφει το σχέδιο εκτέλεσης για ένα ερώτημα που αποθηκεύεται στην προσωρινή μνήμη.
5.1.2 Δείγματα ερωτημάτων για πληροφορίες διεργασίας
Για να αναπαράγετε τη λειτουργικότητα του παραθύρου Διεργασίες, μπορείτε να υποβάλετε το ερώτημα:
SELECT
s.session_id AS [Session ID],
CASE WHEN s.is_user_process = 1 THEN 'Yes' ELSE 'No' END AS [User Process],
s.login_name AS [Login],
ISNULL(CAST(r.blocking_session_id AS VARCHAR), '') AS [Blocked By],
CASE
WHEN r2.session_id IS NOT NULL
AND (r.blocking_session_id = 0 OR r.session_id IS NULL)
THEN '1'
ELSE ''
END AS [Head Blocker],
ISNULL(DB_NAME(r.database_id), '') AS [Database],
ISNULL(t.task_state, '') AS [Task State],
ISNULL(r.command, '') AS [Command],
r.cpu_time AS [CPU Time],
r.total_elapsed_time AS [Elapsed Time],
r.wait_time AS [Wait Time],
r.wait_type AS [Wait Type],
s.memory_usage * 8 AS [Memory Use (KB)],
s.host_name AS [Host Name],
s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
WHERE s.session_id != @@SPID
ORDER BY s.session_id;
5.1.3 Δείγματα ερωτημάτων για στατιστικά στοιχεία αναμονής
Για να δείτε στατιστικά στοιχεία αναμονής παρόμοια με το παράθυρο Αναμονή πόρων:
SELECT TOP 10
wait_type AS [Wait Type],
wait_time_ms / 1000.0 AS [Wait Time (sec)],
waiting_tasks_count AS [Waiting Tasks],
wait_time_ms / NULLIF(waiting_tasks_count, 0) AS [Avg Wait Time (ms)]
FROM sys.dm_os_wait_stats
WHERE wait_type NOT LIKE '%SLEEP%'
AND wait_type NOT LIKE '%IDLE%'
AND wait_type NOT LIKE '%QUEUE%'
ORDER BY wait_time_ms DESC;
5.2 Χρήση του sp_WhoIsActive
Το sp_WhoIsActive είναι μια ισχυρή αποθηκευμένη διαδικασία που δημιουργήθηκε από την κοινότητα και παρέχει πιο λεπτομερείς πληροφορίες από το Activity Monitor σε ένα μόνο σύνολο αποτελεσμάτων.
5.2.1 Εγκατάσταση του sp_WhoIsActive
Για να εγκαταστήσετε το sp_WhoIsActive:
- Κατεβάστε την τελευταία έκδοση από
http://whoisactive.com. - Η λήψη είναι ένα σενάριο SQL που περιέχει τον ορισμό της διαδικασίας.
- Άνοιγμα του σεναρίου σε SQL Server Στούντιο διαχείρισης.
- Συνδεθείτε με το δικό σας SQL Server παράδειγμα.
- Εκτελέστε το σενάριο για να δημιουργήσετε τη διαδικασία στην κύρια βάση δεδομένων.
- Παραχωρήστε δικαιώματα εκτέλεσης στους κατάλληλους χρήστες.
Επειδή το sp_WhoIsActive είναι εγκατεστημένο στο master, είναι προσβάσιμο από οποιοδήποτε περιβάλλον βάσης δεδομένων.
5.2.2 Βασικά παραδείγματα χρήσης
Ο απλούστερος τρόπος χρήσης του sp_WhoIsActive είναι:
EXEC sp_WhoIsActive;
Αυτό επιστρέφει ένα σύνολο αποτελεσμάτων που εμφανίζει όλες τις ενεργές συνεδρίες με τα ερωτήματά τους, τους τύπους αναμονής, τις πληροφορίες αποκλεισμού και τη χρήση πόρων.
Για ένα δείγμα 10 δευτερολέπτων που δείχνει δραστηριότητα κατά τη διάρκεια αυτής της περιόδου:
EXEC sp_WhoIsActive @delta_interval = 10;
Αυτό υπολογίζει τα δέλτα για μετρήσεις όπως η CPU και οι αναγνώσεις, δείχνοντας τι συνέβη κατά τη διάρκεια αυτών των 10 δευτερολέπτων.
5.2.3 Προηγμένες παράμετροι
Το sp_WhoIsActive υποστηρίζει πολυάριθμες παραμέτρους για προσαρμογή:
- @φίλτρο: Φιλτράρετε τα αποτελέσματα σε συγκεκριμένες συνεδρίες, βάσεις δεδομένων ή συνδέσεις.
- @τύπος_φίλτρου: Καθορίστε σε τι εφαρμόζεται το φίλτρο (συνεδρία, βάση δεδομένων, σύνδεση κ.λπ.).
- @get_plans: Συμπεριλάβετε σχέδια εκτέλεσης στα αποτελέσματα (ορίστε σε 1).
- @get_locks: Εμφάνιση λεπτομερών πληροφοριών κλειδαριάς (ορισμένη σε 1).
- @get_transaction_info: Εμφάνιση λεπτομερειών συναλλαγής (ορισμένη σε 1).
- @sort_order: Ταξινόμηση αποτελεσμάτων με βάση διαφορετικές μετρήσεις (CPU, αναγνώσεις, διάρκεια κ.λπ.).
- @destination_table: Εισαγάγετε τα αποτελέσματα σε έναν πίνακα για ιστορική παρακολούθηση.
Παράδειγμα που δείχνει τα σχέδια ταξινομημένα ανά CPU:
EXEC sp_WhoIsActive
@get_plans = 1,
@sort_order = '[CPU] DESC';
5.3 Χρήση διαδικασιών που είναι αποθηκευμένες στο σύστημα
SQL Server Περιλαμβάνει παραδοσιακές αποθηκευμένες διαδικασίες για την παρακολούθηση της δραστηριότητας, αν και παρέχουν λιγότερες πληροφορίες από τα DMV ή το Activity Monitor.
5.3.1 sp_who και sp_who2
Η διαδικασία sp_who εμφανίζει βασικές πληροφορίες συνεδρίας:
EXEC sp_who;
Η διαδικασία sp_who2 παρέχει λίγο περισσότερες λεπτομέρειες:
EXEC sp_who2;
Και οι δύο διαδικασίες εμφανίζουν αναγνωριστικά περιόδου σύνδεσης, ονόματα σύνδεσης, χρόνο CPU και πληροφορίες αποκλεισμού. Ωστόσο, δεν έχουν την πλούσια λεπτομέρεια που είναι διαθέσιμη μέσω DMV ή Activity Monitor. Είναι μost χρήσιμο για γρήγορους ελέγχους όταν χρειάζεστε ελάχιστες πληροφορίες γρήγορα.
5.3.2 Άλλες χρήσιμες διαδικασίες συστήματος
Πρόσθετες διαδικασίες συστήματος για την παρακολούθηση περιλαμβάνουν:
- sp_lock: Εμφανίζει πληροφορίες κλειδώματος (έχει καταργηθεί· χρησιμοποιήστε αντί αυτού το sys.dm_tran_locks).
- sp_monitor: Εμφανίζει στατιστικά στοιχεία σχετικά με SQL Server δραστηριότητα.
- sp_help: Εμφανίζει ορισμούς αντικειμένων και μεταδεδομένα.
- DBCC SQLPERF: Εμφανίζει τη χρήση του χώρου καταγραφής συναλλαγών και τα στατιστικά στοιχεία αναμονής.
5.4 Δημιουργία Προσαρμοσμένων Σεναρίων Παρακολούθησης
Για περιβάλλοντα που απαιτούν συγκεκριμένη παρακολούθηση πέρα από αυτήν που παρέχει το Activity Monitor, μπορείτε να δημιουργήσετε προσαρμοσμένες λύσεις χρησιμοποιώντας DMV.
5.4.1 Πλήρες Ισοδύναμο Σενάριο Παρακολούθησης Δραστηριότητας
Ορίστε ένα ολοκληρωμένο σενάριο που αναπαράγει το most Λειτουργικότητα Παρακολούθησης Δραστηριότητας:
-- Processes Information
SELECT
s.session_id AS [Session ID],
CONVERT(CHAR(1), s.is_user_process) AS [User Process],
s.login_name AS [Login],
ISNULL(CONVERT(VARCHAR, w.blocking_session_id), '') AS [Blocked By],
CASE
WHEN r2.session_id IS NOT NULL
AND (r.blocking_session_id = 0 OR r.session_id IS NULL)
THEN '1'
ELSE ''
END AS [Head Blocker],
ISNULL(DB_NAME(r.database_id), N'') AS [Database],
ISNULL(t.task_state, N'') AS [Task State],
ISNULL(r.command, N'') AS [Command],
SUBSTRING(st.text, (r.statement_start_offset/2) + 1,
((CASE r.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE r.statement_end_offset
END - r.statement_start_offset) / 2) + 1) AS [Statement],
st.text AS [Command Text],
r.cpu_time AS [CPU Time (ms)],
r.total_elapsed_time / 1000 AS [Elapsed Time (sec)],
r.wait_time AS [Wait Time (ms)],
r.wait_type AS [Wait Type],
r.wait_resource AS [Wait Resource],
s.memory_usage * 8 AS [Memory Use (KB)],
s.host_name AS [Host Name],
c.client_net_address AS [Net Address],
s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests w ON r.session_id = w.blocking_session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
AND r.request_id = t.request_id
LEFT JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) st
WHERE s.session_id != @@SPID
ORDER BY s.session_id;
-- Recent Expensive Queries
SELECT TOP 20
qs.execution_count /
DATEDIFF(MINUTE, qs.creation_time, GETDATE()) AS [Executions/min],
qs.total_worker_time / 1000 AS [CPU Time (ms)],
qs.total_physical_reads AS [Physical Reads],
qs.total_logical_writes AS [Logical Writes],
qs.total_logical_reads AS [Logical Reads],
qs.total_elapsed_time / qs.execution_count / 1000 AS [Avg Duration (ms)],
SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset) / 2) + 1) AS [Query Text]
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
WHERE qs.execution_count > 0
ORDER BY qs.total_worker_time DESC;
5.4.2 Αυτοματοποίηση παρακολούθησης με εργασίες SQL Agent
Μπορείτε να προγραμματίσετε προσαρμοσμένα σενάρια παρακολούθησης χρησιμοποιώντας SQL Server Μέσο:
- Δημιουργήστε έναν πίνακα για την αποθήκευση των αποτελεσμάτων παρακολούθησης.
- Τροποποιήστε το σενάριο παρακολούθησης για να εισαγάγετε αποτελέσματα σε αυτόν τον πίνακα.
- In SQL Server Στούντιο Διαχείρισης, επέκταση SQL Server Πράκτορας στην Εξερεύνηση Αντικειμένων.
- Κάντε δεξί κλικ Θέσεις εργασίας και επιλέξτε Νέα δουλειά.
- Ρυθμίστε τις παραμέτρους της εργασίας ώστε να εκτελεί το σενάριο παρακολούθησης σε τακτά χρονικά διαστήματα.
- Ρυθμίστε ειδοποιήσεις ή αναφορές με βάση τα δεδομένα που συλλέγονται.
Αυτή η προσέγγιση επιτρέπει την παρακολούθηση ιστορικού και την ανάλυση τάσεων που δεν παρέχει το Activity Monitor.
6. Περιορισμοί και ζητήματα παρακολούθησης δραστηριότητας
Ενώ το Activity Monitor είναι πολύτιμο, η κατανόηση των περιορισμών του σάς βοηθά να το χρησιμοποιείτε κατάλληλα και να το συμπληρώνετε με άλλα εργαλεία όταν είναι απαραίτητο.
6.1 Κατανόηση των Γενικών Επιβαρύνσεων της Παρακολούθησης Δραστηριότητας
Το Activity Monitor δεν είναι δωρεάν—καταναλώνει πόρους διακομιστή για τη συλλογή και την εμφάνιση πληροφοριών. Η κατανόηση αυτού του κόστους σάς βοηθά να το χρησιμοποιείτε υπεύθυνα.
6.1.1 Επιπτώσεις στους πόρους του διακομιστή
Το Activity Monitor εκτελεί ερωτήματα σε DMV συστήματος κάθε φορά που ανανεώνεται. Αυτά τα ερωτήματα καταναλώνουν CPU, δημιουργούν λογικές αναγνώσεις και μπορούν να διατηρήσουν για λίγο κλειδώματα σε πίνακες συστήματος. Σε πολυάσχολους διακομιστές, αυτή η επιβάρυνση μπορεί να επηρεάσει την απόδοση.
Τα τμήματα παραθύρων "Διαδικασίες" και "Πρόσφατα Ακριβά Ερωτήματα" είναι ιδιαίτερα ακριβά, καθώς πρέπει να σαρώνουν δυνητικά μεγάλα DMV και πίνακες προσωρινής αποθήκευσης. Σε διακομιστές με χιλιάδες σχέδια ερωτημάτων αποθηκευμένα στην προσωρινή μνήμη, η ανανέωση των Πρόσφατων Ακριβών Ερωτημάτων μπορεί να διαρκέσει αρκετά δευτερόλεπτα.
Η τεκμηρίωση της Microsoft προειδοποιεί ότι τα διαστήματα ανανέωσης κάτω των 10 δευτερολέπτων μπορούν να επηρεάσουν αισθητά την απόδοση του διακομιστή, ειδικά σε ήδη φορτωμένα συστήματα.
6.1.2 Βέλτιστες πρακτικές διαστήματος ανανέωσης
Επιλέξτε διαστήματα ανανέωσης κατάλληλα για την περίπτωσή σας:
- 1-5 δευτερόλεπτα: Μόνο για άμεση αντιμετώπιση κρίσιμων προβλημάτων σε διακομιστές με χαμηλό φορτίο. Μην αφήνετε την Παρακολούθηση Δραστηριότητας να εκτελείται σε αυτά τα διαστήματα.
- 10 δευτερόλεπτα (προεπιλογή): Λογικό για μost σενάρια αντιμετώπισης προβλημάτων και γενική παρακολούθηση.
- 30-60 δευτερόλεπτα: Καλύτερη επιλογή για διακομιστές παραγωγής υπό μεγάλο φόρτο εργασίας ή κατά την παρακολούθηση για μεγάλα χρονικά διαστήματα.
- Μόνο χειροκίνητη ανανέωση: Για περιπτώσεις όπου θέλετε να ελέγχετε την τρέχουσα κατάσταση περιστασιακά χωρίς συνεχή σταθμοσκόπηση.
Να κλείνετε πάντα την Παρακολούθηση Δραστηριότητας όταν ολοκληρώσετε την εξερεύνηση. Μην την αφήνετε να εκτελείται συνεχώς, ειδικά εάν υπάρχουν πολλαπλές παρουσίες από διαφορετικούς χρήστες.
6.2 Προβλήματα Ομαδοποίησης Τύπων Αναμονής
Η προσέγγιση του Activity Monitor στην κατηγοριοποίηση των αναμονών, ενώ απλοποιεί την προβολή, μπορεί να αποκρύψει σημαντικές διαγνωστικές πληροφορίες.ostικ πληροφορίες.
6.2.1 Πώς περιμένουν οι ομάδες παρακολούθησης δραστηριότητας
SQL Server Παρακολουθεί εκατοντάδες διαφορετικούς τύπους αναμονής, καθένας από τους οποίους υποδεικνύει έναν συγκεκριμένο πόρο ή συνθήκη. Το Activity Monitor τους ομαδοποιεί σε ευρείες κατηγορίες όπως «Buffer Latch», «Lock» και «Memory».
Για παράδειγμα, η κατηγορία "Buffer Latch" περιλαμβάνει τους PAGELATCH_SH, PAGELATCH_UP, PAGELATCH_EX και αρκετούς άλλους συγκεκριμένους τύπους αναμονής. Ενώ όλοι σχετίζονται με την πρόσβαση στη σελίδα, έχουν διαφορετικές αιτίες και λύσεις.
Η Microsoft δεν τεκμηριώνει με ακρίβεια ποιοι τύποι αναμονής αντιστοιχούν σε ποιες κατηγορίες, γεγονός που καθιστά δύσκολη την κατανόηση του τι πραγματικά βλέπετε.
6.2.2 Ελλείποντες τύποι αναμονής
Η Παρακολούθηση Δραστηριότητας δεν εμφανίζει όλους τους τύπους αναμονής. Most Συγκεκριμένα, συχνά παραλείπει τις αναμονές CXPACKET, οι οποίες υποδεικνύουν παράλληλη εκτέλεση ερωτήματος. Οι αναμονές CXPACKET είναι συνηθισμένες και συνήθως δεν είναι προβληματικές, αλλά γνωρίζοντας ότι υπάρχουν, σας βοηθά να κατανοήσετε τα χαρακτηριστικά του φόρτου εργασίας.
Όταν το Activity Monitor εμφανίζει το "Buffer Latch" ως την κορυφαία αναμονή σας, αλλά άλλα εργαλεία δείχνουν ότι το CXPACKET κυριαρχεί, η απόκλιση προέρχεται από τη λογική φιλτραρίσματος και ομαδοποίησης του Activity Monitor.
6.2.3 Γιατί έχουν σημασία συγκεκριμένοι τύποι αναμονής
Η γνώση του συγκεκριμένου τύπου αναμονής έχει σημασία για την αντιμετώπιση προβλημάτων:
- PAGELATCH_EX: Συχνά υποδεικνύει διεκδίκηση tempdb στις σελίδες κατανομής. Η λύση περιλαμβάνει την προσθήκη περισσότερων αρχείων δεδομένων tempdb.
- PAGELATCH_SH: Μπορεί να υποδεικνύει καυτές σελίδες σε πίνακες χρηστών. Η λύση περιλαμβάνει διαμέριση ή αναδιοργάνωση ευρετηρίου.
- PAGELATCH_UP: Συνηθισμένο κατά τη διάρκεια ενημερώσεων. Μπορεί να υποδηλώνει κανονική λειτουργία και όχι πρόβλημα.
Το Activity Monitor ομαδοποιεί όλα αυτά στην ενότητα "Buffer Latch", καθιστώντας τη διάγνωση πιο δύσκολη. Εργαλεία όπως τα ερωτήματα sp_WhoIsActive και DMV εμφανίζουν συγκεκριμένους τύπους αναμονής.
6.3 Ακρίβεια και Επικαιρότητα Δεδομένων
Το Activity Monitor παρέχει μια προβολή σχεδόν σε πραγματικό χρόνο, αλλά η λέξη-κλειδί είναι «κοντά». Η κατανόηση της μεθόδου συλλογής δεδομένων που προσφέρει σάς βοηθά να ερμηνεύσετε σωστά τα αποτελέσματα.
6.3.1 Στιγμιότυπο έναντι Συνεχούς Παρακολούθησης
Η Παρακολούθηση Δραστηριότητας εμφανίζει στιγμιότυπα κάθε χρονικής στιγμής που λαμβάνονται σε κάθε διάστημα ανανέωσης. Τα συμβάντα που συμβαίνουν μεταξύ των στιγμιότυπων δεν καταγράφονται. Εάν ένα ερώτημα εκτελείται για 2 δευτερόλεπτα και ανανεώνετε κάθε 10 δευτερόλεπτα, ενδέχεται να το δείτε μία φορά ή καθόλου, ανάλογα με τον χρόνο.
Αυτό σημαίνει ότι το Activity Monitor υπερέχει στην εύρεση επίμονων προβλημάτων (μπλοκάρισμα που διαρκεί λεπτά, σταθερά υψηλή CPU), αλλά ενδέχεται να μην εντοπίσει παροδικά προβλήματα (σύντομα αδιέξοδα, περιστασιακές αιχμές ερωτημάτων).
6.3.2 Συγκέντρωση και Δειγματοληψία
Το παράθυρο "Πρόσφατα ακριβά ερωτήματα" εμφανίζει συγκεντρωτικά δεδομένα από τότε που τα σχέδια ερωτημάτων εισήλθαν στην προσωρινή μνήμη. Δύο πανομοιότυπα ερωτήματα με διαφορετικές τιμές παραμέτρων εμφανίζονται ως μία γραμμή εάν μοιράζονται ένα σχέδιο. Αυτή η συγκέντρωση μπορεί να καλύψει προβλήματα με συγκεκριμένους συνδυασμούς παραμέτρων (προβλήματα ανίχνευσης παραμέτρων).
Το παράθυρο Αναμονή Πόρων υπολογίζει τους ρυθμούς συγκρίνοντας στιγμιότυπα. Εάν τα στατιστικά στοιχεία αναμονής μηδενιστούν μεταξύ στιγμιότυπων (rarε αλλά πιθανό), οι υπολογισμένοι συντελεστές ενδέχεται να είναι λανθασμένοι.
6.4 Πότε ΔΕΝ πρέπει να χρησιμοποιείτε την Παρακολούθηση Δραστηριότητας
Το Activity Monitor δεν είναι κατάλληλο για κάθε σενάριο παρακολούθησης. Αναγνωρίστε πότε τα εναλλακτικά εργαλεία είναι καλύτερες επιλογές.
6.4.1 Απαιτήσεις Ιστορικής Ανάλυσης
Το Activity Monitor εμφανίζει μόνο την τρέχουσα ή πρόσφατη δραστηριότητα. Δεν αποθηκεύει ιστορικά δεδομένα. Εάν χρειάζεται να αναλύσετε τάσεις σε διάστημα ημερών ή εβδομάδων, να συγκρίνετε την τρέχουσα απόδοση με τις βασικές γραμμές ή να δημιουργήσετε αναφορές για μοτίβα απόδοσης, το Activity Monitor δεν επαρκεί.
Για ιστορική ανάλυση, χρησιμοποιήστε SQL ServerΕνσωματωμένος Πίνακας Ελέγχου Απόδοσης, Εκτεταμένα Συμβάντα με αρχείο tarλαμβάνει ή λύσεις παρακολούθησης τρίτων.
6.4.2 Ανάγκες για λεπτομερή στατιστικά στοιχεία αναμονής
Όταν χρειάζεστε ακριβείς πληροφορίες τύπου αναμονής για προηγμένο συντονισμό, η ομαδοποίηση και το φιλτράρισμα του Activity Monitor τις καθιστούν ανεπαρκείς. Χρησιμοποιήστε ερωτήματα DMV απευθείας ή sp_WhoIsActive.
Για ολοκληρωμένη ανάλυση στατιστικών αναμονής, υποβάλετε απευθείας ερώτημα στο sys.dm_os_wait_stats και φιλτράρετε τις καλοήθεις αναμονές χειροκίνητα.
6.4.3 Ζητήματα που αφορούν τον διακομιστή παραγωγής
Σε διακομιστές παραγωγής που αντιμετωπίζουν μεγάλο φόρτο εργασίας, η επιβάρυνση του Activity Monitor μπορεί να είναι προβληματική. Δεν θα πρέπει να εκτελούν όλοι το Activity Monitor ταυτόχρονα στον ίδιο διακομιστή πολλοί διαχειριστές βάσεων δεδομένων.
Για την παρακολούθηση της παραγωγής, εξετάστε ελαφριές εναλλακτικές λύσεις, όπως προγραμματισμένα στιγμιότυπα DMV που είναι αποθηκευμένα σε μια βάση δεδομένων παρακολούθησης ή χρησιμοποιήστε δρομολόγηση μόνο για ανάγνωση για την παρακολούθηση δευτερευόντων αντιγράφων σε διαμορφώσεις Always On.
7. Βέλτιστες πρακτικές για τη χρήση της Παρακολούθησης Δραστηριότητας
Η τήρηση των βέλτιστων πρακτικών διασφαλίζει ότι αξιοποιείτε στο έπακρο το Activity Monitor, ελαχιστοποιώντας παράλληλα τις αρνητικές επιπτώσεις στους διακομιστές σας.
7.1 Πότε να χρησιμοποιείτε την Παρακολούθηση Δραστηριότητας
Το Activity Monitor είναι ιδανικό σε συγκεκριμένες περιπτώσεις. Χρησιμοποιήστε το όταν τα δυνατά του σημεία ευθυγραμμίζονται με τις ανάγκες σας.
7.1.1 Προβλήματα απόδοσης σε πραγματικό χρόνο
Η Παρακολούθηση Δραστηριότητας είναι ιδανική όταν οι χρήστες αντιμετωπίζουν προβλήματα και χρειάζεται να το διαγνώσετε αμέσως. Η προβολή σε πραγματικό χρόνο σάς βοηθά να δείτε τι συμβαίνει αυτή τη στιγμή.
Όταν λάβετε μια κλήση ότι «η εφαρμογή είναι αργή», το άνοιγμα του Activity Monitor θα πρέπει να είναι ένα από τα πρώτα σας βήματα. Μπορείτε να διαπιστώσετε γρήγορα εάν η βάση δεδομένων είναι απασχολημένη, μπλοκαρισμένη ή αδρανής.
7.1.2 Διερεύνηση Επιβράδυνσης Εφαρμογής
Όταν μια συγκεκριμένη εφαρμογή δεν ανταποκρίνεται, η Παρακολούθηση Δραστηριότητας σάς βοηθά να προσδιορίσετε εάν η αιτία είναι τα προβλήματα βάσης δεδομένων. Φιλτράρετε το παράθυρο "Διαδικασίες" κατά όνομα εφαρμογής για να δείτε μόνο τη δραστηριότητα βάσης δεδομένων αυτής της εφαρμογής.
Εάν η εφαρμογή δεν εμφανίζει δραστηριότητα στη βάση δεδομένων ενώ οι χρήστες αναφέρουν προβλήματα, το πρόβλημα βρίσκεται αλλού στη στοίβα. Εάν βλέπετε εκτεταμένο μπλοκάρισμα ή ακριβά ερωτήματα, έχετε βρει την αιτία.
7.1.3 Γρήγοροι έλεγχοι υγείας
Το Activity Monitor παρέχει έναν εξαιρετικό πίνακα ελέγχου για γρήγορους ελέγχους εύρυθμης λειτουργίας κατά τη διάρκεια της ρουτίνας διαχείρισης. Ανοίξτε το, ρίξτε μια ματιά στα γραφήματα Επισκόπησης και βεβαιωθείτε ότι δεν υπάρχει κάτι ασυνήθιστο.
Αυτός ο πρόχειρος έλεγχος διαρκεί δευτερόλεπτα και μπορεί να αποκαλύψει προβλήματα προτού γίνουν κρίσιμα. Κάντε το μέρος της καθημερινής σας ρουτίνας.
7.2 Βέλτιστες ρυθμίσεις διαμόρφωσης
Η κατάλληλη διαμόρφωση του Activity Monitor βελτιώνει τόσο τη χρησιμότητά του όσο και το αποτύπωμα πόρων του.
7.2.1 Συνιστώμενα διαστήματα ανανέωσης
Αντιστοιχίστε το διάστημα ανανέωσης με τον σκοπό σας:
- Ενεργή αντιμετώπιση προβλημάτων: Τα 10 δευτερόλεπτα παρέχουν καλή απόκριση με λογική επιβάρυνση.
- Εκτεταμένη παρακολούθηση: 30-60 δευτερόλεπτα μειώνουν την επίδραση του διακομιστή κατά τη διάρκεια μεγαλύτερων περιόδων παρατήρησης.
- Διάγνωση κρίσιμων προβλημάτων: Τα 5 δευτερόλεπτα παρέχουν υψηλή λεπτομέρεια όταν μετράει κάθε δευτερόλεπτο, αλλά χρησιμοποιούνται για σύντομο χρονικό διάστημα.
- Τακτικοί έλεγχοι υγείας: Χειροκίνητη ανανέωση (διάστημα 1 ώρας) όταν δεν παρακολουθείτε ενεργά.
Θυμηθείτε να κλείσετε την Παρακολούθηση Δραστηριότητας όταν τελειώσετε. Η ρύθμιση της σε μεγάλο χρονικό διάστημα και η παράλειψή της σπαταλά πόρους διακομιστή.
7.2.2 Στρατηγικές φιλτραρίσματος
Χρησιμοποιήστε φίλτρα για να εστιάσετε σε σχετικές πληροφορίες και να μειώσετε το γνωστικό φορτίο:
- Φιλτράρισμα διεργασιών κατά βάση δεδομένων για να δείτε μόνο τη δραστηριότητα σε συγκεκριμένες βάσεις δεδομένων.
- φιλτράρετε κατά Συνδέση για την παρακολούθηση της δραστηριότητας ενός συγκεκριμένου χρήστη.
- φιλτράρετε κατά Κατάσταση εργασίας = ΕΚΤΕΛΕΙΤΑΙ για απόκρυψη των αδρανών συνεδριών.
- φιλτράρετε κατά Εφαρμογή για την απομόνωση της επισκεψιμότητας από συγκεκριμένα προγράμματα.
- Εμφάνιση μόνο μη κενών σε Αποκλεισμένο από για να δείτε μόνο καταστάσεις αποκλεισμού.
7.2.3 Επιλογή και Ταξινόμηση Στηλών
Αναπτύξτε μια συστηματική προσέγγιση για την αναθεώρηση των δεδομένων του Activity Monitor:
- Start με Επισκόπηση: Ελέγξτε τα γραφήματα για εμφανείς αιχμές ή ανωμαλίες.
- Ελέγξτε τις διαδικασίες για αποκλεισμό: Ταξινόμηση κατά Αναγνωριστικό περιόδου σύνδεσης και, στη συνέχεια, αναζητήστε τις τιμές Αποκλεισμένο από.
- Αναμονή Πόρων Αναθεώρησης: Ταξινόμηση κατά αθροιστικό χρόνο αναμονής για τον εντοπισμό σημείων συμφόρησης πόρων.
- Ανάλυση ακριβών ερωτημάτων: Ταξινομήστε με βάση διαφορετικές μετρήσεις (CPU, εκτελέσεις, αναγνώσεις) για να βρείτε διαφορετικούς τύπους προβλημάτων.
- Επαλήθευση με το παράθυρο εισόδου/εξόδου: Επιβεβαιώστε εάν τα ερωτήματα με μεγάλη χρήση εισόδων/εξόδων συσχετίζονται με υψηλή δραστηριότητα δίσκου.
7.3 Ενσωμάτωση με άλλα εργαλεία
Το Activity Monitor λειτουργεί καλύτερα ως μέρος ενός ευρύτερου κιτ εργαλείων παρά ως αυτόνομη λύση.
7.3.1 Χρήση με SQL Server Κατατομή
Παρακολούθηση δραστηριότητας και SQL Server Τα προγράμματα δημιουργίας προφίλ αλληλοσυμπληρώνονται άψογα. Όταν εντοπίσετε μια προβληματική συνεδρία στην Παρακολούθηση δραστηριότητας, κάντε δεξί κλικ σε αυτήν και επιλέξτε Διαδικασία ανίχνευσης σε SQL Server Κατατομή.
Αυτό εκκινεί το Profiler με φίλτρα που έχουν ήδη ρυθμιστεί ώστε να καταγράφουν μόνο τη δραστηριότητα αυτής της περιόδου σύνδεσης. Βλέπετε την πλήρη ακολουθία των εκτελεσμένων δηλώσεων, τις πληροφορίες χρονισμού και τα μηνύματα σφάλματος—λεπτομέρειες που δεν παρέχει το Activity Monitor.
Για να μάθετε περισσότερα για το SQL Server Δυνατότητες δημιουργίας προφίλ και προηγμένες τεχνικές ιχνηλάτησης, δείτε το περιεκτικός SQL Server Οδηγός δημιουργίας προφίλ.
7.3.2 Συμπλήρωση με εκτεταμένα συμβάντα
Τα Εκτεταμένα Συμβάντα προσφέρουν λεπτομερή παρακολούθηση με χαμηλό κόστος που καταγράφει πληροφορίες που χάνει το Activity Monitor. Δημιουργήστε περιόδους λειτουργίας Εκτεταμένων Συμβάντων για να παρακολουθείτε συγκεκριμένα συμβάντα, όπως αδιέξοδα, ερωτήματα μεγάλης διάρκειας ή υπερβολικές επαναμεταγλωττίσεις.
Χρησιμοποιήστε το Activity Monitor για άμεση διερεύνηση και το Extended Events για συνεχή παρακολούθηση και ιστορική ανάλυση. Τα δύο εργαλεία καλύπτουν διαφορετικές ανάγκες.
Για να μάθετε περισσότερα για το SQL Server Εκτεταμένες δυνατότητες Εκδηλώσεων και προηγμένες τεχνικές παρακολούθησης, δείτε μας περιεκτικός SQL Server Εκτεταμένος οδηγός εκδηλώσεων.
7.3.3 Λύσεις παρακολούθησης τρίτων
Τα εμπορικά εργαλεία όπως το SolarWinds Database Performance Analyzer, το Redgate SQL Monitor και το Quest Spotlight παρέχουν χαρακτηριστικά που δεν διαθέτει το Activity Monitor: ειδοποιήσεις, ιστορικό τάσεων, σχεδιασμό χωρητικότητας και αυτοματοποιημένη διάγνωση.ostics.
Αυτά τα εργαλεία αποτελούν πολύτιμες προσθήκες στο Activity Monitor, όχι αντικαταστάσεις. Το Activity Monitor παραμένει χρήσιμο για γρήγορους ελέγχους και έρευνες, ακόμη και όταν διατίθενται εξελιγμένα εργαλεία παρακολούθησης.
7.4 κοινά λάθη που πρέπει να αποφεύγετε
Η κατανόηση συνηθισμένων λαθών που σχετίζονται με την Παρακολούθηση Δραστηριότητας σάς βοηθά να τη χρησιμοποιείτε πιο αποτελεσματικά.
7.4.1 Διατήρηση της Παρακολούθησης Δραστηριότητας σε Συνεχή Λειτουργία
Η μost Ένα συνηθισμένο λάθος είναι να ανοίγετε το Activity Monitor και να το αφήνετε να λειτουργεί επ' αόριστον. Αυτό σπαταλά πόρους διακομιστή και προσφέρει μικρή αξία, καθώς δεν παρακολουθείτε ενεργά.
Κλείστε την Παρακολούθηση Δραστηριότητας όταν δεν την χρησιμοποιείτε ενεργά. Εάν χρειάζεστε συνεχή παρακολούθηση, εφαρμόστε μια κατάλληλη λύση παρακολούθησης με προγραμματισμένη συλλογή δεδομένων.
7.4.2 Υπερβολική εξάρτηση μόνο από την Παρακολούθηση Δραστηριότητας
Το Activity Monitor παρέχει μια οπτική γωνία για την εύρυθμη λειτουργία του διακομιστή. Μην βασίζεστε αποκλειστικά σε αυτό. Συμπληρώστε το με το Windows Performance Monitor για μετρήσεις σε επίπεδο λειτουργικού συστήματος, το Extended Events για λεπτομερή παρακολούθηση και την ανάλυση του σχεδίου εκτέλεσης για τη ρύθμιση των ερωτημάτων.
Το Activity Monitor σάς βοηθά να εντοπίσετε προβλήματα, αλλά η επίλυσή τους συχνά απαιτεί πρόσθετα εργαλεία και βαθύτερη ανάλυση.
Μάθετε περισσότερα σχετικά με SQL Server παρακολούθηση απόδοσης στο δικό μας Πλήρης οδηγός.
7.4.3 Αγνόηση Ιστορικών Τάσεων
Η Παρακολούθηση Δραστηριότητας εμφανίζει την τρέχουσα κατάσταση, αλλά τα προβλήματα απόδοσης συχνά έχουν μοτίβα που είναι ορατά μόνο με την πάροδο του χρόνου. Εφαρμόστε τη συλλογή ιστορικών δεδομένων, ώστε να μπορείτε να συγκρίνετε τις τρέχουσες μετρήσεις με τις βασικές γραμμές και να εντοπίσετε τάσεις.
Χωρίς ιστορικό πλαίσιο, ενδέχεται να μην αναγνωρίζετε ότι η σημερινή «κανονική» χρήση της CPU είναι 30% υψηλότερη από την αρχική τιμή του περασμένου μήνα, γεγονός που υποδηλώνει σταδιακή υποβάθμιση.
8. Αντιμετώπιση προβλημάτων παρακολούθησης δραστηριότητας
Το Activity Monitor αντιμετωπίζει μερικές φορές προβλήματα. Η γνώση του τρόπου αντιμετώπισης αυτών των προβλημάτων αποτρέπει την απογοήτευση.
8.1 Η Παρακολούθηση Δραστηριότητας δεν ανοίγει ή δεν εμφανίζει δεδομένα
Όταν η Παρακολούθηση Δραστηριότητας ανοίγει αλλά εμφανίζει κενά παράθυρα ή δεν ανοίγει καθόλου, μπορεί να ευθύνονται διάφοροι παράγοντες.
8.1.1 Ζητήματα δικαιωμάτων
Η μost Συνηθισμένη αιτία προβλημάτων με την Παρακολούθηση Δραστηριότητας είναι η ανεπαρκής άδειες. Για επαλήθευση και επίλυση:
- Ελέγξτε τα δικαιώματα σε επίπεδο διακομιστή:
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name = 'VIEW SERVER STATE'; - Εάν δεν επιστρέψουν γραμμές, δεν έχετε δικαίωμα ΠΡΟΒΟΛΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΙΑΚΟΜΙΣΤΗ.
- Ζητήστε από έναν διαχειριστή διακομιστή να το παραχωρήσει:
USE master; GRANT VIEW SERVER STATE TO [YourLogin]; - Κλείστε και ανοίξτε ξανά την Παρακολούθηση Δραστηριότητας αφού εκχωρηθούν τα δικαιώματα.
8.1.2 Προβλήματα συμβατότητας εκδόσεων
Χρησιμοποιώντας μια παλιά έκδοση του SQL Server Management Studio για σύνδεση με νεότερο SQL Server Η έκδοση μπορεί να προκαλέσει αποτυχίες στην Παρακολούθηση Δραστηριότητας. Το εργαλείο ενδέχεται να μην κατανοεί νέους τύπους αναμονής ή στήλες προβολής συστήματος.
Να χρησιμοποιείτε πάντα την έκδοση SSMS που ταιριάζει ή είναι νεότερη από την SQL Server έκδοση. Η Microsoft παρέχει την πιο πρόσφατη έκδοση SSMS ως δωρεάν λήψη ξεχωριστά από SQL Server Itself.
8.1.3 Προβλήματα Τείχους Προστασίας και Δικτύου
Η Παρακολούθηση Δραστηριότητας απαιτεί συνδεσιμότητα με το SQL Server παράδειγμα σε τυπικές θύρες (1433 από προεπιλογή). Εάν μπορείτε να συνδεθείτε μέσω της Εξερεύνησης Αντικειμένων αλλά η Παρακολούθηση Δραστηριότητας αποτυγχάνει, οι κανόνες του τείχους προστασίας ενδέχεται να αποκλείουν συγκεκριμένες συνδέσεις.
Βεβαιωθείτε ότι ο πελάτης σας μπορεί να επικοινωνήσει με το SQL Server Συνδέστε το μηχάνημα σε όλες τις απαραίτητες θύρες. Ελέγξτε τόσο το Τείχος προστασίας των Windows όσο και τυχόν τείχη προστασίας δικτύου μεταξύ του υπολογιστή-πελάτη και του διακομιστή σας.
8.2 Μόνιμη παύση της Παρακολούθησης Δραστηριότητας
Ένα κοινό πρόβλημα, ιδιαίτερα σε SQL Server Το 2019, η Παρακολούθηση Δραστηριότητας ανοίγει σε κατάσταση παύσης και αρνείται να συνεχίσει.
8.2.1 Κατανόηση της κατάστασης παύσης
Όταν η Παρακολούθηση Δραστηριότητας τίθεται σε παύση, όλα τα παράθυρα εμφανίζουν την κατάσταση «Σε παύση» με ένα κουμπί συνέχισης που ενδέχεται να μην λειτουργεί. Αυτό σας εμποδίζει να δείτε οποιαδήποτε δραστηριότητα διακομιστή.
Η κατάσταση παύσης συνήθως προκύπτει λόγω προβλημάτων δικαιωμάτων, περιορισμών απομακρυσμένης σύνδεσης ή σφαλμάτων έκδοσης SSMS και όχι λόγω σκόπιμης ενέργειας παύσης.
8.2.2 Συνήθεις αιτίες
Η Παρακολούθηση Δραστηριότητας ενδέχεται να τεθεί σε κατάσταση μόνιμης παύσης λόγω:
- Λείπει το δικαίωμα ΠΡΟΒΟΛΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΙΑΚΟΜΙΣΤΗ σε νεότερα τμήματα παραθύρου που προστέθηκαν πρόσφατα SQL Server εκδόσεις
- Οι απομακρυσμένες συνδέσεις είναι απενεργοποιημένες στο SQL Server παράδειγμα
- Αποτυχίες ελέγχου ταυτότητας για συγκεκριμένα ερωτήματα συστήματος
- Σφάλματα σε συγκεκριμένες εκδόσεις SSMS, ιδιαίτερα στις εκδόσεις 18.0 έως 18.3
- Προβλήματα συνδεσιμότητας μεταξύ υπολογιστή-πελάτη και διακομιστή
8.2.3 Βήματα επίλυσης
Για να επιλύσετε προβλήματα κατάστασης παύσης της Παρακολούθησης Δραστηριότητας:
- Ενημέρωση SSMS: Κάντε λήψη και εγκατάσταση του τελευταίου SQL Server Έκδοση Management Studio από τον ιστότοπο της Microsoft. Πολλά σφάλματα κατάστασης παύσης διορθώθηκαν σε μεταγενέστερες εκδόσεις.
- Επαλήθευση δικαιωμάτων: Βεβαιωθείτε ότι έχετε τα δικαιώματα VIEW SERVER STATE και VIEW ANY DEFINITION.
- Ελέγξτε τις απομακρυσμένες συνδέσεις: Βεβαιωθείτε ότι το SQL Server Η παρουσία επιτρέπει απομακρυσμένες συνδέσεις:
EXEC sp_configure 'remote access';Εάν η τιμή είναι 0, ζητήστε από έναν διαχειριστή να την ενεργοποιήσει.
- Restart SSMS: Μερικές φορές απλώς κλείνουμε όλα τα παράθυρα και τα...tarting SQL Server Το Management Studio επιλύει το πρόβλημα.
- Σύνδεση με τον Έλεγχο ταυτότητας των Windows: Εάν χρησιμοποιείτε έλεγχο ταυτότητας SQL, δοκιμάστε τον έλεγχο ταυτότητας των Windows, καθώς μερικές φορές παρακάμπτει προβλήματα παύσης που σχετίζονται με τον έλεγχο ταυτότητας.
8.3 Προβλήματα απόδοσης κατά τη χρήση της Παρακολούθησης δραστηριότητας
Εάν η ίδια η Παρακολούθηση Δραστηριότητας γίνει αργή ή προκαλέσει υποβάθμιση της απόδοσης του διακομιστή, απαιτείται προσαρμογή.
8.3.1 Μείωση των Γενικών Εξόδων Παρακολούθησης
Για να ελαχιστοποιήσετε τον αντίκτυπο της Παρακολούθησης Δραστηριότητας:
- Αυξήστε το διάστημα ανανέωσης σε 30 δευτερόλεπτα ή 1 λεπτό.
- Κλείστε τα παράθυρα που δεν χρησιμοποιείτε ενεργά κάνοντας κλικ στο κουμπί σύμπτυξης.
- Όταν τα τμήματα παραθύρου είναι συμπτυγμένα, η Παρακολούθηση Δραστηριότητας δεν υποβάλλει ερώτημα για δεδομένα σχετικά με αυτά.
- Αποφύγετε την ταυτόχρονη εκτέλεση πολλαπλών στιγμιότυπων της Παρακολούθησης Δραστηριότητας.
- Κλείστε εντελώς το Activity Monitor όταν δεν διερευνάτε ενεργά προβλήματα.
8.3.2 Εναλλακτικές μέθοδοι παρακολούθησης ελαφρού βάρους
Εάν η Παρακολούθηση Δραστηριότητας απαιτεί υπερβολικά πολλούς πόρους για το περιβάλλον σας, εξετάστε εναλλακτικές λύσεις:
- Υποβολή ερωτημάτων απευθείας σε DMV: Γράψτε συγκεκριμένα ερωτήματα T-SQL που ανακτούν μόνο τις πληροφορίες που χρειάζεστε.
- Χρησιμοποιήστε το sp_WhoIsActive: Αυτή η αποθηκευμένη διαδικασία είναι ιδιαίτερα βελτιστοποιημένη και συνήθως έχει χαμηλότερο κόστος από την Παρακολούθηση Δραστηριότητας.
- Υλοποίηση δειγματοληψίας: Προγραμματίστε εργασίες SQL Agent που καταγράφουν στιγμιότυπα δεδομένων DMV σε τακτά χρονικά διαστήματα, αποθηκεύοντας τα αποτελέσματα σε πίνακες για μελλοντική ανάλυση.
- Παρακολούθηση δευτερευόντων αντιγράφων: In Ομάδες πάντα σε διαθεσιμότητα, εκτελέστε την Παρακολούθηση Δραστηριότητας σε ένα αναγνώσιμο δευτερεύον αντί για το κύριο.
8.4 Ανακριβείς ή ελλείπουσες πληροφορίες
Μερικές φορές, η Παρακολούθηση Δραστηριότητας εμφανίζει πληροφορίες που φαίνονται λανθασμένες ή ελλιπείς.
8.4.1 Επαλήθευση Δεδομένων με DMV
Όταν τα αποτελέσματα της Παρακολούθησης Δραστηριότητας φαίνονται ύποπτα, επαληθεύστε τα υποβάλλοντας ερώτημα απευθείας στα υποκείμενα DMV. Για παράδειγμα, εάν το παράθυρο Διεργασίες δεν εμφανίζει κανένα μπλοκάρισμα, αλλά οι χρήστες το αναφέρουν, υποβάλετε ερώτημα:
SELECT
blocking_session_id,
session_id,
wait_type,
wait_time,
wait_resource
FROM sys.dm_exec_requests
WHERE blocking_session_id != 0;
Εάν αυτό το ερώτημα εμφανίζει αποκλεισμό που δεν εμφανίστηκε στην Παρακολούθηση Δραστηριότητας, έχετε επιβεβαιώσει ότι υπάρχει πρόβλημα εμφάνισης.
8.4.2 Κατανόηση του Χρόνου Ανανέωσης Δεδομένων
Να θυμάστε ότι η Παρακολούθηση Δραστηριότητας εμφανίζει στιγμιότυπα. Ένα ερώτημα που εκτελέστηκε μεταξύ διαστημάτων ανανέωσης δεν θα εμφανίζεται στα Πρόσφατα Ακριβά Ερωτήματα, εκτός εάν το σχέδιο εκτέλεσης παραμένει στην προσωρινή μνήμη.
Ομοίως, τα στατιστικά στοιχεία αναμονής στο παράθυρο "Αναμονές πόρων" αντικατοπτρίζουν τη συσσώρευση από το τελευταίο στιγμιότυπο. Τα ταχέως μεταβαλλόμενα φόρτα εργασίας ενδέχεται να εμφανίζουν διαφορετικά μοτίβα σε κάθε ανανέωση.
9. Προηγμένες Τεχνικές Παρακολούθησης Δραστηριότητας
Οι έμπειροι διαχειριστές βάσεων δεδομένων χρησιμοποιούν το Activity Monitor με εξελιγμένους τρόπους για να εξαγάγουν τη μέγιστη δυνατή διάγνωση.ostic αξία.
9.1 Συνδυασμός πολλαπλών παραθύρων για ανάλυση βασικής αιτίας
Η πραγματική δύναμη του Activity Monitor αναδεικνύεται όταν συσχετίζετε πληροφορίες σε πολλά παράθυρα για να κατανοήσετε πολύπλοκα ζητήματα απόδοσης.
9.1.1 Συσχέτιση Αναμονών με Διεργασίες
Όταν το παράθυρο "Αναμονές πόρων" εμφανίζει υψηλούς χρόνους αναμονής σε μια κατηγορία, χρησιμοποιήστε το παράθυρο "Διαδικασίες" για να προσδιορίσετε ποιες περίοδοι λειτουργίας αντιμετωπίζουν αυτές τις αναμονές:
- Σημειώστε την κατηγορία αναμονής με υψηλό αθροιστικό χρόνο αναμονής (π.χ., "Κλείδωμα").
- Μεταβείτε στο παράθυρο Διεργασίες.
- Ταξινόμηση κατά Τύπος αναμονής για να ομαδοποιήσουν τις συνεδρίες με βάση την τρέχουσα αναμονή τους.
- Αναζητήστε συνεδρίες που εμφανίζουν τύπους αναμονής στην προβληματική κατηγορία.
- Για αυτές τις συνεδρίες, εξετάστε το Πόρος αναμονής στήλη για να δείτε ποια αντικείμενα βάσης δεδομένων εμπλέκονται.
- Κάντε δεξί κλικ και επιλέξτε Λεπτομέρειες για να δείτε το κείμενο του ερωτήματος.
Αυτή η συσχέτιση σάς βοηθά να μεταβείτε από το "έχουμε αναμονή κλειδώματος" στο "αυτό το συγκεκριμένο ερώτημα περιμένει κλειδώματα σε αυτόν τον πίνακα".
9.1.2 Σύνδεση ακριβών ερωτημάτων με ζητήματα εισόδου/εξόδου
Όταν το παράθυρο Εισόδου/Εξόδου Αρχείου Δεδομένων εμφανίζει υψηλή δραστηριότητα δίσκου σε μια συγκεκριμένη βάση δεδομένων:
- Σημειώστε ποια αρχεία βάσης δεδομένων έχουν υψηλούς ρυθμούς ανάγνωσης ή εγγραφής MB/δευτ.
- Μετάβαση σε Πρόσφατα Ακριβά Ερωτήματα.
- Ταξινόμηση κατά Φυσικές αναγνώσεις/δευτερόλεπτο για τον εντοπισμό ερωτημάτων που διαβάζονται σε μεγάλο βαθμό από τον δίσκο.
- Φιλτράρετε ή εντοπίστε οπτικά ερωτήματα που εκτελούνται στη βάση δεδομένων με υψηλή είσοδο/έξοδο.
- Εξετάστε τα σχέδια εκτέλεσης αυτών των ερωτημάτων για σαρώσεις πινάκων ή ελλείποντα ευρετήρια που προκαλούν υπερβολική είσοδο/έξοδο.
Αυτή η ανάλυση πολλαπλών παραθύρων συνδέει τα συμπτώματα (υψηλή είσοδος/έξοδος δίσκου) με τις αιτίες (συγκεκριμένα αναποτελεσματικά ερωτήματα).
9.2 Χρήση του Activity Monitor για τον Σχεδιασμό Χωρητικότητας
Ενώ το Activity Monitor δεν αποθηκεύει ιστορικά δεδομένα, μπορείτε να το χρησιμοποιήσετε στρατηγικά για παρατηρήσεις σχεδιασμού χωρητικότητας.
9.2.1 Προσδιορισμός προτύπων αιχμής χρήσης
Παρακολουθήστε τη δραστηριότητα του διακομιστή σε διαφορετικές ώρες της ημέρας για να εντοπίσετε μοτίβα χρήσης:
- Ανοίξτε την Παρακολούθηση Δραστηριότητας κατά τις γνωστές ώρες αιχμής.
- Σημειώστε τις μέγιστες τιμές του γραφήματος % Processor Time.
- Καταγράψτε τον μέγιστο αριθμό εργασιών σε αναμονή.
- Παρατηρήστε τα αιτήματα παρτίδας/δευτ. στις ώρες αιχμής.
- Καταγράψτε τις πιο πολυάσχολες βάσεις δεδομένων στο παράθυρο Διεργασίες.
- Επαναλάβετε κατά τις ώρες εκτός αιχμής για σύγκριση.
Εάν ο χρόνος επεξεργαστή κατά τις ώρες αιχμής υπερβαίνει σταθερά το 80%, πλησιάζετε στα όρια χωρητικότητας της CPU. Ομοίως, η αύξηση του αριθμού αναμονής υποδηλώνει αυξανόμενο ανταγωνισμό πόρων.
9.2.2 Ανάλυση Τάσεων Πόρων
Ενώ η Παρακολούθηση Δραστηριότητας δείχνει την τρέχουσα κατάσταση, μπορείτε να τη χρησιμοποιήσετε για να ελέγξετε τις τάσεις καταγράφοντας βασικές μετρήσεις με την πάροδο του χρόνου:
- Λήψη στιγμιότυπων οθόνης του παραθύρου Επισκόπηση την ίδια ώρα κάθε μέρα
- Καταγράψτε τις μέγιστες τιμές από κάθε γράφημα
- Συγκρίνετε εβδομαδιαίως για να εντοπίσετε τάσεις ανάπτυξης
- Παρακολουθήστε για σταδιακές αυξήσεις στον μέσο χρόνο επεξεργαστή ή στους ρυθμούς εισόδου/εξόδου
Αυτή η χειροκίνητη καταγραφή τάσεων συμπληρώνει πιο εξελιγμένες λύσεις παρακολούθησης και βοηθά στην αιτιολόγηση της επέκτασης της χωρητικότητας.
9.3 Τεκμηρίωση Βασικών Γραμμών Απόδοσης
Ο καθορισμός βασικών μετρήσεων απόδοσης σάς βοηθά να αναγνωρίζετε πότε η απόδοση υποβαθμίζεται.
9.3.1 Καταγραφή Βασικών Μετρήσεων
Κατά τη διάρκεια περιόδων γνωστής καλής απόδοσης, καταγράψτε μετρήσεις Activity Monitor:
- Ανοίξτε την Παρακολούθηση Δραστηριότητας κατά τη διάρκεια των κανονικών επιχειρηματικών λειτουργιών (όχι σε ώρες αιχμής ή εκτός αιχμής).
- Τιμές παραθύρου Επισκόπησης Εγγραφής:
- Τυπικό εύρος % χρόνου επεξεργαστή
- Μέσος αριθμός εργασιών σε αναμονή
- Κανονικός ρυθμός εισόδου/εξόδου βάσης δεδομένων
- Τυπικά αιτήματα παρτίδας/δευτ.
- Σημείωση: Οι κατηγορίες παραθύρου "Περιμένοντας τους πόρους" που εμφανίζουν το most χρόνος αναμονής.
- Καταγράψτε τον αριθμό των ενεργών διεργασιών που συνήθως βρίσκονται στο παράθυρο Διεργασίες.
- Καταγράψτε αντιπροσωπευτικές μετρήσεις εκτέλεσης ερωτημάτων από Πρόσφατα Ακριβά Ερωτήματα.
Αποθηκεύστε αυτήν την τεκμηρίωση βασικής γραμμής για μελλοντική αναφορά κατά την διερεύνηση προβλημάτων απόδοσης.
9.3.2 Σύγκριση Τρέχουσας και Βασικής Απόδοσης
Όταν προκύψουν προβλήματα απόδοσης, συγκρίνετε τις τρέχουσες μετρήσεις της Παρακολούθησης Δραστηριότητας με την καταγεγραμμένη τιμή αναφοράς σας:
- Είναι ο χρόνος επεξεργαστή σημαντικά υψηλότερος από την αρχική τιμή; Εστιάστε σε ερωτήματα που απαιτούν μεγάλη ποσότητα CPU.
- Είναι οι εργασίες αναμονής 2-3 φορές υψηλότερες από τα βασικά επίπεδα; Διερευνήστε τις αναμονές πόρων.
- Είναι η είσοδος/έξοδος σημαντικά υψηλότερη; Ελέγξτε το παράθυρο εισόδου/εξόδου αρχείου δεδομένων και τα ακριβά ερωτήματα.
- Είναι τα αιτήματα παρτίδας χαμηλότερα από την αρχική τιμή κατά τις ώρες αιχμής; Αναζητήστε προβλήματα αποκλεισμού ή συνδεσιμότητας.
Αυτή η σύγκριση σάς βοηθά να εντοπίσετε τι έχει αλλάξει και να εστιάσετε κατάλληλα τις προσπάθειες αντιμετώπισης προβλημάτων.
9.4 Δημιουργία Προσαρμοσμένων Ροών Εργασίας Παρακολούθησης
Αναπτύξτε συστηματικές ροές εργασίας για κοινά σενάρια έρευνας, ώστε να διασφαλίζεται η διεξοδική και επαναλήψιμη ανάλυση.
9.4.1 Διαδικασία Διερεύνησης Βήμα προς Βήμα
Όταν οι χρήστες αναφέρουν προβλήματα απόδοσης, ακολουθήστε μια συνεπή ροή εργασίας:
- Γρήγορος έλεγχος υγείας: Ανοίξτε την Παρακολούθηση Δραστηριότητας και σαρώστε τα γραφήματα του παραθύρου Επισκόπηση για εμφανείς ανωμαλίες.
- Ελέγξτε για μπλοκάρισμα: Αναπτύξτε το παράθυρο Διεργασίες, φιλτράρετε για Μη Κενά στη στήλη Αποκλεισμένα από.
- Προσδιορίστε την αντιπαράθεση πόρων: Εξετάστε το παράθυρο "Αναμονές πόρων" ταξινομημένο κατά χρόνο αναμονής.
- Βρείτε ακριβά ερωτήματα: Εξετάστε τα Πρόσφατα Ακριβά Ερωτήματα ταξινομημένα κατά CPU, έπειτα κατά εκτελέσεις και τέλος κατά αναγνώσεις.
- Συσχετίστε μοτίβα εισόδου/εξόδου: Διασταύρωση ακριβών ερωτημάτων με τη δραστηριότητα του παραθύρου εισόδου/εξόδου αρχείων δεδομένων.
- Ευρήματα εγγράφων: Λήψη στιγμιότυπων οθόνης και καταγραφή των σχετικών αναγνωριστικών περιόδου σύνδεσης, των τύπων αναμονής και των λεπτομερειών ερωτήματος.
- Βαθιά κατάδυση: Χρησιμοποιήστε ιχνηλατήσεις Profiler, ανάλυση σχεδίου εκτέλεσης και ερωτήματα DMV για λεπτομερή διερεύνηση των εντοπισμένων ζητημάτων.
9.4.2 Κριτήρια κλιμάκωσης
Καθορισμός κριτηρίων για το πότε θα κλιμακώνονται τα ζητήματα έναντι της συνέχισης της έρευνας:
- Κλιμακώστε αμέσως: Αλυσίδες αποκλεισμού διάρκειας >5 λεπτών, χρόνος επεξεργαστή στο 100% για >2 λεπτά, κρίσιμες διεργασίες συστήματος που εμφανίζουν κατάσταση ΑΝΑΣΤΟΛΗΣ.
- Κλιμάκωση με ανάλυση: Επαναλαμβανόμενα ακριβά ερωτήματα που καταναλώνουν >50% της CPU, σταθερά υψηλοί χρόνοι απόκρισης εισόδου/εξόδου >50ms, επαναλαμβανόμενες αποτυχίες στις εκχωρήσεις μνήμης.
- Διερευνήστε περαιτέρω: ΏραrarΤο y περιμένει να επιλυθεί εντός λεπτών, ερωτήματα με μη βέλτιστα σχέδια αλλά αποδεκτή απόδοση, μικρό μπλοκάρισμα διάρκειας <30 δευτερολέπτων.
10. Παρακολούθηση δραστηριότητας σε διαφορετικά SQL Server εκδόσεις
Η Παρακολούθηση Δραστηριότητας έχει εξελιχθεί σε όλα τα επίπεδα. SQL Server εκδόσεις, με κάθε κυκλοφορία να φέρνει βελτιώσεις και περιστασιακά νέα ζητήματα.
10.1 Παρακολούθηση δραστηριότητας σε SQL Server 2008 και αργότερα
SQL Server Το 2008 εισήγαγε τον σύγχρονο σχεδιασμό της Παρακολούθησης Δραστηριότητας, ο οποίος παραμένει σε μεγάλο βαθμό αμετάβλητος μέχρι σήμερα.
10.1.1 Νέες λειτουργίες που παρουσιάστηκαν στο SQL Server 2008
The SQL Server Ο επανασχεδιασμός της Παρακολούθησης Δραστηριότητας του 2008 έφερε σημαντικές βελτιώσεις:
- Γραφικός πίνακας ελέγχου με γραφήματα πραγματικού χρόνου στο παράθυρο Επισκόπηση
- Επεκτάσιμη/συμπτυσσόμενη διεπαφή παραθύρου που αντικαθιστά την παλιά προβολή μόνο πλέγματος
- Το παράθυρο "Πρόσφατα ακριβά ερωτήματα" εμφανίζει συγκεντρωτικά δεδομένα απόδοσης ερωτημάτων
- Παράθυρο εισόδου/εξόδου αρχείων δεδομένων για παρακολούθηση της δραστηριότητας δίσκου ανά αρχείο
- Ενισχυμένο παράθυρο "Αναμονή πόρων" με κατηγοριοποίηση αναμονής
- Κάντε δεξί κλικ στα μενού περιβάλλοντος για ενέργειες διεργασίας, όπως τερματισμός συνεδριών και εκκίνηση του Profiler
- Ρυθμιζόμενα διαστήματα ανανέωσης από 1 δευτερόλεπτο έως 1 ώρα
Αυτές οι αλλαγές μετέτρεψαν το Activity Monitor από μια απλή λίστα διεργασιών σε έναν ολοκληρωμένο πίνακα ελέγχου παρακολούθησης.
10.1.2 Αλλαγές από SQL Server 2005
SQL Server Το Activity Monitor του 2005 ήταν πολύ πιο περιορισμένο:
- Πρόσβαση μέσω του φακέλου Διαχείρισης στην Εξερεύνηση Αντικειμένων αντί για τη γραμμή εργαλείων
- Ενιαίο πλέγμα που εμφανίζει λίστα διεργασιών με βασικές πληροφορίες
- Δεν υπάρχουν γραφικά διαγράμματα ή πολλαπλά τμήματα παραθύρου
- Χωρίς ακριβά ερωτήματα ή παρακολούθηση I/O
- Πληροφορίες στατιστικών στοιχείων περιορισμένης αναμονής
Ο επανασχεδιασμός του 2008 αντιπροσώπευε μια πλήρη αναδιαμόρφωση και όχι μια σταδιακή βελτίωση.
10.2 Παρακολούθηση δραστηριότητας σε SQL Server 2014/2016
SQL Server Τα έτη 2014 και 2016 πραγματοποίησαν σταδιακές βελτιώσεις στη συλλογή υποκείμενων δεδομένων του Activity Monitor, αλλά λίγες οπτικές αλλαγές.
10.2.1 Βελτιώσεις και Ενισχύσεις
Οι βασικές βελτιώσεις σε αυτές τις εκδόσεις περιελάμβαναν:
- Καλύτερη απόδοση κατά την παρακολούθηση διακομιστών με χιλιάδες προσωρινά αποθηκευμένα προγράμματα
- Βελτιωμένες δυνατότητες φιλτραρίσματος στο παράθυρο "Διαδικασίες"
- Βελτιωμένη ακρίβεια συγκέντρωσης στατιστικών αναμονής
- Καλύτερος χειρισμός της ταξινόμησης και του φιλτραρίσματος στηλών με μεγάλα σύνολα αποτελεσμάτων
- Πιο αποτελεσματικά ερωτήματα DMV που μειώνουν το φόρτο παρακολούθησης
Η βασική διεπαφή παρέμεινε συνεπής με SQL Server 2008, διατηρώντας την εξοικείωση των διαχειριστών.
10.3 Παρακολούθηση δραστηριότητας σε SQL Server 2019/2022
Πρόσφατος SQL Server Οι εκδόσεις συνεχίζουν την εξέλιξη του Activity Monitor με έμφαση στην απόδοση και τη σταθερότητα.
10.3.1 Τελευταίες δυνατότητες και δυνατότητες
SQL Server Η Παρακολούθηση Δραστηριότητας 2019 και 2022 περιλαμβάνει:
- Υποστήριξη για νέους τύπους αναμονής που εισήχθησαν σε αυτές τις εκδόσεις
- Βελτιωμένη απόδοση απόδοσης σε SSMS χρησιμοποιώντας τεχνολογία WPF
- Καλύτερος χειρισμός μεγάλου αριθμού ενεργών συνεδριών
- Βελτιωμένη συμβατότητα με πλατφόρμες cloud SQL
- Πιο ακριβείς μετρήσεις CPU και I/O
10.3.2 Γνωστά προβλήματα σε πρόσφατες εκδόσεις
SQL Server Το 2019 εισήγαγε αρκετά σφάλματα στο Activity Monitor:
- Μόνιμη κατάσταση παύσης: Η Παρακολούθηση Δραστηριότητας συχνά μπαίνει σε κατάσταση παύσης και δεν συνεχίζει, ιδιαίτερα στις εκδόσεις SSMS 18.0-18.3. Διορθώθηκε σε νεότερες εκδόσεις SSMS.
- Αποτυχίες απομακρυσμένης σύνδεσης: Ορισμένες διαμορφώσεις εμποδίζουν το άνοιγμα της Παρακολούθησης Δραστηριότητας σε απομακρυσμένες παρουσίες. Οι λύσεις περιλαμβάνουν την ενεργοποίηση συγκεκριμένων σημαιών παρακολούθησης ή τη χρήση νεότερων δομών SSMS.
- Ζητήματα άδειας: Οι νέες προβολές συστήματος απαιτούν πρόσθετα δικαιώματα που δεν τεκμηριώνονται με σαφήνεια, με αποτέλεσμα κενές οθόνες ακόμη και με την κατάσταση VIEW SERVER STATE.
Να χρησιμοποιείτε πάντα την πιο πρόσφατη έκδοση του SSMS όταν εργάζεστε με SQL Server 2019 και 2022 για την αποφυγή αυτών των προβλημάτων.
11. Πρακτικές περιπτώσεις χρήσης και παραδείγματα
Παραδείγματα από τον πραγματικό κόσμο δείχνουν πώς να εφαρμόσετε αποτελεσματικά την Παρακολούθηση Δραστηριότητας σε συνηθισμένα σενάρια αντιμετώπισης προβλημάτων.
11.1 Μελέτη περίπτωσης: Διάγνωση αργής εφαρμογής ιστού
Μια ομάδα ανάπτυξης αναφέρει ότι η διαδικτυακή εφαρμογή τους έχει γίνει απαράδεκτα αργή, με τη φόρτωση σελίδων να διαρκεί 20-30 δευτερόλεπτα αντί για τα κανονικά 2-3 δευτερόλεπτα.
11.1.1 Αρχική διερεύνηση με παράθυρο επισκόπησης
Ανοίξτε την Παρακολούθηση Δραστηριότητας και εξετάστε το παράθυρο Επισκόπηση:
- Το γράφημα % χρόνου επεξεργαστή δείχνει χρήση CPU 85-95%, σημαντικά υψηλότερο από το κανονικό βασικό 30-40%.
- Οι Εργασίες Αναμονής κυμαίνονται μεταξύ 10-20 εργασιών, σε αντίθεση με μια κανονική τιμή αναφοράς 0-3.
- Η είσοδος/έξοδος της βάσης δεδομένων εμφανίζει μέτρια δραστηριότητα περίπου 50 MB/s.
- Τα μαζικά αιτήματα/δευτερόλεπτο είναι χαμηλότερα από τα αναμενόμενα στα 100/δευτερόλεπτο, σε σύγκριση με τα τυπικά 300-400/δευτερόλεπτο κατά τις εργάσιμες ώρες.
Αυτό το μοτίβο υποδηλώνει συμφόρηση της CPU με ανταγωνισμό πόρων που προκαλεί μειωμένη απόδοση. Ο διακομιστής εργάζεται σκληρά αλλά δεν επεξεργάζεται πολλά αιτήματα.
11.1.2 Προσδιορισμός του προβληματικού ερωτήματος
Αναπτύξτε το παράθυρο Πρόσφατα ακριβά ερωτήματα και ταξινομήστε κατά Εκτελέσεις/λεπτό:
- Το επάνω ερώτημα εμφανίζει 15,000 εκτελέσεις ανά λεπτό.
- Κάντε δεξί κλικ και επιλέξτε Επεξεργασία κειμένου ερωτήματος για να εξετάσετε το ερώτημα.
- Το ερώτημα είναι μια απλή εντολή SELECT που ανακτά μια μεμονωμένη εγγραφή χρήστη:
SELECT * FROM Users WHERE UserId = @UserId. - Αυτό το ερώτημα δεν θα πρέπει να εκτελείται 15,000 φορές ανά λεπτό για κανονική χρήση της εφαρμογής.
Κάντε δεξί κλικ στο ερώτημα και επιλέξτε Εμφάνιση σχεδίου εκτέλεσηςΤο σχέδιο εμφανίζει μια σάρωση πίνακα στον πίνακα Χρήστες με μια προειδοποίηση σχετικά με ένα ευρετήριο που λείπει στη στήλη UserId.
Φιλτράρετε το παράθυρο "Διαδικασίες" κατά Εφαρμογή για να εμφανίσετε μόνο τις συνδέσεις της εφαρμογής web. Πολλαπλές συνεδρίες εμφανίζουν το ίδιο ερώτημα να εκτελείται επανειλημμένα.
11.1.3 Επίλυση και Επαλήθευση
Το πρόβλημα πηγάζει από δύο ζητήματα: υπερβολικές εκτελέσεις ερωτημάτων και έλλειψη ευρετηρίου. Βήματα επίλυσης:
- Δημιουργήστε το ευρετήριο που λείπει:
CREATE NONCLUSTERED INDEX IX_Users_UserId ON Users (UserId); - Επικοινωνήστε με την ομάδα ανάπτυξης σχετικά με τις υπερβολικές εκτελέσεις. Η έρευνα αποκαλύπτει ένα πρόβλημα ερωτήματος N+1 στον κώδικα της εφαρμογής όπου ένας βρόχος ανακτά στοιχεία χρήστη για κάθε στοιχείο σε μια λίστα.
- Τροποποίηση της εφαρμογής για να ομαδοποιήσετε τις αναζητήσεις του χρήστη σε ένα μόνο ερώτημα χρησιμοποιώντας έναν όρο IN ή μια παράμετρο με τιμές πίνακα.
- Επαληθεύστε την επιδιόρθωση μέσω της παρακολούθησης του Activity Monitor μετά την ανάπτυξη. Η χρήση της CPU μειώνεται στο 35-40%, οι εκτελέσεις ανά λεπτό μειώνονται σε 200-300 και οι χρόνοι απόκρισης της εφαρμογής επιστρέφουν στο φυσιολογικό.
11.2 Μελέτη περίπτωσης: Επίλυση προβλήματος αποκλεισμού
Οι χρήστες αναφέρουν ότι το σύστημα εισαγωγής παραγγελιών παγώνει περιοδικά για 30-60 δευτερόλεπτα πριν επανέλθει στην κανονική λειτουργία.
11.2.1 Ανίχνευση της αλυσίδας μπλοκαρίσματος
Ανοίξτε την Παρακολούθηση Δραστηριότητας κατά τη διάρκεια ενός από αυτά τα συμβάντα παγώματος και αναπτύξτε το παράθυρο Διεργασίες:
- Ταξινόμηση κατά Αναγνωριστικό συνεδρίας για να δείτε όλες τις οργανωμένες συνεδρίες.
- Πολλαπλές συνεδρίες εμφανίζουν τιμές στο Αποκλεισμένο από στήλη, όλες που δείχνουν στο Session ID 73.
- Η συνεδρία 73 δείχνει το '1' στο Κεφάλι μπλοκαρίσματος στήλη, επιβεβαιώνοντας ότι είναι η βασική αιτία.
- The Τύπος αναμονής για τις αποκλεισμένες συνεδρίες εμφανίζεται η ένδειξη LCK_M_X, που υποδεικνύει ότι περιμένουν αποκλειστικά κλειδώματα.
- The Πόρος αναμονής Η στήλη αποκαλύπτει ότι το μπλοκάρισμα βρίσκεται στον πίνακα Παραγγελίες.
11.2.2 Ανάλυση της αιτίας
Κάντε δεξί κλικ στην Συνεδρία 73 και επιλέξτε Λεπτομέρειες για να δείτε την εντολή:
UPDATE Orders
SET Status = 'Processing',
LastModified = GETDATE()
WHERE OrderId IN (SELECT OrderId FROM #TempOrders);
Αυτή η ενημέρωση είναι μέρος μιας εργασίας μαζικής επεξεργασίας που εκτελείται ανά ώρα. Έλεγχος του Συνδέση Η στήλη επιβεβαιώνει ότι η περίοδος λειτουργίας ανήκει στον λογαριασμό υπηρεσίας μαζικής επεξεργασίας.
Το ερώτημα διατηρεί κλειδαριές στον πίνακα Παραγγελίες κατά την επεξεργασία χιλιάδων παραγγελιών. Χρόνος αναμονής για αποκλεισμένες συνεδρίες αυξάνεται σταθερά, επιβεβαιώνοντας ότι αυτή η μακροχρόνια λειτουργία είναι το πρόβλημα.
11.2.3 Υλοποίηση της επιδιόρθωσης
Βραχυπρόθεσμη επίλυση:
- Καταγράψτε τις λεπτομέρειες της Συνεδρίας 73, συμπεριλαμβανομένου του κειμένου του ερωτήματος και της διάρκειας.
- Αφήστε την ενημέρωση να ολοκληρωθεί φυσικά, καθώς πρόκειται για νόμιμη μαζική επεξεργασία.
- Μετά την ολοκλήρωση, επαληθεύστε ότι οι αποκλεισμένες συνεδρίες έχουν διαγραφεί και ότι οι κανονικές λειτουργίες θα συνεχιστούν.
Μακροπρόθεσμες λύσεις που εφαρμόστηκαν:
- Επαναπρογραμματισμός της μαζικής εργασίας να λειτουργεί εκτός ωρών αιχμής (2-4 π.μ. αντί για εργάσιμες ώρες).
- Τροποποίηση της μαζικής επεξεργασίας για την ενημέρωση των παραγγελιών σε μικρότερες παρτίδες των 100 εγγραφών κάθε φορά, αποδεσμεύοντας κλειδώματα μεταξύ παρτίδων.
- Προσθέστε ένα ευρετήριο στη στήλη OrderId για να επιταχύνετε τη λειτουργία ενημέρωσης.
- Εξετάστε την απομόνωση SNAPSHOT για λειτουργίες ανάγνωσης για τη μείωση του αντίκτυπου του μπλοκαρίσματος.
11.3 Μελέτη περίπτωσης: Εντοπισμός υπερβολικών εκτελέσεων ερωτημάτων
Η παρακολούθηση της βάσης δεδομένων δείχνει ότι η χρήση της CPU έχει αυξηθεί σταδιακά τον τελευταίο μήνα, αλλά δεν έχουν σημειωθεί εμφανείς αλλαγές στον κώδικα της εφαρμογής.
11.3.1 Εντοπισμός μη φυσιολογικών μετρήσεων εκτέλεσης
Ανοίξτε την Παρακολούθηση Δραστηριότητας και εξετάστε το παράθυρο Πρόσφατα Ακριβά Ερωτήματα:
- Ταξινόμηση κατά Εκτελέσεις/λεπτό να δω το μost ερωτήματα που εκτελούνται συχνά.
- Το κορυφαίο ερώτημα εμφανίζει 37,000 εκτελέσεις ανά λεπτό—πολύ υψηλότερο από οποιοδήποτε άλλο ερώτημα.
- Κάντε δεξί κλικ και επιλέξτε Επεξεργασία κειμένου ερωτήματος.
- Το ερώτημα ανακτά πληροφορίες κατηγορίας προϊόντος:
SELECT CategoryId, CategoryName FROM ProductCategories WHERE CategoryId = @CategoryId; - Αυτό το απλό ερώτημα θα έπρεπε να είναι γρήγορο και να αποθηκεύεται στην προσωρινή μνήμη, ωστόσο εκτελείται δεκάδες χιλιάδες φορές ανά λεπτό.
11.3.2 Ανίχνευση στον κώδικα εφαρμογής
Στο παράθυρο Διεργασίες, βρείτε συνεδρίες που εκτελούν αυτό το ερώτημα:
- Σημειώστε το Εφαρμογή Η στήλη εμφανίζει την ένδειξη «ProductCatalogService».
- Κάντε δεξί κλικ σε μία από αυτές τις συνεδρίες και επιλέξτε Διαδικασία ανίχνευσης σε SQL Server Κατατομή.
- Το SQL Profiler αποκαλύπτει ότι το ερώτημα εκτελείται επανειλημμένα σε γρήγορη διαδοχή με διαφορετικές τιμές CategoryId.
- Επικοινωνήστε με την ομάδα ανάπτυξης που διαχειρίζεται το ProductCatalogService για έλεγχο κώδικα.
Η αναθεώρηση του κώδικα αποκαλύπτει το πρόβλημα: μια πρόσφατη αλλαγή ανακτά καταχωρίσεις προϊόντων με κατηγορίες. Για κάθε προϊόν στο σύνολο αποτελεσμάτων (συχνά 1,000+ προϊόντα), ο κώδικας πραγματοποιεί μια ξεχωριστή κλήση βάσης δεδομένων για την ανάκτηση πληροφοριών κατηγορίας - ένα κλασικό πρόβλημα ερωτήματος N+1.
11.3.3 Βελτιστοποίηση της εφαρμογής
Εφαρμόστε μια κατάλληλη διόρθωση:
- Τροποποίηση ερωτήματος εφαρμογής για να χρησιμοποιήσετε μια JOIN που ανακτά προϊόντα και τις κατηγορίες τους σε μια ενιαία κλήση βάσης δεδομένων:
SELECT p.ProductId, p.ProductName, c.CategoryId, c.CategoryName FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE p.Active = 1; - Αναπτύξτε τον ενημερωμένο κώδικα και παρακολουθήστε την Παρακολούθηση Δραστηριότητας.
- Επαληθεύστε τη διόρθωση: Οι εκτελέσεις ανά λεπτό για το ερώτημα κατηγορίας μειώνονται από 37,000 σε λιγότερες από 100 και η συνολική χρήση της CPU μειώνεται κατά 40%.
- Καταγράψτε το μάθημα που αντλήσατε και κοινοποιήστε το στην ομάδα ανάπτυξης για να αποτρέψετε παρόμοια προβλήματα σε μελλοντικές αλλαγές κώδικα.
12. Εντοπισμός πιθανής καταστροφής βάσης δεδομένων
Ενώ το Activity Monitor δεν έχει σχεδιαστεί ειδικά για την ανίχνευση αλλοίωσης της βάσης δεδομένων, ορισμένα μοτίβα στην εμφάνισή του ενδέχεται να υποδηλώνουν υποκείμενα προβλήματα αλλοίωσης που απαιτούν περαιτέρω διερεύνηση.
12.1 Συμπτώματα πιθανής καταστροφής βάσης δεδομένων
Εάν υπάρχει καταστροφή βάσης δεδομένων και γίνεται πρόσβαση σε αυτήν, ενδέχεται περιστασιακά να δείτε:
1. Στο παράθυρο Διεργασίες:
- Οι συνεδρίες έχουν κολλήσει σε κατάσταση ΑΝΑΣΤΟΛΗΣ με ασυνήθιστους τύπους αναμονής
- Διεργασίες που εμφανίζουν καταστάσεις σφάλματος
- Τα ερωτήματα αποτυγχάνουν επανειλημμένα
2. Στο παράθυρο Αναμονή πόρων:
- Ασυνήθιστοι τύποι αναμονής που σχετίζονται με την είσοδο/εξόδου και θα μπορούσαν να υποδεικνύουν προβλήματα δίσκου (αν και αυτό πιθανότατα υποδηλώνει προβλήματα υλικού παρά λογική καταστροφή)
3. Σε πρόσφατα ακριβά ερωτήματα:
- Ερωτήματα με ασυνήθιστα υψηλές φυσικές αναγνώσεις εάν προσπαθούν επανειλημμένα να διαβάσουν κατεστραμμένες σελίδες
12.2 Περαιτέρω έλεγχος με το DBCC CHECKDB
Όταν η Παρακολούθηση Δραστηριότητας εμφανίζει συμπτώματα που υποδηλώνουν πιθανή καταστροφή, θα πρέπει να εκτελέσετε αμέσως την εντολή DBCC CHECKDB για να επαληθεύσετε την ακεραιότητα της βάσης δεδομένων. Αυτή η εντολή σαρώνει όλες τις σελίδες της βάσης δεδομένων, επικυρώνει τα αθροίσματα ελέγχου και ελέγχει για σφάλματα λογικής συνέπειας.
Για να μάθετε περισσότερα σχετικά με τον τρόπο χρήσης του DBCC CHECKDB για τον έλεγχο και την επιδιόρθωση σφαλμάτων στη βάση δεδομένων, ανατρέξτε στο ολοκληρωμένος οδηγός DBCC CHECKDB.
12.3 Επισκευή με επαγγελματικά εργαλεία
Εάν το DBCC CHECKDB επιβεβαιώσει την καταστροφή της βάσης δεδομένων, έχετε αρκετές επιλογές για επιδιόρθωση:
- Η προτιμώμενη προσέγγιση είναι η επαναφορά από ένα γνωστό, σωστό αντίγραφο ασφαλείας. Δείτε. ο ολοκληρωμένος οδηγός μας για τον τρόπο δημιουργίας αντιγράφων ασφαλείας και επαναφοράς SQL Server βάσεις δεδομένων.
- Για μικρές αλλοιώσεις, το DBCC CHECKDB με REPAIR_REBUILD ενδέχεται να επιλύσει προβλήματα.
- Για κρίσιμες βάσεις δεδομένων χωρίς πρόσφατα αντίγραφα ασφαλείας, επαγγελματικό Λογισμικό ανάκτησης SQL και οι υπηρεσίες μπορούν συχνά να ανακτήσουν δεδομένα που οι ενσωματωμένες επιλογές επιδιόρθωσης δεν μπορούν.
13. Σύναψη
SQL Server Το Activity Monitor αποτελεί ένα ανεκτίμητο εργαλείο για τους διαχειριστές βάσεων δεδομένων, παρέχοντας άμεσες πληροφορίες σχετικά με την απόδοση του διακομιστή και βοηθώντας στη γρήγορη και αποτελεσματική διάγνωση προβλημάτων.
13.1 Περίληψη Βασικών Σημείων
Σε αυτόν τον οδηγό, έχουμε εξερευνήσει πώς το Activity Monitor σας βοηθά να κατανοήσετε και να αντιμετωπίσετε προβλήματα. SQL Server εκτέλεση:
- Το Activity Monitor παρέχει ορατότητα σε πραγματικό χρόνο σε διεργασίες, αναμονές, ερωτήματα και εισόδους/εξόδους μέσω μιας οργανωμένης, γραφικής διεπαφής.
- Τα πέντε τμήματα παραθύρων —Επισκόπηση, Διεργασίες, Αναμονή πόρων, Είσοδος/Έξοδος αρχείων δεδομένων και Πρόσφατα ακριβά ερωτήματα— προσφέρουν το καθένα μοναδικές προοπτικές για τη δραστηριότητα του διακομιστή.
- Συνήθη σενάρια αντιμετώπισης προβλημάτων, όπως οι υπερβολικές εκτελέσεις ερωτημάτων, οι αλυσίδες αποκλεισμού και η υψηλή χρήση CPU, καθίστανται διαχειρίσιμα με συστηματική διερεύνηση του Activity Monitor.
- Αν και ισχυρό, το Activity Monitor έχει περιορισμούς, όπως η έλλειψη ιστορικών δεδομένων, η ομαδοποίηση τύπων αναμονής και η επιβάρυνση παρακολούθησης που επηρεάζουν την εφαρμογή του.cabαδυναμία.
- Η συμπλήρωση του Activity Monitor με ερωτήματα DMV, sp_WhoIsActive, Extended Events και ενδεχομένως εργαλεία τρίτων δημιουργούν μια ολοκληρωμένη στρατηγική παρακολούθησης.
- Ακολουθώντας τις βέλτιστες πρακτικές για τα διαστήματα ανανέωσης, το κλείσιμο της Παρακολούθησης Δραστηριότητας όταν δεν χρησιμοποιείται και ο συνδυασμός πολλαπλών παραθύρων για συσχέτιση μεγιστοποιεί την αξία της, ελαχιστοποιώντας παράλληλα τον αντίκτυπό της.
13.2 Παρακολούθηση Δραστηριότητας ως Μέρος του Εργαλειοθήκης σας
Το Activity Monitor θα πρέπει να χρησιμεύει ως το πρώτο σας εργαλείο απόκρισης για έρευνες απόδοσης, όχι το μόνο σας εργαλείο. Το δυνατό του σημείο έγκειται στην παροχή άμεσης ορατότητας κατά την ενεργή αντιμετώπιση προβλημάτων, βοηθώντας σας να προσδιορίσετε γρήγορα εάν η βάση δεδομένων αποτελεί το σημείο συμφόρησης και να εντοπίσετε ποιες συγκεκριμένες πτυχές χρειάζονται εις βάθος διερεύνηση.
Σκεφτείτε το Activity Monitor ως ένα ανάλογο ταμπλό στο αυτοκίνητό σας—σας ενημερώνει αμέσως εάν κάτι δεν πάει καλά και σας βοηθά να εντοπίσετε τη γενική περιοχή ανησυχίας. Όπως ακριβώς το ταμπλό του αυτοκινήτου σας δεν σας λέει ακριβώς γιατί άναψε η λυχνία ελέγχου κινητήρα, το Activity Monitor σας υποδεικνύει προβλήματα χωρίς πάντα να αποκαλύπτει την πλήρη αιτία τους. Αυτή η βαθύτερη ανάλυση απαιτεί πρόσθετα εργαλεία και εξειδίκευση.
Ενσωματώστε το Activity Monitor σε ένα ευρύτερο σύνολο εργαλείων που περιλαμβάνει ανάλυση σχεδίου εκτέλεσης, παρακολούθηση στατιστικών αναμονής, λύσεις ιστορικού παρακολούθησης και βέλτιστες πρακτικές απόδοσης. Χρησιμοποιήστε το σε συνδυασμό με κατάλληλες στρατηγικές ευρετηρίασης, τεχνικές βελτιστοποίησης ερωτημάτων και σχεδιασμό χωρητικότητας.
13.3 Συνεχίζοντας το ταξίδι της μάθησής σας
Η εξειδίκευση στο Activity Monitor είναι μόνο ένα βήμα για να γίνετε ένας αποτελεσματικός διαχειριστής βάσεων δεδομένων. Συνεχίστε να αναπτύσσετε τις δεξιότητές σας ως εξής:
- Μαθαίνοντας να ερμηνεύετε σχέδια εκτέλεσης και να εντοπίζετε αναποτελεσματικές λειτουργίες
- Κατανόηση SQL Server στατιστικά στοιχεία αναμονής και οι επιπτώσεις τους
- Μελέτη τεχνικών σχεδιασμού και βελτιστοποίησης δεικτών
- Εξερευνώντας SQL ServerΗ αρχιτεκτονική του και ο τρόπος με τον οποίο επεξεργάζεται τα ερωτήματα
- Εφαρμογή συστηματικών μεθοδολογιών αντιμετώπισης προβλημάτων
- Δημιουργία εμπειρίας με Εκτεταμένα Συμβάντα για λεπτομερή ιχνηλάτηση
- Κατανόηση των επιπέδων απομόνωσης συναλλαγών και του αντίκτυπού τους στην απόδοση
Κάθε διερεύνηση απόδοσης με το Activity Monitor σας διδάσκει κάτι νέο για το πώς SQL Server λειτουργεί και πώς οι εφαρμογές αλληλεπιδρούν με τις βάσεις δεδομένων. Καταγράψτε τα ευρήματά σας, μοιραστείτε γνώσεις με συναδέλφους και δημιουργήστε μια βιβλιοθήκηrary λύσεων για συνηθισμένα προβλήματα.
13.4 Πρόσθετοι πόροι
Εμπλουτίστε τις γνώσεις σας με αυτούς τους πολύτιμους πόρους:
- Ανοίξτε το Activity Monitor σε SQL Server Management Studio (SSMS)
: Επίσημη SQL Server τεκμηρίωση σχετικά με τον τρόπο ανοίγματος της Παρακολούθησης Δραστηριότητας στο SQL Server Στούντιο Διαχείρισης (SSMS).
- Δραστηριότητα Monitor
: Επίσημος SQL Server έγγραφο σχετικά με τον τρόπο χρήσης της Παρακολούθησης Δραστηριότητας.
14. Συχνές Ερωτήσεις (FAQ)
Ε: Τι είναι SQL Server ActivityMonitor;
A: SQL Server Το Activity Monitor είναι ένα ενσωματωμένο εργαλείο μέσα SQL Server Στούντιο Διαχείρισης που εμφανίζει πληροφορίες σε πραγματικό χρόνο σχετικά με διεργασίες που εκτελούνται σε ένα SQL Server και ο αντίκτυπός τους στους πόρους του διακομιστή. Παρέχει έναν γραφικό πίνακα ελέγχου με πέντε τμήματα που δείχνουν διαφορετικές πτυχές της δραστηριότητας του διακομιστή, όπως η χρήση του επεξεργαστή, οι εργασίες αναμονής, οι ρυθμοί εισόδου/εξόδου, οι ενεργές συνεδρίες και τα ακριβά ερωτήματα.
Ε: Πώς μπορώ να ανοίξω την Παρακολούθηση Δραστηριότητας στο SSMS;
Α: Μπορείτε να ανοίξετε την Παρακολούθηση Δραστηριότητας χρησιμοποιώντας τέσσερις μεθόδους: (1) Κάντε κλικ στο εικονίδιο της Παρακολούθησης Δραστηριότητας στη γραμμή εργαλείων SSMS, (2) Κάντε δεξί κλικ στο SQL Server όνομα στιγμιότυπου στην Εξερεύνηση αντικειμένων και επιλέξτε Δραστηριότητα Monitor, (3) Πατήστε Ctrl + άλλος + A, ή (4) Ρυθμίστε το SSMS ώστε να εκκινείται αυτόματα μέσω Εργαλεία -> Επιλογές -> Περιβάλλον -> Starσωλήνας.
Ε: Ποια δικαιώματα χρειάζομαι για να χρησιμοποιήσω την Παρακολούθηση Δραστηριότητας;
Α: Χρειάζεστε το ΠΡΟΒΟΛΗ ΚΑΤΑΣΤΑΣΗΣ ΔΙΑΚΟΜΙΣΤΗ άδεια να με δειςost Πληροφορίες Παρακολούθησης Δραστηριότητας. Για το παράθυρο Εισόδου/Εξόδου Αρχείου Δεδομένων, χρειάζεστε επίσης είτε ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ, ΤΡΟΠΟΠΟΙΗΣΗ ΟΠΟΙΑΣΔΗΠΟΤΕ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝΤο HIFU, ή Υψηλής Έντασης Εστιασμένος Υπέρηχος, στοχεύει επίσης στο πρόσωπο και τον λαιμό. Προσφέρει θεραπεία σε γρήγορες εκπομπές, γεγονός που κάνει τις συνεδρίες θεραπείας συντομότερες. ΔΕΙΤΕ ΟΠΟΙΟΝΔΗΠΟΤΕ ΟΡΙΣΜΟ δικαιώματα. Χωρίς αυτά τα δικαιώματα, η Παρακολούθηση Δραστηριότητας ενδέχεται να ανοίγει αλλά να εμφανίζει κενά τμήματα παραθύρου.
Ε: Γιατί η Παρακολούθηση Δραστηριότητας έχει διακοπεί ή δεν λειτουργεί;
Α: Η Παρακολούθηση Δραστηριότητας συνήθως διακόπτεται λόγω προβλημάτων δικαιωμάτων, παρωχημένων εκδόσεων SSMS ή απενεργοποιημένων απομακρυσμένων συνδέσεων. Για να επιλύσετε το πρόβλημα: (1) Ενημερώστε την εφαρμογή στην πιο πρόσφατη έκδοση SSMS, (2) Επαληθεύστε ότι έχετε δικαίωμα ΠΡΟΒΟΛΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΙΑΚΟΜΙΣΤΗ, (3) Ελέγξτε ότι οι απομακρυσμένες συνδέσεις είναι ενεργοποιημένες στο SQL Server παράδειγμα, (4) Ψήφισμαtart SSMS, και (5) Δοκιμάστε να συνδεθείτε με έλεγχο ταυτότητας Windows αντί για έλεγχο ταυτότητας SQL, εάν ισχύειcabαυτά.
Ε: Ποια είναι η διαφορά μεταξύ του Activity Monitor και του sp_WhoIsActive;
Α: Το Activity Monitor είναι ένα γραφικό εργαλείο ενσωματωμένο στο SSMS που παρέχει οργανωμένα παράθυρα για διαφορετικές πτυχές παρακολούθησης. Το sp_WhoIsActive είναι μια δωρεάν αποθηκευμένη διαδικασία που δημιουργείται από την κοινότητα και επιστρέφει λεπτομερείς πληροφορίες περιόδου λειτουργίας σε ένα ενιαίο σύνολο αποτελεσμάτων με πιο συγκεκριμένους τύπους αναμονής, λεπτομέρειες αποκλεισμού και επιλογές προσαρμογής από το Activity Monitor. Το Activity Monitor είναι καλύτερο για οπτική εξερεύνηση, ενώ το sp_WhoIsActive υπερέχει στην παρακολούθηση με δέσμες ενεργειών και παρέχει πιο λεπτομερείς πληροφορίες.
Ε: Επηρεάζει η Παρακολούθηση Δραστηριότητας την απόδοση του διακομιστή;
Α: Ναι, το Activity Monitor έχει μετρήσιμη επιβάρυνση επειδή υποβάλλει ερωτήματα σε DMV συστήματος σε κάθε διάστημα ανανέωσης. Ο αντίκτυπος αυξάνεται με χαμηλότερους ρυθμούς ανανέωσης—Η Microsoft προειδοποιεί ότι τα διαστήματα κάτω των 10 δευτερολέπτων μπορούν να επηρεάσουν την απόδοση του διακομιστή. Να κλείνετε πάντα το Activity Monitor όταν δεν το χρησιμοποιείτε ενεργά και να λαμβάνετε υπόψη διαστήματα ανανέωσης 30-60 δευτερολέπτων σε διακομιστές παραγωγής υπό μεγάλο φόρτο εργασίας.
Ε: Μπορώ να λάβω δεδομένα Activity Monitor χρησιμοποιώντας T-SQL;
Α: Ναι, η Παρακολούθηση Δραστηριότητας υποβάλλει ερωτήματα σε προβολές δυναμικής διαχείρισης συστήματος όπως sys.dm_exec_requests, sys.dm_exec_sessions, sys.dm_os_wait_stats και sys.dm_exec_query_stats. Μπορείτε να υποβάλετε ερωτήματα σε αυτά τα DMV απευθείας χρησιμοποιώντας T-SQL για να ανακτήσετε ισοδύναμες πληροφορίες μέσω προγραμματισμού, ενεργοποιώντας προσαρμοσμένα σενάρια παρακολούθησης και αυτοματοποιημένη συλλογή δεδομένων.
Ε: Ποιο είναι το προεπιλεγμένο διάστημα ανανέωσης;
Α: Το προεπιλεγμένο διάστημα ανανέωσης είναι 10 δευτερόλεπτα. Μπορείτε να το αλλάξετε κάνοντας δεξί κλικ οπουδήποτε στο παράθυρο Επισκόπηση, επιλέγοντας Ανανέωση διαστήματοςκαι επιλογή από προκαθορισμένες επιλογές: 1 δευτερόλεπτο, 5 δευτερόλεπτα, 10 δευτερόλεπτα, 30 δευτερόλεπτα, 1 λεπτό ή 1 ώρα. Τα χαμηλότερα διαστήματα παρέχουν περισσότερες προβολές σε πραγματικό χρόνο, αλλά αυξάνουν το φόρτο παρακολούθησης.
Ε: Πώς μπορώ να ανοίξω αυτόματα την Παρακολούθηση Δραστηριότητας σε SSMS;tarτάπα;
Α: Ρύθμιση παραμέτρων αυτόματης εκκίνησης μέσω των επιλογών SSMS: Μεταβείτε στο Εργαλεία -> Επιλογές -> Περιβάλλον -> Starσωλήνας, Στη συνέχεια, επιλέξτε Άνοιγμα Εξερεύνησης Αντικειμένων και Παρακολούθησης Δραστηριότητας από το Στο starσωλήνας αναπτυσσόμενο μενού. Η Παρακολούθηση δραστηριότητας θα ανοίγει αυτόματα κάθε φορά που συνδέεστε σε έναν διακομιστή στο SSMS.
Ε: Ποιοι είναι οι περιορισμοί της Παρακολούθησης Δραστηριότητας;
Α: Οι βασικοί περιορισμοί περιλαμβάνουν: (1) Δεν υπάρχει δυνατότητα αποθήκευσης ιστορικών δεδομένων ή παρακολούθησης τάσεων, (2) Οι τύποι αναμονής ομαδοποιούνται σε κατηγορίες αντί να εμφανίζονται συγκεκριμένα, (3) Ορισμένοι τύποι αναμονής, όπως το CXPACKET, ενδέχεται να μην εμφανίζονται, (4) Τα στιγμιότυπα σε συγκεκριμένο χρονικό σημείο ενδέχεται να μην εντοπίζουν παροδικά προβλήματα, (5) Η παρακολούθηση του overhead μπορεί να επηρεάσει τους πολυάσχολους διακομιστές, (6) Δεν υπάρχει μηχανισμός ειδοποίησης για προληπτική παρακολούθηση και (7) Δεν είναι δυνατή η συγκέντρωση δεδομένων σε πολλαπλά SQL Server Για αυτές τις ανάγκες, συμπληρώστε το Activity Monitor με εκτεταμένα συμβάντα, σύνολα συλλογής δεδομένων ή εργαλεία παρακολούθησης τρίτων.
Σχετικά με το Συγγραφέας
Γιουάν Σενγκ είναι ανώτερος διαχειριστής βάσεων δεδομένων (DBA) με πάνω από 10 χρόνια εμπειρίας σε SQL Server περιβάλλοντα και διαχείριση βάσεων δεδομένων επιχειρήσεων. Έχει επιλύσει με επιτυχία εκατοντάδες σενάρια ανάκτησης βάσεων δεδομένων σε χρηματοοικονομικές υπηρεσίες, υγειονομική περίθαλψη και βιομηχανικούς οργανισμούς.
Ο Γιουάν ειδικεύεται στην SQL Server ανάκτηση βάσης δεδομένων, λύσεις υψηλής διαθεσιμότηταςκαι βελτιστοποίηση απόδοσης. Η εκτεταμένη πρακτική του εμπειρία περιλαμβάνει τη διαχείριση βάσεων δεδομένων πολλαπλών terabyte, την υλοποίηση ομάδων Always On Availability και την ανάπτυξη αυτοματοποιημένων στρατηγικών δημιουργίας αντιγράφων ασφαλείας και ανάκτησης για κρίσιμα επιχειρηματικά συστήματα.
Μέσω της τεχνικής του εξειδίκευσης και της πρακτικής του προσέγγισης, ο Yuan επικεντρώνεται στη δημιουργία ολοκληρωμένων οδηγών που βοηθούν τους διαχειριστές βάσεων δεδομένων και τους επαγγελματίες πληροφορικής να επιλύουν πολύπλοκα ζητήματα. SQL Server προκλήσεις αποτελεσματικά. Παραμένει ενημερωμένος για τις τελευταίες εξελίξεις SQL Server κυκλοφορίες και τις εξελισσόμενες τεχνολογίες βάσεων δεδομένων της Microsoft, δοκιμάζοντας τακτικά σενάρια ανάκτησης για να διασφαλίσει ότι οι συστάσεις του αντικατοπτρίζουν τις βέλτιστες πρακτικές του πραγματικού κόσμου.
Έχετε ερωτήσεις σχετικά με SQL Server Ανάκτηση ή χρειάζεστε επιπλέον καθοδήγηση για την αντιμετώπιση προβλημάτων βάσης δεδομένων; Ο Yuan είναι ευπρόσδεκτος. σχόλια και προτάσεις για τη βελτίωση αυτών των τεχνικών πόρων.


















