28 Oct 2014
Do not forget to update index statistics
Είναι πρωινό της 27/10/2014. Κάνει κρύο για τα δικά μου δεδομένα και είμαι στο γραφείο στην δουλειά μου. Χτυπάει το τηλέφωνο και είναι ο Σοφοκλής. (TRUE STORY)
11 Apr 2017
Update Statistics - sys.dm_db_stats_properties DMV
Δεν θα σταματήσω να γράφω για την σημασία που έχουν τα statistics στην επιλογή του καλύτερου execution plan ποτέ. Αρκετά μεγάλος αριθμός καθυστερήσεων σε queries οφείλεται σε αυτά και προσωπικά κρίνω απαραίτητο να υπάρχει σε όλους η συγκεκριμένη γνώση γύρω από αυτά.Στο παρελθόν έχω γράψει αρκετά άρθρα γύρω από αυτά και σήμερα επανέρχομαι με ακόμα ένα με το οποίο θέλω να ρίξω περισσότερο φως σε αυτά.
08 Mar 2020
Don't forget to Indexing Foreign Keys
Στο SQL Server κάθε φορά που δημιουργούμε ένα Primary Key δημιουργείται και ένας index αλλά αυτό δεν γίνεται όταν φτιάχνουμε ένα Foreign Key και θα πρέπει να το δημιουργούμε εμείς ξεχωριστά. Το γιατί και ποιο είναι το όφελος το παρουσιάζω στο άρθρο αυτό.
13 Jan 2014
Update Statistics and Trace Flag 2371
Σαν DBA καθημερινά ερχόμαστε αντιμέτωποι με κάποιες περιπτώσεις δεν είναι εύκολο άμεσα να εντοπιστούν τα αίτια που τις δημιούργησαν. Εδώ έρχεται αυτό που χρόνια λέω και γράφω ότι πρέπει να γνωρίζουμε τα εσωτερικά του εργαλείου. Πρόσφατα δέχθηκα μια ερώτηση από έναν συνάδελφο που απετέλεσε το ερέθισμα για το post αυτό.
15 Oct 2015
SQL Server 2016 New features - The sys.dm_exec_function_stats DMV
Τα User Defined Functions (UDF) είναι γνωστά στους περισσότερους. Η χρήση τους είναι μεγάλη αλλά αρκετές φορές χρησιμοποιούνται λάθος κυρίως λόγο της άγνοιας που υπάρχει γύρω από την εκτέλεση ενός UDF και ιδιαίτερα όταν αυτό εμπλέκεται μέσα σε ένα query.
23 Jan 2010
What a DBA must know for query performance in SQL Server
Θα επανέλθω στο συγκεκριμένο θέμα μετά από απαίτηση συναδέλφων που είδαν την παρουσίαση που έχω κάνει για το 34ο dotNetZone Event και την οποία θα βρείτε εδώ. Υπήρχαν κάποιες απορίες και ερωτήσεις που φιλοδοξώ να τις απαντήσω με το παρόν post μου. Ας πάρουμε λοιπόν τα πράγματα από την αρχή μιας και διακαείς πόθος όλων μας είναι να έχουμε την τέλεια απόδοση στα queries μας δηλαδή όλα να εκτελούνται σε χρόνο μηδέν και να επιστρέφουν δισεκατομμύρια εγγραφές (καλά πλάκα κάνω :D).
10 Feb 2018
Monitoring CREATE INDEX Progress
Όσοι από εμάς έχουν περάσει ή είναι DBA σε μεγάλες databases καθημερινά έρχονται αντιμέτωποι με πολλά ενδιαφέροντα θέματα. Ένα από αυτά είναι η συντήρηση και η δημιουργία των indexes σε μεγάλου όγκου databases. Ειδικότερα αυτό που ένας τέτοιος DBA ζητάει είναι να γνωρίζει το progress ώστε να είναι σε θέση να εκτιμήσει την ολοκλήρωση της εργασίας.
23 Feb 2011
When dynamic SQL might be the BEST way!
Πριν μερικές μέρες είχα δημοσιεύσει ένα άρθρο “Dynamic SQL ή μήπως μπορώ και αλλιώς;”. Σήμερα διάβασα το παρακάτω άρθρο της Kimberly Trip το οποίο καλύπτει μια άλλη πτυχή την οποία δεν είχα καλύψει στο δικό μου.
07 May 2013
Let's start talking about wait statistics
Στην καθημερινότητα μας όλοι ερχόμαστε, κάποια στιγμή, αντιμέτωποι με προβλήματα που αφορούν την απόδοση του SQL Server. Έχω δεχθεί κατά καιρούς ερωτήματα από πολλούς που αφορούσαν τέτοια θέματα. Μέχρι σήμερα, αν και το έχω αναφέρει αρκετές φορές, δεν είχα γράψει κάτι σχετικά με το πως θα φτάσουμε στην αιτία που μας δημιουργεί το εκάστοτε πρόβλημα απόδοσης, πότε όμως δεν είναι αργά.
20 Mar 2011
Identify slow running queries with SQL Profiler trace data
Με αφορμή το τελευταίο μου SQL Server Saturday Night που σαν θέμα είχε τον SQL Server Profiler και μπορείτε να το δείτε εδώ και στο οποίο αναφέρθηκα στο συγκεκριμένο θέμα αποφάσισα να γράψω το συγκεκριμένο ώστε να δώσω περισσότερες λεπτομέρειες. Όπως ανέφερα και στη παρουσίαση μου το ποια events θα διαλέξει κάνεις έχει περισσότερο να κάνει με την εμπειρία που έχει αλλά και την ικανότητα με αυτά να εντοπίσει το εν λόγω πρόβλημα.
20 Apr 2010
44 SQL Server White Papers
from msdn Accessing SQL Server Databases with PHP Auditing in SQL Server 2008 Best Practices for Data Warehousing with SQL Server 2008 Connectivity Options for Microsoft SQL Server 2008 Integration Services Consolidation Guidance for SQL Server Consolidation Using SQL Server 2008 Cryptography in SQL Server Data Access Tracing in SQL Server 2008 Database Encryption in SQL Server 2008 Enterprise Edition Embedding SQL Server 2008 Express in an Application Engine Separation of Duties for the Applica ...
05 Jul 2009
Παρουσίαση του Activity Monitor στον SQL Server 2008
Πριν ξεκινήσω να περιγράφω το συγκεκριμένο εργαλείο, οφείλω να καταθέσω την άποψη μου γι’ αυτό. ΕΙΝΑΙ ΚΑΤΑΠΛΗΚΤΙΚΟ!!!. Όσοι έχετε ασχοληθεί από παλία με τον SQL Server, προσωπικά ασχολούμαι από την έκδοση 6.0 (1996), θα έχετε παρακολουθήσει την εξέλιξη του συγκεκριμένου εργαλείου. Σε κάθε έκδοση είχαμε κάποιες βελτιώσεις. Όμως στην έκδοση του SQL Server 2008 πιστεύω ότι έχουμε τις περισσότερες αλλά και τις σημαντικότερες βελτιώσεις.
12 Feb 2017
Working with Hypothetical Indexes on SQL Server
Δεν είναι λίγες οι φορές που κοιτάζοντας ένα query που έχει κάποιο πρόβλημα απόδοσης διαπιστώνεις ότι η δημιουργία ενός index θα μπορούσε να λύσει το πρόβλημα αυτό και θέλεις να το δοκιμάσεις.
16 Jul 2012
How old are the statistics of indexes in your database?
Φαντάζομαι ότι σε όλους είναι γνωστό ότι για να εκτελεστεί ένα query στον SQL Server περνάει από τον Query Optimizer. Αυτός για να παράξει το execution plan βλέπει τα index statistics. Αυτό σημαίνει ότι όσο καλύτερα ενημερωμένα είναι αυτά τόσο καλύτερα αποτελέσματα θα δώσει ο Query Optimizer. Πότε όμως αυτά έχουν ενημερωθεί τελευταία φορά;
30 Jun 2009
The SQL Server Operating System (SQLOS) – Μέρος 1ο
Πριν προχωρήσω στο αντικείμενο που θέλω να παρουσιάσω θα ήθελα να περιγράψω κάποιες γνωστές έννοιες που θεωρώ ότι είναι καλό να επαναληθούν, μιας και η επανάληψη είναι η μητέρα της μάθησης όπως έλεγαν οι πρόγονοι μας. Κάθε application ( και με αυτό τον όρο συμπεριλαμβάνω και τα services ) μπορεί να εκτελεσθεί πολλές φορές. Κάθε εκτέλεση του application είναι ένα instance.
19 Aug 2021
sp_indexdetails – Get index details and internals
Από τα θέματα που είναι σημαντικά και φυσικά έχουν απασχολήσει και θα συνεχίσουν να πράττουν αυτό είναι οι indexes και τα statistics αυτών. Αρκετός είναι επίσης και ο χρόνος που δαπανάμε για κάνουμε monitoring και optimizing αυτούς χρησιμοποιώντας τα εργαλεία όπως τα DMVs/DMFs.
13 Jan 2016
How to activate the Blocking Process Report
Μια συνηθισμένη ημέρα στη δουλεία είναι αρκετά ενδιαφέρουσα. Ιδιαίτερα όταν έχεις να προσέχεις μεγάλο αριθμό από SQL Server instance και databases που γίνονται access από εφαρμογές που μπορεί να χρησιμοποιούνται από χιλιάδες αλλά και εκατομμύρια χρήστες. Όσο καλά να είναι όλα φτιαγμένα πάντα μα πάντα θα υπάρξει αυτό που θα σε κάνει να σηκώσεις τα μανίκια για να βρεις αρχικά τι είναι και έπειτα να δώσεις λύση.
15 Aug 2020
Sizing SQL Server instance
"Έχω ένα σύστημα με Χ Cores, Y RAM, Z storage είναι καλό για να βάλω SQL Server;"
Αυτή είναι η συνηθέστερη ερώτηση που πρέπει συχνά να απαντήσω και αφορά το sizing ενός SQL Server instance.
17 Jul 2013
How a SELECT COUNT(*) query executed
Χθες κατά την διάρκεια του μαθήματος που έκανα ένα αγαπητός συνάδελφος στην συζήτηση που είχαμε ανέφερε ότι όποτε κάνεις ένα query που κάνει COUNT(*) στα δεδομένα μας κάνει πάντα table scan.
22 Feb 2020
Let's talk about Lock related wait types
O μη σεβασμός στην αρχιτεκτονική των RDBMS και ειδικότερα σε αυτό που ονομάζεται concurrency είναι η αιτία των περισσότερων "προβλημάτων" της καθημερινότητας.
17 Nov 2016
SQL Server What Else?
Χθες ήταν μια σημαντική ημέρα για τον SQL Server καθώς στο CONNECT(); //2016 ανακοινωθήκαν δύο εξαιρετικής σημασίας πράγματα.
Το πρώτο αφορά αυτό που ονομάζει η Microsoft σαν Consistent Programmability Surface Area Across all Editions και το δεύτερο αφορά την SQL Server vNext edition τόσο σε Windows OS όσο και σε Linux OS.
15 Jul 2018
The Plan Cache Internals and Management
Κάθε φορά που στέλνουμε ένα Transact SQL statement να εκτελεστεί σε ένα SQL Server instance είναι γνωστό ότι ένα από τα βασικά components του SQL Server Database Engine αναλαμβάνει την διαδικασία αυτή και αυτό δεν είναι άλλο από τον Query Optimizer. Αυτός αναλαμβάνει να μετατρέψει το δεδομένο T-SQL statement σε μια σειρά από logical operators οι οποίοι θα χρησιμοποιηθούν για την εκπλήρωση της εκτέλεσης του T-SQL statement. Αυτή η σειρά των logical operators είναι γνωστή σαν Query Execution Plan.
12 Apr 2019
The sys.dm_exec_query_stats DMV
Ένα από τα πράγματα που κάνω στην δουλειά μου είναι πηγαίνω σε πελάτες και να τους βοηθάω να λύσουν τα προβλήματα τους. Αυτό σημαίνει ότι έρχομαι αντιμέτωπος με instances που δεν γνωρίζω και πρέπει να μάθω για αυτά. Έτσι εκτελώ αρκετά scripts που έχω γράψει για να συλλέξω τις πληροφορίες που θέλω.
11 Mar 2013
Parameter Sniffing – What is and How to deal with it
Ένα από τα θέματα που σε κάποιες περιπτώσεις μας έχει ταλαιπωρήσει ιδιαίτερα αν δεν το γνωρίζουμε είναι το parameter sniffing.Επειδή όμως δεν ήθελα απλά να το περιγράψω σε ένα ίσως μακροσκελές κείμενο αποφάσισα να το κάνω ένα web cast.
31 May 2017
Statistics and Index Internals
Στην παρουσίαση αυτή εξηγούμε την σημασία των στατιστικών και πως αυτά επιρεάζουν το performance των queries καθώς επίσης και το πως πρέπει να φτιάξω τους κατάλληλους indexes
14 May 2020
Azure Synapse Analytics SQL Pool Workload Management
Στο άρθρο αυτό αναλύονται οι τρόποι (παλιός και νέος) με τους οποίους μπορούμε να κάνουμε workload management στο Azure Synapse SQL pool. Είναι ένα αρκετά μεγάλο άρθρο στην ανάγνωση του αλλά θεωρούμε ότι αναλύει απλά και κατανοητά όλα όσα πρέπει κάποιος να γνωρίζει για να υλοποιήσει σωστά αυτό.