01 Sep 2010
Is it possible to run out of Log Sequence Numbers?
Πριν από λίγο καιρό στο SQL Server Magazine διάβασα το παρακάτω το οποίο είναι αρκετά ενδιαφέρον μιας και την απάντηση την έχει δώσει ένας άνθρωπος που τον έχει φτίαξει ο Paul Randal, απολαύστε το ...
01 Feb 2012
How to use specific values in parameters of fn_dblog function
Μια από τις αγαπημένες functions που την χρησιμοποιώ αρκετά συχνά ιδιαίτερα σε περιπτώσεις που υπάρχει κάποιο πρόβλημα με συγκεκριμένη βάση είναι η fn_dblog. Παρόλο που είναι μια undocumented function εντούτοις είναι ευρέως γνωστή και φυσικά χρησιμοποιούμενη σε όσους σοβαρά ασχολούνται με τον SQL Server.
04 Jan 2012
5 Tips for a Smooth SSIS Upgrade to SQL Server 2012
ΚΑΛΗ ΧΡΟΝΙΑ ΜΕ ΥΓΕΙΑ ΣΕ ΟΛΕΣ ΚΑΙ ΟΛΟΥΣ. Για ακόμα μια χρονιά και εγώ όπως και αρκετοί ακόμα έλαβα το email που με ενημέρωνε ότι συνεχίζω να είμαι MVP στον SQL Server. Τι καλύτερο να γιορτάσω την ανανέωση αυτή με ένα post.
04 Jan 2018
About LSNs in SQL Server
Πολλά πράγματα μέσα στον SQL Server γίνονται με βάση το LSN (Log Sequence Number). Αρκετές πάλι είναι οι ερωτήσεις που δέχομαι για αυτό και κυρίως αφορούν πως αυτό μεταφράζεται. Μέσα από αυτό το άρθρο θα προσπαθήσω να το εξηγήσω όσο καλύτερα και ευκολότερα γίνεται.
18 Jul 2014
Add/Remove Leading/Trailing Zero with T-SQL and SSIS
Στο περιβάλλον εργασίας μου υπάρχουν αρκετές διαδικασίες που ανταλλάσσουν δεδομένα μεταξύ ετερογενών συστημάτων. Κάποια από αυτά είναι legacy και ενώ έχει γίνει μια φανταστική δουλειά να μιλάνε τα συστήματα αυτά μέσω services, εντούτοις υπάρχουν κάποιες μικρές ιδιαιτερότητες. Μια από αυτές είναι με τα νούμερα που τα legacy θέλουν συγκεκριμένο πλήθος ψηφίων με leading zero και φυσικά δίνουν τα αποτελέσματα με αυτό το format.
03 Feb 2012
The SQL Server Browser service
Αν και είμαι σχεδόν σίγουρος ότι αρκετοί γνωρίζουν το συγκεκριμένο services, εντούτοις έχω εντοπίσει ότι υπάρχουν κενά στην γνώση γύρω από το συγκεκριμένο. Καθημερινά το βλέπω αυτό σε αρκετές εγκαταστάσεις...
05 May 2011
Κάθε πότε γίνεται η διαδικασία CHECKPOINT? (UPDATED)
Όπως είναι γνωρίζουμε στον SQL Server υπάρχει μια διαδικασία η οποία σκοπό έχει να μεταφέρει από την Buffer Cache τις αλλαγμένες σελίδες στο δίσκο, γίνεται σε όλες τις βάσεις εκτός από την tempdb (αν και αυτό δεν είναι και τόσο αλήθεια αλλά δεν θα το αναλύσουμε εδώ). Σκοπός του είναι να είναι όσο το δυνατό πιο ενημερωμένα τα data files με τις αλλαγές είναι γραμμένες στο log.
24 Jan 2010
Why TRUNCATE_LOG discontinued (Answer to Mr. Kladakis)
Στο 18ο event μας που είχα την ομιλία μου η συζήτηση μας έφερε να μιλήσουμε για το ότι ευτυχώς πλέον δεν υποστηρίζεται η χρήση της BACKUP LOG WITH TRUNCATE_ONLY. Ο φίλος μου, συναγωνιστής μου, Αθανάσιος Κλαδάκης είχε την εύλογη απορία γιατί έγινε αυτό. Είπαμε κάποια πράγματα αλλά επειδή ο χρόνος ήταν περιορισμένος διότι περίμεναν οι μπύρες και η πίτα-πίτσα δεν έμεινα ικανοποιημένος με την απάντηση που έδωσα. Έτσι επανέρχομαι στο θέμα.
23 Jun 2015
Auditing Reports Execution in SSRS
Ένα από τα services του SQL Server είναι τα Reporting Services τα οποία παρέχουν ένα εξαιρετικά ευέλικτο τρόπο να μεταδίδεται η πληροφορία στους τελικούς χρήστες. Η χρήση τους από τις εταιρίες και τους οργανισμούς έχει αυξηθεί σε υπερθετικό βαθμό και κανείς θα βρει μεγάλο αριθμό από reports να εκτελούνται καθημερινά στις υποδομές αυτών των εταιρειών.
Είναι φυσικό κάποια στιγμή να χρειαζόμαστε να παρακολουθήσουμε ποια είναι αυτά που χρησιμοποιούνται, πόσο συχνά χρησιμοποιούνται, πόσο χρόνο χρειάζονται για να εκτελεστούν, ποιοι είναι οι χρήστες και ποια reports εκτελούν.
04 May 2015
SQL Server 2016 datasheet
Σήμερα ο Satya Nadella , CEO της Microsoft στα πλαίσια του keynote του Microsoft Ignite ανακοίνωσε την έλευση του SQL Server 2016. Φυσικά αμέσως υπήρχαν και οι απαραίτητες αναρτήσεις στο msdn / TechNet όπου πλέον υπάρχει το datasheet για την νέα έκδοση και τα περιεχόμενα του είναι τα παρακάτω
16 Dec 2014
Where stored the last checkpoint operation info
Στο μάθημα της προηγούμενης εβδομάδας δέχθηκα μια ερώτηση από ένα πολύ καλό φίλο και συνάδελφο (καλημέρα Θεόδωρε) μια αρκετά ενδιαφέρουσα ερώτηση που αφορούσε το που αποθηκεύεται η πληροφορία της διαδικασίας του checkpoint σε μια database.
Επειδή η απάντηση μου τον ξάφνιασε λίγο σε αυτό το post αρχικά θα την μοιραστώ μαζί σας και θα την εξηγήσω.
09 May 2016
Why each database must have more than one data file?
Σε κάθε άνθρωπο που ασχολείται με τον SQL Server είναι γνωστό ότι μια database αποτελείται αρχικά από δύο αρχεία. Το ένα είναι το primary data file και είναι αυτό που έχει το .mdf extension και το transaction log file που είναι αυτό που έχει το .ldf extension.
23 Feb 2011
When dynamic SQL might be the BEST way!
Πριν μερικές μέρες είχα δημοσιεύσει ένα άρθρο “Dynamic SQL ή μήπως μπορώ και αλλιώς;”. Σήμερα διάβασα το παρακάτω άρθρο της Kimberly Trip το οποίο καλύπτει μια άλλη πτυχή την οποία δεν είχα καλύψει στο δικό μου.
28 Oct 2009
Γιατί πρέπει να χρησιμοποιώ Stored Procedures
Χαίρετε, καιρό είχατε να με ακούσετε ε; Δυστυχώς αυτά συμβαίνουν όταν αλλάζεις δουλειά. Όμως σιγά σιγά βρίσκω τα νέα βήματα μου οπότε επανέρχομαι δριμύτερος. Σήμερα θέλω να σας κουράσω με κάτι που δεν είναι στο administration του SQL Server αλλά στο programming του. Αυτό ακούει στο όνομα Stored Procedures. Είμαι σίγουρος ότι αν όχι όλοι οι περισσότεροι τις ξέρετε. Είμαι σίγουρος ότι υπάρχουν φανατικοί υποστηρικτές τους, όπως επίσης και άλλοι που όταν ακούνε το όνομα τους βγάζουν σπυράκια. ...
13 Jun 2021
Failed to generate a checkpoint in a database
Πρόσφατα κλήθηκα να διορθώσω μια corrupted database με αρκετά μεγάλο αριθμό corrupted pages. Η διαδικασία επιδιόρθωσης ήταν επίπονη και πήρε αρκετές ημέρες αλλά τελικά ολοκληρώθηκε. Με την ολοκλήρωση της διαδικασίας ζήτησα να γίνει full backup καθώς τα ήδη υπάρχοντα backups ήταν και αυτά corrupted καθώς περιείχαν τις corrupted pages.
Κατά την διάρκεια του full backup όμως εμφανίστηκε ένα νέο μήνυμα λάθους που έλεγε το εξής...
20 Jan 2018
What is Log Block and Log Record
Σε προηγούμενο άρθρο μου στο οποίο έγραφα για το τι είναι το Log Sequence Number (LSN) αναφέρθηκα σε δύο στοιχεία του transaction log. Τα στοιχεία αυτά ήταν το Log Block και το Log Record.
02 Jul 2016
Database Page Internals
Κάτι για το οποίο καθημερινά μάχομαι είναι το να μάθει ο καθένας που ασχολείται με τον SQL Server τα βασικά που αφορούν την εσωτερική αρχιτεκτονική του SQL Server και της κάθε database.
Για όλους εμάς που ασχολούμαστε με τον SQL Server η συγκεκριμένη γνώση είναι απαραίτητη καθώς μας βοηθάει στο να κατανοήσουμε τι ακριβώς συμβαίνει σε κάθε δύσκολη στιγμή που μπορεί να συμβεί.
Η κατοχή της συγκεκριμένης γνώσης είναι αυτή που προσδίδει σε αυτόν που την έχει την διαφοροποίηση σε σχέση με όσους λένε ότι γνωρίζουν ή ασχολούνται με τον SQL Server καθώς είναι μακράν καλύτερος τους σε θέματα αντιμετώπισης προβλημάτων και σχεδιασμού των databases.
07 Oct 2009
Μια μικρή βουτία στα άδυτα της αρχιτεκτονικής μιας βάσης
Ίσως όσα θα αναφερθούν παρακάτω να είναι γνωστά, και το post αυτό να μην είναι ενδιαφέρον. Όμως έχω την υποχρέωση να τα αναφέρω ξανά γιατί θεωρώ ότι είναι πράγματα στα οποία δεν δίνουμε ιδιαίτερη σημασία και τα οποία όταν διογκώνονται είναι δύσκολα στην επίλυση τους. Θα μιλήσουμε εδώ γιa την αρχιτεκτονική μιας database στον SQL Server, από τι αποτελείτε μια database, πιο είναι το ιδανικό αρχικό μέγεθος δημιουργίας της, τι πολιτική να ορίσω για το growth της.
30 Jun 2009
The SQL Server Operating System (SQLOS) – Μέρος 1ο
Πριν προχωρήσω στο αντικείμενο που θέλω να παρουσιάσω θα ήθελα να περιγράψω κάποιες γνωστές έννοιες που θεωρώ ότι είναι καλό να επαναληθούν, μιας και η επανάληψη είναι η μητέρα της μάθησης όπως έλεγαν οι πρόγονοι μας. Κάθε application ( και με αυτό τον όρο συμπεριλαμβάνω και τα services ) μπορεί να εκτελεσθεί πολλές φορές. Κάθε εκτέλεση του application είναι ένα instance.
09 Feb 2013
DBCC OPTIMIZER_WHATIF Apocalypse (UPDATE)
Πριν από μερικούς μήνες σας είχα αναφέρει την DBCC OPTIMIZER_WHATIF, ένα undocumented dbcc statement. Στο post εκείνο είχα προσπαθήσει να βρω πολλά πράγματα για την συγκεκριμένη αλλά όπως συμβαίνει πάντα όταν κάτι είναι undocumented δεν μπορείς να βρεις πολλά τουλάχιστον στην αρχή.Σε αυτό όμως κάνω την αποκάλυψη της
09 Jun 2020
Calendar Dimension table for BI projects
Σε αυτό το άρθρο παρέχεται ένα script με το οποίο μπορείτε να δημιουργήσετε ένα calendar dimension table για χρήση σε BI και Power BI projects. Στο τελικό αποτέλεσμα έχουμε ένα table που περιέχει Calendar, Fiscal και ΙSO years με τις επιμέρους αναλύσεις τους, αλλά και τις επίσημες αργίες για την Ελλάδα τις ΗΠΑ και τις υπηρεσίες της ΕΕ.
03 Jan 2020
Let's talk about CPU related wait types
Σε αυτό το άρθρο μου θα μιλήσω για τα ποιο σημαντικά wait types που αφορούν την CPU καθώς αυτή είναι αποτελεί ένα από τα βασικά στοιχεία που συντελούν στην απόδοση του SQL Server.
05 Jul 2011
DBCC IND
Αν και η συγκεκριμένη εντολή είναι ευρέως γνωστή και σίγουρα θα την έχετε βρει σε διάφορα sites εντούτοις θα γράψω και εγώ για αυτή καθώς θεωρώ ότι είναι μια σημαντική εντολή αν και είναι undocumented.
15 Feb 2018
Configuring and Mapping Connections to specific ports and processors to NUMA nodes
Είναι καθημερινή συζήτηση η ασφάλεια των δεδομένων και o διαμοιρασμός των resources στο περιβάλλον μας. Όλοι μας γνωρίζουμε και κάνουμε αρκετά για αυτά καθημερινά και πάντα ζητάμε το κάτι παραπάνω. Αυτό το κάτι παραπάνω δεν είναι ένα αλλά πολλά και ένα από τα πολλά είναι και αυτό που αναλύω στο άρθρο μου αυτό.Δεν είναι κάτι συνηθισμένο αλλά θεωρώ ότι θα αρέσει σε πολλούς. Είναι ένα άρθρο haute couture στον SQL Server.
13 Jan 2016
How to activate the Blocking Process Report
Μια συνηθισμένη ημέρα στη δουλεία είναι αρκετά ενδιαφέρουσα. Ιδιαίτερα όταν έχεις να προσέχεις μεγάλο αριθμό από SQL Server instance και databases που γίνονται access από εφαρμογές που μπορεί να χρησιμοποιούνται από χιλιάδες αλλά και εκατομμύρια χρήστες. Όσο καλά να είναι όλα φτιαγμένα πάντα μα πάντα θα υπάρξει αυτό που θα σε κάνει να σηκώσεις τα μανίκια για να βρεις αρχικά τι είναι και έπειτα να δώσεις λύση.
21 May 2020
Convert a Number to Time
Η προγραμματιστική λογική είναι εξαιρετική αρκεί να ακολουθεί το χρυσό κανόνα της απλότητας.
15 Jan 2016
Converting numbers in a string with various format
Μερικές φορές κάποια πράγματα που επαναλαμβάνονται δίνουν κάποιο σημάδι που δεν πρέπει κανείς να αγνοεί. Ίσως είναι η πρώτη φορά που μου συμβαίνει κάτι τέτοιο καθώς μέσα σε διάστημα 12 ώρων μου τέθηκε πάνω από 10 φορές (σε παραλαγγές) η παρακάτω ερώτηση.
12 Apr 2019
The sys.dm_exec_query_stats DMV
Ένα από τα πράγματα που κάνω στην δουλειά μου είναι πηγαίνω σε πελάτες και να τους βοηθάω να λύσουν τα προβλήματα τους. Αυτό σημαίνει ότι έρχομαι αντιμέτωπος με instances που δεν γνωρίζω και πρέπει να μάθω για αυτά. Έτσι εκτελώ αρκετά scripts που έχω γράψει για να συλλέξω τις πληροφορίες που θέλω.
06 Jan 2019
Cosmos DB Indexes
Όπως σε όλες τις relational databases έτσι και στην Cosmos DB οι indexes έχουν κυρίαρχη θέση καθώς είναι η κηροζίνη των ερωτημάτων και πρέπει να γνωρίζουμε για αυτούς.
25 Apr 2017
Why you must choose correctly the size of each field in a table
Κάθε φορά κατά την διάρκεια ενός μαθήματος ή μιας παρουσίασης που κάνω με θέμα το σχεδιασμό μιας database και των tables αυτής όταν επίμονα τονίζω ότι πρέπει να επιλέγουμε με πραγματικά κριτήρια το μέγεθος κάθε field που θα βάλουμε στο table και όχι με την λογική βάλε κάτι μεγάλο γιατί δεν ξέρεις τι θα γίνει στο μέλλον, με κοιτάνε αρκετοί περίεργα.
01 Sep 2012
Implementing Fuzzy string matching/comparing
Πολλές φορές χρειαζόμαστε σε strings να κάνουμε συγκρίσεις για το αν αυτά είναι όμοια ή πόσο κοντά είναι το ένα στο άλλο. Αυτό όπως καταλαβαίνει κανείς εγκυμονεί αρκετούς κινδύνους, παραδοχές και πολλά ακόμα που πρέπει να λάβουμε υπόψη, ειδικά αν δεν έχουμε βάλει αυστηρούς ελέγχους στο τι πληκτρολογεί ο χρήστης. Παρ’ ότι στον SQL Server έχουμε την SOUNDEX και την DIFFERENCE υπάρχουν περιπτώσεις που δεν μας είναι αρκετές για ικανοποιήσουμε τις ανάγκες μας. Για αυτές τις περιπτώσεις θα πρέπει να δράσουμε κάπως διαφορετικά και θα πρέπει να δημιουργήσουμε εμείς κάτι το οποίο να καλύπτει τις ανάγκες αυτές
12 Sep 2011
DBCC LOGINFO
Για ακόμα μια φορά θα πρέπει να ασχοληθούμε με το transaction log. Καθημερινά αντιμετωπίζω περιστατικά τα οποία μου δείχνουν ότι υπάρχει θέμα κατανόησης με την αξία, την λειτουργία αλλά και την χρήση του transaction log.