13 May 2012
Error 1205 or a deadlock occurred, how to deal with it?
Το τελευταίο διάστημα στα μαθήματα και τις παρουσιάσεις που έχω κάνει όλο και περισσότεροι έρχονται και με ρωτούν τι πρέπει να κάνουν για το deadlock καθώς όπως μου λένε έχουν όλο και περισσότερες εμφανίσεις του φαινομένου αυτού. Πάντα απαντώ σε όλους αυτά που θα ακολουθήσουν σε αυτό το post αλλά μέχρι τώρα δεν τα είχα γράψει και νομίζω ότι πλέον είναι καιρός να γίνει αυτό. Τι είναι το deadlock;
22 Feb 2020
Let's talk about Lock related wait types
O μη σεβασμός στην αρχιτεκτονική των RDBMS και ειδικότερα σε αυτό που ονομάζεται concurrency είναι η αιτία των περισσότερων "προβλημάτων" της καθημερινότητας.
23 Jan 2010
What a DBA must know for query performance in SQL Server
Θα επανέλθω στο συγκεκριμένο θέμα μετά από απαίτηση συναδέλφων που είδαν την παρουσίαση που έχω κάνει για το 34ο dotNetZone Event και την οποία θα βρείτε εδώ. Υπήρχαν κάποιες απορίες και ερωτήσεις που φιλοδοξώ να τις απαντήσω με το παρόν post μου. Ας πάρουμε λοιπόν τα πράγματα από την αρχή μιας και διακαείς πόθος όλων μας είναι να έχουμε την τέλεια απόδοση στα queries μας δηλαδή όλα να εκτελούνται σε χρόνο μηδέν και να επιστρέφουν δισεκατομμύρια εγγραφές (καλά πλάκα κάνω :D).
20 Oct 2019
Useful Extended Events scenarios
Είναι γνωστό, εδώ και 7 χρόνια, ότι ο SQL Server Profiler είναι σε κατάσταση απόσυρσης και ότι ο διάδοχος τους είναι τα Extended Events. Με αυτά μπορούμε να κάνουμε πολλά πράγματα που μας βοηθούν στον εντοπισμό και την επίλυση προβλημάτων.
13 Jan 2016
How to activate the Blocking Process Report
Μια συνηθισμένη ημέρα στη δουλεία είναι αρκετά ενδιαφέρουσα. Ιδιαίτερα όταν έχεις να προσέχεις μεγάλο αριθμό από SQL Server instance και databases που γίνονται access από εφαρμογές που μπορεί να χρησιμοποιούνται από χιλιάδες αλλά και εκατομμύρια χρήστες. Όσο καλά να είναι όλα φτιαγμένα πάντα μα πάντα θα υπάρξει αυτό που θα σε κάνει να σηκώσεις τα μανίκια για να βρεις αρχικά τι είναι και έπειτα να δώσεις λύση.
09 Feb 2016
Deadlock Event Capture in SQL Server
Σε αυτό το post θα δείξουμε τους τρόπους που μας δίνει ο SQL Server για να βρίσκουμε και να κάνουμε troubleshoot τα deadlocks όταν αυτά εμφανίζονται.
30 Jun 2015
How to find the root blocking session
Το να έχεις locks δεν είναι κάτι κακό τουναντίον είναι απαραίτητα διότι διασφαλίζουν την ακεραιότητα των δεδομένων.
Το γιατί έχεις locks είναι κυρίως το πώς έχει γραφτεί η εφαρμογή και έχω εξηγήσει αρκετά στο SQL Night με θέμα το Concurrency in SQL Server.
15 Feb 2015
Memory Configuration in Analysis Services
Μέσα από το SQLschool.gr έχω αρκετές φορές επισημάνει το πώς πρέπει να ορίζουμε την μνήμη ενός instance. Αυτό που μέχρι τώρα δεν είχα κάνει είναι να αναφερθώ στο πως ορίζουμε την μνήμη ενός Analysis services instance.
26 Aug 2010
Ας μάθουμε τελικά τι είναι ένα Transaction
Γνωρίζοντας ότι μπορεί το παρόν post μου να μην είναι ενδιαφέρον ή να προσφέρει μια γνώση που δεν έχετε, εντούτοις το γράφω διότι πρέπει κάποια πράγματα να λέγονται όπως είναι και να μην υπάρχει μαύρες τρύπες ή διαφορετικές ερμηνείες, που δυστυχώς άκουσα σήμερα. Τι είναι λοιπόν ένα transaction; Είστε σε μια εκκλησία και βλέπετε ένα ζευγάρι να παντρεύεται. Όταν τελειώσει το μυστήριο του γάμου δεν υπάρχει κανένας που να αμφιβάλλει για το status του ζευγαριού αυτού. ...
25 Oct 2015
Get All tables row count without using Count(*) function
Η δύναμη της συνήθειας είναι το μεγαλύτερο ναρκωτικό του μυαλού και δεν το αφήνει να σκεφτεί αποδοτικά. Αλήθεια πόσες φορές κάνουμε μηχανικά κάποια πράγματα επειδή τα έχουμε συνηθίσει στα τόσα χρόνια που κάνουμε αυτή την δουλειά ;
03 Jan 2020
Let's talk about CPU related wait types
Σε αυτό το άρθρο μου θα μιλήσω για τα ποιο σημαντικά wait types που αφορούν την CPU καθώς αυτή είναι αποτελεί ένα από τα βασικά στοιχεία που συντελούν στην απόδοση του SQL Server.
29 Dec 2018
Cosmos DB a NoSQL Database
Η Cosmos DB είναι ένα high-scalable, reliable και secure infrastructure που μπορεί να χρησιμοποιηθεί για την υλοποίηση των περισσότερων γνωστών και κοινών NoSQL database.
10 Jun 2014
Concurrency in SQL Server
Ένα από τα συχνά λάθη που γίνονται στο σχεδιασμό και κυρίως στην υλοποίηση ενός project είναι ότι κανείς δεν δίνει σημασία στο concurrency των χρηστών και στο τι αυτό σημαίνει πάνω σε μια SQL Server database. Το τελικό αποτέλεσμα είναι να εμφανίζονται πολλά locks και όλοι κατηγορούν άλλους για αυτό.
Καθημερινά διαπιστώνω ότι αυτό έχει πάρει μια μορφή καταιγίδας που όταν ξεσπάει βρίσκει τους DBA & DB Dev απροετοίμαστους στο να ανταπεξέλθουν σε αυτό. Όλα αυτά όμως μπορούν να αντιμετωπιστούν, εφόσον έχουμε καταλάβει τι σημαίνει concurrency και να εφαρμόσουμε αυτό το concurrency model που ταιριάζει στις ανάγκες μας.
02 Feb 2023
Optimized locking
This article introduces the optimized locking feature, a new SQL Server Database Engine capability that offers an improved transaction locking mechanism that reduces lock memory consumption and blocking amongst concurrent transactions.
14 May 2020
Azure Synapse Analytics SQL Pool Workload Management
Στο άρθρο αυτό αναλύονται οι τρόποι (παλιός και νέος) με τους οποίους μπορούμε να κάνουμε workload management στο Azure Synapse SQL pool. Είναι ένα αρκετά μεγάλο άρθρο στην ανάγνωση του αλλά θεωρούμε ότι αναλύει απλά και κατανοητά όλα όσα πρέπει κάποιος να γνωρίζει για να υλοποιήσει σωστά αυτό.
10 Jul 2021
In which pages (data or index) are my table data stored?
Η γνώση των internals στο SQL Server όπως πολλές φορές έχω αναφέρει είναι σημαντική γιατί έτσι μπορείς να σχεδιάσεις καλύτερα το database schema, να γράψεις καλύτερα queries ή διαδικασίες και φυσικά να μπορείς να κάνεις καλύτερο troubleshooting. Σε αυτό το άρθρο θα κατέβουμε για τα καλά το πάτο του βαρελιού καθώς θα κατανοήσουμε το πως ο SQL Server αντιμετωπίζει αυτά που του ζητάμε.