Όπως γνωρίζεται από την έκδοση του SQL Server 2005 και μετά υπάρχουν τα dynamic management object.
Είναι αυτά τα οποία τα βρίσκετε σε κάθε database όταν κάνε expand στον SSMS > Database > Views > System Views .
Αυτά έχουν έρθει να κάνουν την ζωή μας ευκολότερη και αρκετά από αυτά έχουν σαν σκοπό να καταργήσουν κάποια DBCC statements.
Όπως και να έχει είναι αρκετά χρήσιμα διότι έτσι αντλούμε ότι πληροφορίες θέλουμε σχετικά με την βάση μας ή το SQL Server.
Αυτό όμως που τα κάνει ακόμα ομορφότερα είναι ότι είναι εμπλουτισμένα με περισσότερες πληροφορίες που τα κάνουν ακόμα ποιο χρηστικά.
Ένα από αυτά τα χαρακτηριστικά είναι μέσα σε αυτά υπάρχουν columns τα οποία τελειώνουν με _desc.
Τα columns αυτά τα λέμε friendly name columns και είναι πάντα ζευγάρι με ένα άλλο column το οποίο δεν έχει στο τέλος το _desc.
π.χ. Έστω ότι θέλεις να δεις το Recovery Model σε όλες σου τις databases που έχει στον SQL Server σου. Αυτό είναι εύκολο να το κάνεις αρκεί να εκτελέσεις το παρακάτω query.
SELECT name, recovery_model FROM sys.databases
Αυτό θα σου επιστρέψει ένα αποτέλεσμα τις μορφής
Για αυτούς που ασχολούνται χρόνια με τον SQL Server αυτό είναι αρκετό μιας και ξέρουν τι σημαίνει η τιμή 1,2,3 στο recovery model.
Τι γίνεται όμως με αυτούς που δεν έχουν ασχοληθεί αρκετά μαζί του.
Οι τιμές 1,2,3 δεν του λένε πολλά πράγματα.
Για αυτούς αλλά και για τους έμπειρους υπάρχουν οι columns για τις οποίες μιλάμε.
Έτσι εύκολα πλέον αν στο παραπάνω query προσθέσουμε την friendly column όπως παρακάτω
SELECT name, recovery_model, recovery_model_desc FROM sys.databases
Το οποίο θα μου γυρίσει το εξής αποτέλεσμα το οποίο φυσικά είναι και ποιο κατανοητό.
Εδώ τώρα έρχεται το ερώτημα το οποίο μου τέθηκε σήμερα και αποτέλεσε την αφορμή για το post αυτό.
«Και γιατί να έχω και τις δυο κολώνες αυτές, αφού με την κολώνα που έχω την περιγραφή κάνω μια χαρά την δουλειά μου;»
Η απάντηση είναι απλή.
Υπάρχουν συνάδελφοι που έχουν κάθε φορά διαφορετικές ανάγκες. Για παράδειγμα εσωτερικά στην Microsoft η ομάδα ανάπτυξης όταν υλοποιεί τα εσωτερικά interfaces του SQL Server θέλει να κάνει bind σε ποιο μικρά σε μέγεθος columns όπως το recovery_model το οποίο είναι ένας integer. Επίσης πολλοί από αυτούς που φτιάχνουν καλούδια στον SQL Server ή μέσα από τις εφαρμογές τους θέλουν να αντλήσουν system level πληροφορίες τους είναι ποιο εύκολο να χρησιμοποιήσουν αυτές τις κολώνες.
Υπάρχουν όμως και οι DBAs που θέλουν με το adhoc query τους να δουν και την ερμηνεία της κολώνας έτσι χρησιμοποιούν το πεδίο με το _desc.
Καλή Χρονιά σε όλες και όλους