21 Aug 2019
Database Mail Administration Summary
Το DBMail είναι κάτι που χρόνια έχουμε στον SQL Server και βασικό σκοπό έχει να στέλνει notifications είτε από alerts είτε από jobs. Φυσικά μπορείς να κάνεις και άλλα πράγματα αλλά δεν είναι σε καμία περίπτωση αντικαταστάτης ενός mail server.
17 Feb 2015
Getting Started : Writing T-SQL (Part 1)
Αυτή η σειρά από posts, έχει σκοπό να βοηθήσει κάποιον να κάνει τα πρώτα του βήματα στην χρήση του Microsoft SQL Server και να κάνει μια γνωριμία με την Τransact-SQL.
25 Oct 2015
Get All tables row count without using Count(*) function
Η δύναμη της συνήθειας είναι το μεγαλύτερο ναρκωτικό του μυαλού και δεν το αφήνει να σκεφτεί αποδοτικά. Αλήθεια πόσες φορές κάνουμε μηχανικά κάποια πράγματα επειδή τα έχουμε συνηθίσει στα τόσα χρόνια που κάνουμε αυτή την δουλειά ;
21 Nov 2014
What is Semi join and Anti join?
Στα μάθηματα μου συχνά αναφέρω (ιδιαίτερα όμως όταν κάνω μάθημα σχετικό με τα joins) ότι εκτός από τα γνωστά inner, full, cross, self και left / right outer joins υπάρχουν και τα semi joins και anti-joins.
Η πρώτη αντίδραση από το ακροατήριο μου είναι αυτή που μπορεί να έχει κάποιος όταν το χτυπάει το ρεύμα. Το καταλαβαίνω αμέσως από το γεγονός ότι ξαφνικά αποκτώ το 110% της προσοχής τους.
26 Aug 2009
Πως προφέρεται ο SQL Server;
Αρκετοί με ρωτούν όταν μέσα στα μαθήματα που κάνω όταν λέω SQL Server τον προφέρω "sequel server", ενώ όταν αναφέρομαι στην γλώσσα Transact SQL λέω "transact ess kyoo ell". Θα σας δώσω λοιπόν την εξήγηση, την οποία εχω υιοθετήσει. Την έχω διαβάσει σε αρκετά sites και βιβλία, αλλά έχω ρωτήσει και αρκετά άτομα από το SQL Server Development Team της Microsoft στο τελευταίο μου ταξίδι στο Microsoft Campus στο Redmond πέρσι. Υπάρχουν δύο βασικοί λόγοι. ...
04 Jul 2012
Writing T-SQL using formatting standards, code layout and beautification
Σαν παλαιός developer έχω νιώσει αρκετά καλά στο πετσί μου ότι ο όμορφα γραμμένος κώδικας όσο χάλια και αν είναι πάντα βοηθάει στην ανάγνωση του με αποτέλεσμα να εξυπηρετεί αρκετά τόσο στο debugging αυτού όσο και στο refactoring και extension. Αρκετές φορές ακόμα έχω δεχθεί ερώτηση για αυτό τόσο στον χώρο εργασίας μου όσο και κατά την διάρκεια των σεμιναρίων που κάνω.
14 May 2020
Azure Synapse Analytics SQL Pool Workload Management
Στο άρθρο αυτό αναλύονται οι τρόποι (παλιός και νέος) με τους οποίους μπορούμε να κάνουμε workload management στο Azure Synapse SQL pool. Είναι ένα αρκετά μεγάλο άρθρο στην ανάγνωση του αλλά θεωρούμε ότι αναλύει απλά και κατανοητά όλα όσα πρέπει κάποιος να γνωρίζει για να υλοποιήσει σωστά αυτό.
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.
02 Feb 2021
EXECUTE (EXEC) vs. sp_executesql
Παρατηρώ ότι αρκετοί προβληματίζονται ή έχουν μπερδευτεί για το πότε πρέπει να χρησιμοποιούν την EXECUTE (περισσότερο γνωστή με την σύντμηση της EXEC) ή την sp_executesql.
Λοιπόν για να βάλουμε τα πράγματα σε σειρά.
31 May 2020
Get Month and Day name in a different language
Υπάρχουν φορές που κάποιος θέλει να εμφανίζεται το λεκτικό του μήνα ή της ημέρας στην γλώσσα που επιθυμεί. Αυτό μπορεί να γίνει με κάποιους τρόπους και έχω δει και χρησιμοποιήσει πολλούς, αλλά θα μιλήσω μόνο για δύο στο άρθρο αυτό καθώς οι άλλοι προσδίδουν περισσότερη πολυπλοκότητα στο κώδικα που πρακτικά δεν αξίζει κάποιος να ασχοληθεί μαζί τους.
13 Jan 2012
How to check my queries if they are ANSI compatible? (Tip of the day)
Αρκετές φορές έχω ερωτηθεί και έχω πει την άποψη μου για το τι είναι ANSI Transact SQL και τι όχι, όπως επίσης έχω πει και το πόσο ο SQL Server έχει δώσει βάρος στο να είναι κοντά στο ANSI. Όπως και να έχει όμως είτε θέλω να γράφω pure ANSI επειδή ενδεχομένως να θέλω portability είτε γιατί απλά είμαι περίεργος και θέλω να ξέρω αυτό που γράφω πόσο ANSI είναι , μπορώ το κάνω απλά χρησιμοποιώντας...
01 Sep 2012
Implementing Fuzzy string matching/comparing
Πολλές φορές χρειαζόμαστε σε strings να κάνουμε συγκρίσεις για το αν αυτά είναι όμοια ή πόσο κοντά είναι το ένα στο άλλο. Αυτό όπως καταλαβαίνει κανείς εγκυμονεί αρκετούς κινδύνους, παραδοχές και πολλά ακόμα που πρέπει να λάβουμε υπόψη, ειδικά αν δεν έχουμε βάλει αυστηρούς ελέγχους στο τι πληκτρολογεί ο χρήστης. Παρ’ ότι στον SQL Server έχουμε την SOUNDEX και την DIFFERENCE υπάρχουν περιπτώσεις που δεν μας είναι αρκετές για ικανοποιήσουμε τις ανάγκες μας. Για αυτές τις περιπτώσεις θα πρέπει να δράσουμε κάπως διαφορετικά και θα πρέπει να δημιουργήσουμε εμείς κάτι το οποίο να καλύπτει τις ανάγκες αυτές
22 Feb 2020
Let's talk about Lock related wait types
O μη σεβασμός στην αρχιτεκτονική των RDBMS και ειδικότερα σε αυτό που ονομάζεται concurrency είναι η αιτία των περισσότερων "προβλημάτων" της καθημερινότητας.
22 Apr 2014
In-Memory OLTP – Common Workload Patterns and Migration Considerations - White paper
In-Memory OLTP is a high performance, memory-optimized engine integrated into SQL Server 2014 and designed for modern hardware trends. In-Memory OLTP allows users to move data into memory resident tables while keeping other data in traditional, disk-based table structures. For performance critical workloads, users can also migrate Transact-SQL code to natively compiled stored procedures. This can provide additional performance gains. This paper aims to help readers understand some of the common architectural patterns where In-Memory OLTP has provided significant benefits. The paper also discusses considerations for migrating applications to In-Memory OLTP
12 Apr 2019
The sys.dm_exec_query_stats DMV
Ένα από τα πράγματα που κάνω στην δουλειά μου είναι πηγαίνω σε πελάτες και να τους βοηθάω να λύσουν τα προβλήματα τους. Αυτό σημαίνει ότι έρχομαι αντιμέτωπος με instances που δεν γνωρίζω και πρέπει να μάθω για αυτά. Έτσι εκτελώ αρκετά scripts που έχω γράψει για να συλλέξω τις πληροφορίες που θέλω.
03 Jan 2020
Let's talk about CPU related wait types
Σε αυτό το άρθρο μου θα μιλήσω για τα ποιο σημαντικά wait types που αφορούν την CPU καθώς αυτή είναι αποτελεί ένα από τα βασικά στοιχεία που συντελούν στην απόδοση του SQL Server.
14 Jun 2020
The QUOTENAME and CONCAT_WS string functions
Αν και είναι ένα μικρό άρθρο αυτό, εντούτοις θεώρησα ότι πρέπει να το γράψω καθώς βλέπω ότι κάποιοι ταλαιπωρούνται αδίκως όταν γράφουν κώδικα ειδικά όταν αυτός πρέπει να περιέχει object names πχ tables, fields, views, stored procedures.
22 May 2019
Discover Orphaned Domain Logins using sp_validatelogins
Ένα περιβάλλον παραγωγής δεν είναι ποτέ το ίδιο κατά την διάρκεια λειτουργίας του και αυτό είναι φυσιολογικό καθώς οι ανάγκες οδηγούν στις μεταβολές του. Ένα σημείο που αλλάζει συχνά είναι η δικαιοδοσία των χρηστών.
20 Aug 2015
The Database Developer Role
Πρόσφατα συμμετείχα σε μια συζήτηση στην οποία αναφέρθηκε ο ρόλος του DB Developer. Μέσα από αυτή την συζήτηση διαπίστωσα ότι οι απόψεις για το τι είναι και κυρίως τι κάνει ένας DB Developer δεν είναι ξεκάθαρες.
Θεωρώντας ότι είναι χρήσιμο να γνωρίζουμε τι είναι ο DB Developer ρόλος και πως αυτός τοποθετείτε στην αγορά εργασίας (ζήτηση/αμοιβή) τόσο στην χώρα μας όσο και στο εξωτερικό, αποφάσισα να γράψω το συγκεκριμένο άρθρο.
30 Jun 2009
The SQL Server Operating System (SQLOS) – Μέρος 1ο
Πριν προχωρήσω στο αντικείμενο που θέλω να παρουσιάσω θα ήθελα να περιγράψω κάποιες γνωστές έννοιες που θεωρώ ότι είναι καλό να επαναληθούν, μιας και η επανάληψη είναι η μητέρα της μάθησης όπως έλεγαν οι πρόγονοι μας. Κάθε application ( και με αυτό τον όρο συμπεριλαμβάνω και τα services ) μπορεί να εκτελεσθεί πολλές φορές. Κάθε εκτέλεση του application είναι ένα instance.
06 Jan 2020
Let's talk about Backup related wait types
Backup/Restore δύο τόσο συνηθισμένες εργασίες που όμως γίνονται τόσα λάθη σε αυτές που πολλές φορές έχουν τραγικά αποτελέσματα. Σε αυτό το άρθρο θα ασχοληθώ με τα wait types που αφορούν τις διαδικασίες αυτές και τα οποία θα βοηθήσουν, θεωρώ, στην κατανόηση τους.
12 Jun 2020
The NULLIF expression
Σε αυτό το άρθρο ασχολούμαστε με το NULLIF expression, το οποίο αν χρησιμοποιηθεί κατάλληλα, μπορεί να δώσει πολλαπλά κέρδη τόσο στην απλότητα του query όσο και στην απόδοση του. Υποστηρίζεται σε SQL Server, Azure SQL Database, Azure Synapse Analytics (SQL DW) και Parallel Data Warehouse.
28 Oct 2009
Γιατί πρέπει να χρησιμοποιώ Stored Procedures
Χαίρετε, καιρό είχατε να με ακούσετε ε; Δυστυχώς αυτά συμβαίνουν όταν αλλάζεις δουλειά. Όμως σιγά σιγά βρίσκω τα νέα βήματα μου οπότε επανέρχομαι δριμύτερος. Σήμερα θέλω να σας κουράσω με κάτι που δεν είναι στο administration του SQL Server αλλά στο programming του. Αυτό ακούει στο όνομα Stored Procedures. Είμαι σίγουρος ότι αν όχι όλοι οι περισσότεροι τις ξέρετε. Είμαι σίγουρος ότι υπάρχουν φανατικοί υποστηρικτές τους, όπως επίσης και άλλοι που όταν ακούνε το όνομα τους βγάζουν σπυράκια. ...
11 Apr 2017
Update Statistics - sys.dm_db_stats_properties DMV
Δεν θα σταματήσω να γράφω για την σημασία που έχουν τα statistics στην επιλογή του καλύτερου execution plan ποτέ. Αρκετά μεγάλος αριθμός καθυστερήσεων σε queries οφείλεται σε αυτά και προσωπικά κρίνω απαραίτητο να υπάρχει σε όλους η συγκεκριμένη γνώση γύρω από αυτά.Στο παρελθόν έχω γράψει αρκετά άρθρα γύρω από αυτά και σήμερα επανέρχομαι με ακόμα ένα με το οποίο θέλω να ρίξω περισσότερο φως σε αυτά.
10 Feb 2018
Monitoring CREATE INDEX Progress
Όσοι από εμάς έχουν περάσει ή είναι DBA σε μεγάλες databases καθημερινά έρχονται αντιμέτωποι με πολλά ενδιαφέροντα θέματα. Ένα από αυτά είναι η συντήρηση και η δημιουργία των indexes σε μεγάλου όγκου databases. Ειδικότερα αυτό που ένας τέτοιος DBA ζητάει είναι να γνωρίζει το progress ώστε να είναι σε θέση να εκτιμήσει την ολοκλήρωση της εργασίας.
07 Oct 2017
SOME T-SQL IMPLICIT CASTING TRAPS
Είναι γνωστό ότι τα implicit casts κρύβουν κινδύνους και ειδικά μέσα στα queries μας τα αποφεύγουμε. Παρόλα αυτά είναι καλό να ξέρουμε πως συμπεριφέρονται στον SQL Server και τι να περιμένουμε στο αποτέλεσμα.
28 Apr 2020
Auditing my SQL Server instance Surface Area Configuration
Στο SQL Server υπάρχουν αρκετά features που αν δεν χρησιμοποιηθούν σωστά υπάρχει η πιθανότητα να μας δημιουργήσουν προβλήματα ασφάλειας και είναι από τα πρώτα πράγματα που ελέγχω όταν καλούμαι να εκτελέσω ένα SQL Server Security Assessment.
20 Oct 2019
Useful Extended Events scenarios
Είναι γνωστό, εδώ και 7 χρόνια, ότι ο SQL Server Profiler είναι σε κατάσταση απόσυρσης και ότι ο διάδοχος τους είναι τα Extended Events. Με αυτά μπορούμε να κάνουμε πολλά πράγματα που μας βοηθούν στον εντοπισμό και την επίλυση προβλημάτων.
27 Mar 2017
The XACT_ABORT setting
Ένα από τα statements που έχουν δημιουργήσει και συνεχίζουν να δημιουργούν σύγχυση είναι το XACT_ABORT.
Αν και η περιγραφή του συγκεκριμένου set statement είναι αρκετά σαφής όπως περιγράφεται μέσα στα books online (BOL) του SQL Server εντούτοις μια μικρή λεπτομέρεια που κανείς δεν προσέχει κάνει την διαφορά.