11 Apr 2020
How Clustered Index keeps key order in a page
Όπως όλοι γνωρίζεται όταν υπάρχει clustered index στο table τα δεδομένα τοποθετούνται στην σειρά με βάση το field/key που έχει χρησιμοποιηθεί για τον clustered index, όμως πόσο αλήθεια είναι αυτό.
18 Jan 2011
Uniqueidentifier data type as table primary key or clustered index
Περιμένοντας να έρθουν συγγενείς και φίλοι σπίτι να μου ευχηθούν για την γιορτή μου, σκεφτόμουν πώς να ευχαριστήσω όλους που σήμερα είτε με email είτε με μηνύματα στο facebook ή στο messenger μου ευχήθηκαν χρόνια πολλά. Στο μυαλό μου ήρθε κάτι το οποίο το είδα πάλι να χρησιμοποιείται αλλά όχι και τόσο καλά το αντίθετο θα έλεγα. Aυτό δεν είναι από το sql server data type uniqueidentifier σαν primary key σε table.
17 Jul 2013
How a SELECT COUNT(*) query executed
Χθες κατά την διάρκεια του μαθήματος που έκανα ένα αγαπητός συνάδελφος στην συζήτηση που είχαμε ανέφερε ότι όποτε κάνεις ένα query που κάνει COUNT(*) στα δεδομένα μας κάνει πάντα table scan.
11 Jul 2016
Moving a table to another filegroup
Στο πρόσφατα ολοκληρωμένο σεμινάριο (20462) στο οποίο μιλάμε και για filegroups, έδειχνα στους μαθητές μου πως μπορούν αν εκμεταλλευτούν αυτά ώστε να επωφεληθούν από αυτά τόσο σε maintenance όσο και σε performance.
Αφού μέσα από τα δικά μου παραδείγματα που δεν υπάρχουν στο βιβλίο τους έχω βάλει το μικρόβιο να θέλουν σαν τρελοί να τα χρησιμοποιήσουν η αναμενόμενη επόμενη ερώτηση είναι πως μπορούν σε ήδη δημιουργημένες databases να κάνουν αυτό.
Η απάντηση πάντα από μένα στο μάθημα είναι μέσω παραδείγματος καθώς κάτι τέτοιο δεν το έχει το σεμινάριο.
Σήμερα κατά μια διαβολεμένη σύμπτωση ένας καλός συνάδελφος από μια εξωτερική εταιρεία ήθελε να κάνει κάτι αντίστοιχο και επειδή μέχρι τώρα δεν το είχα γράψει σαν άρθρο θεώρησα ότι κάποια δύναμη θέλει να γίνει αυτό πραγματικότητα οπότε …
10 Jul 2021
In which pages (data or index) are my table data stored?
Η γνώση των internals στο SQL Server όπως πολλές φορές έχω αναφέρει είναι σημαντική γιατί έτσι μπορείς να σχεδιάσεις καλύτερα το database schema, να γράψεις καλύτερα queries ή διαδικασίες και φυσικά να μπορείς να κάνεις καλύτερο troubleshooting. Σε αυτό το άρθρο θα κατέβουμε για τα καλά το πάτο του βαρελιού καθώς θα κατανοήσουμε το πως ο SQL Server αντιμετωπίζει αυτά που του ζητάμε.
21 Jan 2013
If you need order in your query results, put in an ORDER BY.
Έχει μαλλιάσει η γλώσσα μου χρόνια τώρα να λέω ότι στον SQL Server δεν υπάρχουν θέσφατα, αξιώματα και κανόνες. Υπάρχουν συνθήκες και με βάση αυτές και την γνώση της αρχιτεκτονικής του SQL Server (και για αυτό έχει μαλλιάσει η γλώσσα μου) μπορείς να δώσεις απαντήσεις και λύσεις σε ότι και να σου συμβεί.
03 Nov 2016
When the filtered indexes saves
Η παλαιότερη και πιο συνηθισμένη ερώτηση που γίνεται είναι αυτή που αφορά το query performance. Για αυτή την ερώτηση έχουν γραφτεί εκατομμύρια γραμμές σε άρθρα και έχουν γίνει χιλιάδες παρουσιάσεις.
Συγκεκριμένη απάντηση δεν θα βρει κανείς πουθενά και είναι απόλυτα λογικό καθώς η κάθε περίπτωση είναι διαφορετική και χρειάζεται διαφορετική λύση.
Αυτό που μπορώ με σιγουριά να πω είναι ότι για να δώσει κάποιος λύση στο εκάστοτε πρόβλημα θα πρέπει να έχει γνώση των εσωτερικών δομών και αρχιτεκτονική του SQL Server πάνω από καλώς.
22 Mar 2016
Date Correlation in SQL Server
Είναι πολλές οι φορές που στο business logic μίας εφαρμογής, υπάρχουν ημερομηνίες οι οποίες συνδέονται λογικά μεταξύ τους. Ο SQL Server έχει την δυνατότητα να υπολογίζει το correlation μεταξύ τέτοιων ημερομηνιών και θα δούμε σε αυτό το post με ποιον τρόπο μπορούμε να το χρησιμοποιήσουμε στα δεδομένα μας.
30 Mar 2012
Data Warehouse Physical Design Guide.
Αφού έχουμε σχεδιάσει λογικά και σύμφωνα με τις επιχειρησιακές απαιτήσεις το DW μας, φτάνει η στιγμή που πρέπει να το κάνουμε πραγματικότητα υλοποιώντας το φυσικά. Όπως έχω αναφέρει σε όλα τα προηγούμενα post αυτής της σειράς θα πρέπει φυσικά να υλοποιήσω το DW λαμβάνοντας σοβαρά υπόψη μου τους εξής παράγοντες που δεν είναι άλλοι από τους performance, scalability, manageability. Με αυτούς σαν πυξίδα θα πρέπει να Tips for Database Files...
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 ώστε να είναι σε θέση να εκτιμήσει την ολοκλήρωση της εργασίας.
08 Mar 2020
Don't forget to Indexing Foreign Keys
Στο SQL Server κάθε φορά που δημιουργούμε ένα Primary Key δημιουργείται και ένας index αλλά αυτό δεν γίνεται όταν φτιάχνουμε ένα Foreign Key και θα πρέπει να το δημιουργούμε εμείς ξεχωριστά. Το γιατί και ποιο είναι το όφελος το παρουσιάζω στο άρθρο αυτό.
22 Feb 2020
Let's talk about Lock related wait types
O μη σεβασμός στην αρχιτεκτονική των RDBMS και ειδικότερα σε αυτό που ονομάζεται concurrency είναι η αιτία των περισσότερων "προβλημάτων" της καθημερινότητας.
20 Jul 2021
SQL Server Allocation Units
Συνεχίζοντας την "κατάδυση" μας στα SQL Server internals σε αυτό το άρθρο θα ασχοληθούμε με τα Allocation Units τα οποία μπορούμε να δούμε με την χρήση της DMV sys.allocation_units.
10 May 2017
Missing and Unused Indexes
Είναι γνωστό ότι οι indexes αποτελούν την κηροζίνη των queries.
Στο SQL Server από το 2005 και μετά έχω στην διάθεση μου αρκετά εργαλεία τα οποία μπορώ να χρησιμοποιήσω και τα οποία μου προτείνουν την δημιουργία indexes με σκοπό την βελτίωση του performance.
29 May 2012
Another Example Why you must avoid Implicit Conversions in T-SQL
Αν και δεν είμαι αρκετά σίγουρος ότι όλοι έχουν καταλάβει ότι θα πρέπει να αποφεύγουν όπως ο διάολος το λιβάνι τα implicit conversions εντούτοις αυτό είναι κάτι γνωστό και πηγή δεινών αν αυτό γίνεται στην T-SQL. Υπάρχουν αρκετά άρθρα που το αναφέρουν αυτό και με αυτό το post θα συμπληρώσω και εγώ ακόμα ένα παράδειγμα με σκοπό μήπως και κάποιοι συνετιστούν και σταματήσουν να το κάνουν.
15 Aug 2020
Sizing SQL Server instance
"Έχω ένα σύστημα με Χ Cores, Y RAM, Z storage είναι καλό για να βάλω SQL Server;"
Αυτή είναι η συνηθέστερη ερώτηση που πρέπει συχνά να απαντήσω και αφορά το sizing ενός SQL Server instance.
29 Dec 2018
Cosmos DB a NoSQL Database
Η Cosmos DB είναι ένα high-scalable, reliable και secure infrastructure που μπορεί να χρησιμοποιηθεί για την υλοποίηση των περισσότερων γνωστών και κοινών NoSQL database.
05 Jul 2011
DBCC IND
Αν και η συγκεκριμένη εντολή είναι ευρέως γνωστή και σίγουρα θα την έχετε βρει σε διάφορα sites εντούτοις θα γράψω και εγώ για αυτή καθώς θεωρώ ότι είναι μια σημαντική εντολή αν και είναι undocumented.
10 Aug 2021
Explain Ghost Records in SQL Server
Κάθε φορά που εκτελούνται delete operations τα rows δεν διαγράφονται άμεσα αλλά χαρακτηρίζονται σαν rows προς διαγραφή και η ονομασία που έχει δοθεί σε αυτά είναι ghost(ed) records και σε αυτό το άρθρο θα δούμε τα internals τους.
14 May 2020
Azure Synapse Analytics SQL Pool Workload Management
Στο άρθρο αυτό αναλύονται οι τρόποι (παλιός και νέος) με τους οποίους μπορούμε να κάνουμε workload management στο Azure Synapse SQL pool. Είναι ένα αρκετά μεγάλο άρθρο στην ανάγνωση του αλλά θεωρούμε ότι αναλύει απλά και κατανοητά όλα όσα πρέπει κάποιος να γνωρίζει για να υλοποιήσει σωστά αυτό.
03 Jul 2017
PostgreSQL CTE surprise
Σε αυτό το post θα δούμε πως συμπεριφέρεται ένα CTE στην PostgreSQL, τη διαφορά που έχει από τον SQL Server και τον CTE scan operator