go backsqlschool blogs list

Friendly name columns in Dynamic Management Object

by Antonios Chatzipavlis

Όπως γνωρίζεται από την έκδοση του 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
 
Αυτό θα σου επιστρέψει ένα αποτέλεσμα τις μορφής
 

name

recovery_model

master

3

tempdb

3

model

1

msdb

3

demo

2

...

...

 
Για αυτούς που ασχολούνται χρόνια με τον SQL Server αυτό είναι αρκετό μιας και ξέρουν τι σημαίνει η τιμή  1,2,3 στο recovery model.
Τι γίνεται όμως με αυτούς που δεν έχουν ασχοληθεί αρκετά μαζί του.
Οι τιμές 1,2,3 δεν του λένε πολλά πράγματα.
Για αυτούς αλλά και για τους έμπειρους υπάρχουν οι columns για τις οποίες μιλάμε.
Έτσι εύκολα πλέον αν στο παραπάνω query προσθέσουμε την friendly column όπως παρακάτω
 
SELECT name, recovery_model, recovery_model_desc  FROM sys.databases
 
Το οποίο θα μου γυρίσει το εξής αποτέλεσμα το οποίο φυσικά είναι και ποιο κατανοητό.

name

recovery_model

recovery_model_desc

master

3

SIMPLE

tempdb

3

SIMPLE

model

1

FULL

msdb

3

SIMPLE

demo

2

BULK_LOGGED

...

...

 

 
Εδώ τώρα έρχεται το ερώτημα το οποίο μου τέθηκε σήμερα και αποτέλεσε την αφορμή για το post αυτό.

«Και γιατί να έχω και τις δυο κολώνες αυτές, αφού με την κολώνα που έχω την περιγραφή κάνω μια χαρά την δουλειά μου;»

Η απάντηση είναι απλή.
 
Υπάρχουν συνάδελφοι που έχουν κάθε φορά διαφορετικές ανάγκες. Για παράδειγμα εσωτερικά στην Microsoft η ομάδα ανάπτυξης όταν υλοποιεί τα εσωτερικά interfaces του SQL Server θέλει να κάνει bind σε ποιο μικρά σε μέγεθος columns όπως το recovery_model το οποίο είναι ένας integer. Επίσης πολλοί από αυτούς που φτιάχνουν καλούδια στον SQL Server ή μέσα από τις εφαρμογές τους θέλουν να αντλήσουν system level πληροφορίες τους είναι ποιο εύκολο να χρησιμοποιήσουν αυτές τις κολώνες.
Υπάρχουν όμως και οι DBAs που θέλουν με το adhoc query τους να δουν και την ερμηνεία της κολώνας έτσι χρησιμοποιούν το πεδίο με το _desc.
 
Καλή Χρονιά σε όλες και όλους
 

 
Ημερομηνία: 03 January 2011 21:22
Αξιολόγηση:
Κατηγορίες:
Tags:
Share it:

Σχετικά Blog Post

Αφήστε το σχόλιο σας - Leave your comment

Τα σχόλια έχουν κλείσει.
Επιτρέπονται μόνο τα σχόλια από τα μέλη του SqlSchool.gr.


newsletter subscription

Εάν επιθυμείτε να λαμβάνετε ενημέρωση από εμάς, δώστε μας το e-mail σας.
PASS chapter logo
Official Professional Association for SQL Server (PASS) chapter for Greece
Join to PASS