Καθημερινά ένας DBA ή DB developer έχει να αντιμετωπίσει αρκετούς αστάθμητους τις περισσότερες φορές παράγοντες που επηρεάζουν το performance.
Πιστέψτε με ότι αυτό είναι μια δουλεία που απαιτεί σχολαστικότητα γνώση της αρχιτεκτονικής τόσο του SQL Server όσο και της database. Για να κάνεις αυτή την δουλεία θα πρέπει να έχεις μελετήσει αρκετά και να έχεις κάνει αρκετή πρακτική εξάσκηση για την απόκτηση εμπειρίας.
Ακόμα και ένας τέτοιος άνθρωπος πάντα επιζητά τρόπους να κάνει λιγότερο δύσκολη την δουλεία του και η χαρά του είναι μεγάλη όταν ανακαλύπτει ότι το αγαπημένο του εργαλείο έκδοση με την έκδοση του δίνει περισσότερες δυνατότητες για αυτό το task.
Από τα βασικά εργαλεία μας στον SQL Server είναι τα Dynamic Management Views (DMV). Αρκετά από αυτά είναι κυρίαρχα εργαλεία στο performance troubleshooting.
Ένα από αυτά είναι το παλαιό γνωστό DMV
sys.dm_os_wait_stats του οποίου τα αποτελέσματα σε οδηγούν στο επόμενο βήμα για τον εντοπισμό του προβλήματος καθώς βλέπουμε από αυτό το που υπάρχουν καθυστερήσεις στο instance και τα οποία είναι συσωρευτικά από την στιγμή που το instance αυτό έχει ξεκινήσει.
Κάτι που ένας DBA/DB Dev ήθελε ήταν αυτή η πληροφορία να είναι σε επίπεδο session ώστε να μπορεί ευκολότερα να κάνει διερεύνηση του προβλήματος σε επίπεδο είτε batch είτε μεμονωμένου query το οποίο εκτελείται από το συγκεκριμένο session. Αυτό πλέον είναι διαθέσιμο στο SQL Server 2016 CTP 2.x και μετά με την χρήση της
sys.dm_exec_session_wait_stats.
Τα στοιχεία που αυτό το DMV δίνει μαζεύονται για κάθε session από την στιγμή που αυτό δημιουργείται μέχρι που αυτό κλείνει και αυτό κάνει αρκετά εύκολη την δουλειά ενός DBA/DB Dev καθώς μπορεί να εστιαστεί με περισσότερη ακρίβεια στο πρόβλημα. Επίσης επειδή είναι DMV μπορεί να φιλτράρει ευκολότερα τα επιστρεφόμενα δεδομένα απλά βάζοντας ένα where clause στο session_id column.
Ένα πραγματικά χρήσιμο εργαλείο που δεν θα το δείτε να αναδύεται πολύ στις διάφορες παρουσιάσεις για τον SQL Server 2016 αλλά αξίζει και με το παραπάνω της προσοχής σας
Enjoy!
/*antonch*/