27 Nov 2021
Purge old Database Backup files
Όσοι κάνουν σωστά την δουλειά τους έχουν και την σωστή backup στρατηγική. Αυτό σημαίνει ότι καθημερινά δημιουργούν ένα αριθμό από backup files και φυσικά μειώνεται και ο ελεύθερος χώρος του δίσκου. Αυτό σημαίνει ότι πρέπει να δημιουργηθεί μια διαδικασία που να σβήνει τα παλιά και μη "χρήσιμα" backups...
20 Jul 2021
SQL Server Allocation Units
Συνεχίζοντας την "κατάδυση" μας στα SQL Server internals σε αυτό το άρθρο θα ασχοληθούμε με τα Allocation Units τα οποία μπορούμε να δούμε με την χρήση της DMV sys.allocation_units.
10 Jan 2016
Dynamic Management Functions for referencing and referenced entities
Στον SQL Server υπάρχουν διάφορα dynamic management objects, από τα οποία μπορεί κανείς να πάρει πληροφορίες για την δομή της βάσης και τις εξαρτήσεις που υπάρχουν ανάμεσα στους διάφορους πίνακες. Παρόλα αυτά πολλές φορές χρειαζόμαστε να μάθουμε και εξαρτήσεις που αφορούν SQL expressions. Την πληροφορία αυτή μπορούμε να πάρουμε από δύο dynamic management functions, την sys.dm_sql_referenced_entities και την sys.dm_sql_referencing_entities, τις οποίες θα δούμε σε αυτό το post.
28 Apr 2020
Auditing my SQL Server instance Surface Area Configuration
Στο SQL Server υπάρχουν αρκετά features που αν δεν χρησιμοποιηθούν σωστά υπάρχει η πιθανότητα να μας δημιουργήσουν προβλήματα ασφάλειας και είναι από τα πρώτα πράγματα που ελέγχω όταν καλούμαι να εκτελέσω ένα SQL Server Security Assessment.
11 Apr 2017
Update Statistics - sys.dm_db_stats_properties DMV
Δεν θα σταματήσω να γράφω για την σημασία που έχουν τα statistics στην επιλογή του καλύτερου execution plan ποτέ. Αρκετά μεγάλος αριθμός καθυστερήσεων σε queries οφείλεται σε αυτά και προσωπικά κρίνω απαραίτητο να υπάρχει σε όλους η συγκεκριμένη γνώση γύρω από αυτά.Στο παρελθόν έχω γράψει αρκετά άρθρα γύρω από αυτά και σήμερα επανέρχομαι με ακόμα ένα με το οποίο θέλω να ρίξω περισσότερο φως σε αυτά.
02 Jan 2016
The sys.dm_exec_query_optimizer_info DMV
Θα ξεκινήσω την νέα αυτή χρονιά με ένα απλό και μικρό άρθρο αλλά που απαιτεί πολύ τριβή, διάβασμα και όρεξη να βουτήξει κανείς σε βαθιά και πολλές φορές αχαρτογράφητα ύδατα.
07 Sep 2009
SQL Server Query for Index Recommendation
Το παρακάτω query είναι πάρα πολύ καλό!!!. Το ξαναβρήκα τυχαία μπροστά μου καθώς σκάλιζα τα διάφορα scripts που έχω στην βιβλιοθήκη μου. Αν θυμάμαι καλά, γιατί έχει περάσει καιρός, το έχει φτιάξει ένα παλικάρι από την μαμά εταιρία, νομίζω ότι είναι ο Swapnil Bajaj.
16 Jul 2012
How old are the statistics of indexes in your database?
Φαντάζομαι ότι σε όλους είναι γνωστό ότι για να εκτελεστεί ένα query στον SQL Server περνάει από τον Query Optimizer. Αυτός για να παράξει το execution plan βλέπει τα index statistics. Αυτό σημαίνει ότι όσο καλύτερα ενημερωμένα είναι αυτά τόσο καλύτερα αποτελέσματα θα δώσει ο Query Optimizer. Πότε όμως αυτά έχουν ενημερωθεί τελευταία φορά;
12 Oct 2011
The value of sys.dm_io_virtual_file_stats DMV
Όπως αρκετές φορές έχω αναφέρει, τρεις είναι οι παράγοντες που επηρεάζουν την λειτουργία ενός SQL Server και αυτοί είναι: Memory, CPU, I/O. Αρκετοί συνάδελφοι δηλώνουν λάτρεις των Dynamic Management Views (DMV) μεταξύ αυτών είμαι και εγώ , όμως το μυστικό σε αυτές είναι να τις χρησιμοποιείς έτσι ώστε να παίρνει από αυτές συνδυαστικά τις περισσότερες φορές τη μέγιστη δυνατή πληροφορία που αυτές μπορούν να σου σώσουν. Σε αυτό το post θα σας δείξω πως χρησιμοποιώντας μια εξ αυτών...
14 Sep 2015
Monitor Connection Pooling as SQL Server DBA
Το connection pooling είναι μια cache από database connections που σκοπό έχει αυτά που είναι ελεύθερα στην cache αυτή να μπορούν να επαναχρησιμοποιηθούν κάθε φορά που κάποιος ζητάει να κάνει connect στην database.Η χρησιμότητα του connection pooling είναι αρκετά σημαντική στην εκτέλεση διαδικασιών πάνω στην database από το application καθώς με αυτό τον τρόπο γίνεται αφενός γρηγορότερη επικοινωνία αφετέρου καταναλώνονται λιγότεροι πόροι.
30 Jun 2015
How to find the root blocking session
Το να έχεις locks δεν είναι κάτι κακό τουναντίον είναι απαραίτητα διότι διασφαλίζουν την ακεραιότητα των δεδομένων.
Το γιατί έχεις locks είναι κυρίως το πώς έχει γραφτεί η εφαρμογή και έχω εξηγήσει αρκετά στο SQL Night με θέμα το Concurrency in SQL Server.
04 Feb 2015
What's new in the SQL Server 2014 Resource Governor
Στον SQL Server 2008 εμφανίστηκε για πρώτη φορά ο Resource Governor, όπως παρουσιάσθηκε σε αυτό το post. Το feature αυτό εξελίχθηκε στις επόμενες εκδόσεις και στον 2014 έγιναν πολύ σημαντικές και ενδιαφέρουσες προσθήκες. Με αυτές μας δώθηκε η δυνατότητα ελέγχου του ΙΟ πάνω στον φυσικό δίσκο, δίνοντας πλέον πληρέστερο έλεγχο στα resources του συστήματός μας.
21 Jun 2013
Doing Magic with Partitioning and ColumnStore Index in a Data Warehouse DB on SQL Server 2012
Αρκετοί με ρωτάνε στα μαθήματα που κάνω αλλά και με emails στο SQL School σχετικά με το θέμα του table partitioning. Δεν ξέρω γιατί αλλά πολλούς έχει προβληματίσει και μπορώ να πω ότι έχει αγχώσει, αν και δεν θα έπρεπε καθώς είναι μια καθαρή λύση.
Υπάρχουν και συνάδελφοι που ασχολούνται με BI και έχουν Data Warehouses (DW) στα οποία θέλουν να επωφεληθούν από το table partitioning αλλά και από την χρήση των columnstore indexes.
Αποφάσισα να σας φτιάξω ένα μικρό demo με το οποίο θα δείτε ότι το να κάνει κάποιος table partitioning δεν είναι κάτι δύσκολο.
22 Apr 2012
New SQL Server 2012 dynamic views to get instance information
Αν και μπορούμε να δούμε πολλά πράγματα μέσα από το SQL Server Management Studio, εντούτοις αρκετές φορές χρειάζεται να δούμε αρκετά παράθυρα για να σχηματίσουμε την εικόνα που θέλουμε. Φυσικά για όσους είναι ανυπόμονοι και δεν έχουν θέμα να γράφουν ένα απλό SELECT υπάρχουν λύσεις που λύνουν τα χέρια.
25 Mar 2018
Manage and Monitor SQL Server instances - Monitor Current Sessions
Καθημερινά δέχομαι ερωτήματα που αφορούν θέματα απόδοσης και αυτό που έχω διαπιστώσει είναι ότι υπάρχει μια σημαντική έλλειψη γνώσης και εμπειρίας στο συγκεκριμένο θέμα.
Οι περισσότεροι ψάχνουν απεγνωσμένα στον ιστό και σε αυτόν βρίσκουν μεμονωμένες πληροφορίες που σπάνια μπορεί να τους βοηθήσουν για να εντοπίσουν αρχικά και κατόπιν να λύσουν το πρόβλημα.
16 Oct 2017
Find missing indexes on foreign key constraints
Τα foreign keys όπως είναι γνωστό δεν φτιάχνουν κάποιον index στο reference table. Επίσης είναι γνωστό ότι καλό (αλλά όχι πάντα απαραίτητο) να φτιάχνουμε nonclustered index στο reference table στo field(s) που εμπλέκονται στο FK constraint.
12 Apr 2019
The sys.dm_exec_query_stats DMV
Ένα από τα πράγματα που κάνω στην δουλειά μου είναι πηγαίνω σε πελάτες και να τους βοηθάω να λύσουν τα προβλήματα τους. Αυτό σημαίνει ότι έρχομαι αντιμέτωπος με instances που δεν γνωρίζω και πρέπει να μάθω για αυτά. Έτσι εκτελώ αρκετά scripts που έχω γράψει για να συλλέξω τις πληροφορίες που θέλω.
07 Oct 2011
The truth about WITH ENCRYPTION option
Όταν βάζουμε το WITH ENCRYPTION option σε μια stored procedure, ένα trigger, μια function ή ένα view ξέρουμε ότι αυτόματα ο κώδικας δεν είναι ορατός. Θα μπορούσαμε να πούμε ότι είναι κλειδωμένος. Δεν ξέρω αν το γνωρίζεται αλλά ο SQL Server δεν είναι ένα digital rights management system αυτό σημαίνει ότι ο κώδικας που έχει γραφεί μέσα μια sp, function κλπ δεν είναι encrypted...
02 Mar 2017
Show Record fields in key/value format
Δεν είναι λίγες οι φορές που θέλεις να δεις τα δεδομένα μιας εγγραφής σε αντί σε μια γραμμή σε πολλές γραμμές (μία για κάθε field) και δύο στήλες (σε μια λογική key/value).
26 May 2013
External and Internal Index Fragmentation
Αναμφίβολα όλοι γνωρίζουμε την αξία που έχουν οι indexes σε ένα πίνακα και την ευεργετική επίδραση τους στα queries που γίνονται σε αυτούς.Επίσης όλοι ξέρουν ότι το index fragmentation είναι ένας παράγοντας που έχει αρνητική επίδραση στην αξία των index όμως γνωρίζουν όλοι τι είναι internal και τι external fragmentation;
12 Apr 2012
Auditing Enhancements in SQL Server 2012
Επειδή μερικά πράγματα πρέπει να τα κλείνεις γρήγορα έτσι σήμερα με αυτό το post θα καλύψω μια από τις υποσχέσεις που έδωσα στο τελευταίο μου post και θα μιλήσω σε αυτό για τις βελτιώσεις που έχουμε για auditing στο SQL Server 2012.
16 Apr 2019
The sys.dm_server_registry DMV
Δεν είναι λίγες οι φορές που θέλουμε για ένα SQL Server instance να δούμε πληροφορίες που αφορούν τα services, network configuration, startup trace flags, version και πολλά ακόμα και καταφεύγουμε στον SQL Configuration Manager.
30 Jul 2018
Server related DMVs in SQL Server
Πολλές φορές ένας DBA ψάχνει να βρει πληροφορίες για το configuration ενός instance. Από όσο έχω δει μέχρι τώρα οι περισσότεροι καταφεύγουν στο γραφικό περιβάλλον ίσως από ευκολία ή μήπως επειδή δεν γνωρίζουν άλλον τρόπο;
15 Oct 2015
SQL Server 2016 New features - The sys.dm_exec_function_stats DMV
Τα User Defined Functions (UDF) είναι γνωστά στους περισσότερους. Η χρήση τους είναι μεγάλη αλλά αρκετές φορές χρησιμοποιούνται λάθος κυρίως λόγο της άγνοιας που υπάρχει γύρω από την εκτέλεση ενός UDF και ιδιαίτερα όταν αυτό εμπλέκεται μέσα σε ένα query.
14 Oct 2015
SQL Server 2016 New features - The sys.dm_exec_session_wait_stats DMV
Καθημερινά ένας DBA ή DB developer έχει να αντιμετωπίσει αρκετούς αστάθμητους τις περισσότερες φορές παράγοντες που επηρεάζουν το performance.
Πιστέψτε με ότι αυτό είναι μια δουλεία που απαιτεί σχολαστικότητα γνώση της αρχιτεκτονικής τόσο του SQL Server όσο και της database. Για να κάνεις αυτή την δουλεία θα πρέπει να έχεις μελετήσει αρκετά και να έχεις κάνει αρκετή πρακτική εξάσκηση για την απόκτηση εμπειρίας.
08 Jul 2011
Tip of the Day : sys.configurations
Αρκετές φορές θέλουμε να δούμε το πως είναι configure o SQL Server με μιά ματία. Αντί να “τρέχουμε” από εδώ και από εκεί μέσα στον SSMS υπάρχει λύση...
09 May 2011
Tip of the Day: sys.dm_os_buffer_descriptors
Η DMV αυτή δείχνει μια γράμμη για κάθε data page η οποία είναι στην buffer cache. Με το παρακάτω script μπορείς να δεις το ποσό σε MB που έχει δεσμευτεί από τις σελίδες που υπάρχουν για κάθε βάση μέσα στην buffer cache.
28 Aug 2010
SQL Server Reporting Services 2008 R2 Architecture - Part I
Οι περισσότεροι σχεδόν χρησιμοποιούν τα SSRS στην καθημερινότητα τους καλύπτοντας τις ανάγκες τους σε reporting. Πρόσφατα είχα μια ενδιαφέρουσα ερώτηση από έναν εκλεκτό φίλο και συνάδελφο σχετικά με αυτά, έτσι μου γεννήθηκε η ιδέα να γράψω το post αυτό.
05 Jul 2009
Παρουσίαση του Activity Monitor στον SQL Server 2008
Πριν ξεκινήσω να περιγράφω το συγκεκριμένο εργαλείο, οφείλω να καταθέσω την άποψη μου γι’ αυτό. ΕΙΝΑΙ ΚΑΤΑΠΛΗΚΤΙΚΟ!!!. Όσοι έχετε ασχοληθεί από παλία με τον SQL Server, προσωπικά ασχολούμαι από την έκδοση 6.0 (1996), θα έχετε παρακολουθήσει την εξέλιξη του συγκεκριμένου εργαλείου. Σε κάθε έκδοση είχαμε κάποιες βελτιώσεις. Όμως στην έκδοση του SQL Server 2008 πιστεύω ότι έχουμε τις περισσότερες αλλά και τις σημαντικότερες βελτιώσεις.