20 Aug 2015
The Database Developer Role
Πρόσφατα συμμετείχα σε μια συζήτηση στην οποία αναφέρθηκε ο ρόλος του DB Developer. Μέσα από αυτή την συζήτηση διαπίστωσα ότι οι απόψεις για το τι είναι και κυρίως τι κάνει ένας DB Developer δεν είναι ξεκάθαρες.
Θεωρώντας ότι είναι χρήσιμο να γνωρίζουμε τι είναι ο DB Developer ρόλος και πως αυτός τοποθετείτε στην αγορά εργασίας (ζήτηση/αμοιβή) τόσο στην χώρα μας όσο και στο εξωτερικό, αποφάσισα να γράψω το συγκεκριμένο άρθρο.
28 May 2014
PARSENAME T-SQL Function
Σαν DBA αλλά και DB Developer έχεις την ανάγκη να διαβάσεις metadata για να κάνεις την δουλειά σου. Αρκετές είναι οι φορές που τo όνομα του object που παίρνεις είναι full qualified name δηλαδή περιέχει server, database, schema, και φυσικά το όνομα του και ανά περίπτωση θέλεις να πάρεις κάποιο από αυτά. Μην ψάχνεις να δεις πως θα τα κάνεις…
13 May 2012
Error 1205 or a deadlock occurred, how to deal with it?
Το τελευταίο διάστημα στα μαθήματα και τις παρουσιάσεις που έχω κάνει όλο και περισσότεροι έρχονται και με ρωτούν τι πρέπει να κάνουν για το deadlock καθώς όπως μου λένε έχουν όλο και περισσότερες εμφανίσεις του φαινομένου αυτού. Πάντα απαντώ σε όλους αυτά που θα ακολουθήσουν σε αυτό το post αλλά μέχρι τώρα δεν τα είχα γράψει και νομίζω ότι πλέον είναι καιρός να γίνει αυτό. Τι είναι το deadlock;
23 Jan 2010
What a DBA must know for query performance in SQL Server
Θα επανέλθω στο συγκεκριμένο θέμα μετά από απαίτηση συναδέλφων που είδαν την παρουσίαση που έχω κάνει για το 34ο dotNetZone Event και την οποία θα βρείτε εδώ. Υπήρχαν κάποιες απορίες και ερωτήσεις που φιλοδοξώ να τις απαντήσω με το παρόν post μου. Ας πάρουμε λοιπόν τα πράγματα από την αρχή μιας και διακαείς πόθος όλων μας είναι να έχουμε την τέλεια απόδοση στα queries μας δηλαδή όλα να εκτελούνται σε χρόνο μηδέν και να επιστρέφουν δισεκατομμύρια εγγραφές (καλά πλάκα κάνω :D).
05 Jul 2009
Παρουσίαση του Activity Monitor στον SQL Server 2008
Πριν ξεκινήσω να περιγράφω το συγκεκριμένο εργαλείο, οφείλω να καταθέσω την άποψη μου γι’ αυτό. ΕΙΝΑΙ ΚΑΤΑΠΛΗΚΤΙΚΟ!!!. Όσοι έχετε ασχοληθεί από παλία με τον SQL Server, προσωπικά ασχολούμαι από την έκδοση 6.0 (1996), θα έχετε παρακολουθήσει την εξέλιξη του συγκεκριμένου εργαλείου. Σε κάθε έκδοση είχαμε κάποιες βελτιώσεις. Όμως στην έκδοση του SQL Server 2008 πιστεύω ότι έχουμε τις περισσότερες αλλά και τις σημαντικότερες βελτιώσεις.
14 Oct 2015
SQL Server 2016 New features - The sys.dm_exec_session_wait_stats DMV
Καθημερινά ένας DBA ή DB developer έχει να αντιμετωπίσει αρκετούς αστάθμητους τις περισσότερες φορές παράγοντες που επηρεάζουν το performance.
Πιστέψτε με ότι αυτό είναι μια δουλεία που απαιτεί σχολαστικότητα γνώση της αρχιτεκτονικής τόσο του SQL Server όσο και της database. Για να κάνεις αυτή την δουλεία θα πρέπει να έχεις μελετήσει αρκετά και να έχεις κάνει αρκετή πρακτική εξάσκηση για την απόκτηση εμπειρίας.
04 Jul 2012
Writing T-SQL using formatting standards, code layout and beautification
Σαν παλαιός developer έχω νιώσει αρκετά καλά στο πετσί μου ότι ο όμορφα γραμμένος κώδικας όσο χάλια και αν είναι πάντα βοηθάει στην ανάγνωση του με αποτέλεσμα να εξυπηρετεί αρκετά τόσο στο debugging αυτού όσο και στο refactoring και extension. Αρκετές φορές ακόμα έχω δεχθεί ερώτηση για αυτό τόσο στον χώρο εργασίας μου όσο και κατά την διάρκεια των σεμιναρίων που κάνω.
23 Oct 2011
TOD : You are not going to say “F***, I ran the test script in the production server!” again
Σαν DBA και DB Developer έχω πολλούς servers/instances του SQL Server τα οποία διαχειρίζομαι. Φαντάζομαι ότι και εσείς θα έχετε αρκετά είναι production είτε development instances. Αρκετές φορές πάνω στην βιασύνη ίσως έχετε τρέξει κάποιο script στο production ενώ δεν θα έπρεπε. Συνήθως αυτό γίνεται διότι έχετε ανοίξει ένα query window το οποίο είναι συνδεδεμένο στο instance που δεν θα έπρεπε να είναι. Αυτό είναι ένα θέμα. Θέλω να ξέρω κάθε φορά σε ποιο instance είμαι συνδεδεμένος.
12 Apr 2012
Auditing Enhancements in SQL Server 2012
Επειδή μερικά πράγματα πρέπει να τα κλείνεις γρήγορα έτσι σήμερα με αυτό το post θα καλύψω μια από τις υποσχέσεις που έδωσα στο τελευταίο μου post και θα μιλήσω σε αυτό για τις βελτιώσεις που έχουμε για auditing στο SQL Server 2012.
13 Oct 2011
The SQL Server Utility
Το πρόβλημα Σαν DBA και ειδικά σε enterprise environments έχουμε το καθήκον να διαχειριζόμαστε ένα αρκετά σημαντικό αριθμό από SQL Server instances που υπάρχουν διάσπαρτα μέσα στο οργανισμό ή την εταιρεία στην οποία εργαζόμαστε. Αυτό σημαίνει ότι πρέπει καθημερινά να παρακολουθούμε την πορεία αυτών των instances ώστε προληπτικά και όχι πυροσβεστικά να δίνουμε λύσεις σε issues που τυχόν θα εμφανιστούν.
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 ...
28 Oct 2009
Γιατί πρέπει να χρησιμοποιώ Stored Procedures
Χαίρετε, καιρό είχατε να με ακούσετε ε; Δυστυχώς αυτά συμβαίνουν όταν αλλάζεις δουλειά. Όμως σιγά σιγά βρίσκω τα νέα βήματα μου οπότε επανέρχομαι δριμύτερος. Σήμερα θέλω να σας κουράσω με κάτι που δεν είναι στο administration του SQL Server αλλά στο programming του. Αυτό ακούει στο όνομα Stored Procedures. Είμαι σίγουρος ότι αν όχι όλοι οι περισσότεροι τις ξέρετε. Είμαι σίγουρος ότι υπάρχουν φανατικοί υποστηρικτές τους, όπως επίσης και άλλοι που όταν ακούνε το όνομα τους βγάζουν σπυράκια. ...
26 Dec 2009
Database design and architecture by Paul Nielsen
Χρόνια Πολλά σε όλους! Εύχομαι ο νέος χρόνος να φέρει υγεία, αγάπη και ευτυχία σε εσάς και τις οικογένειες σας. Αυτές τι μέρες βρήκα την ευκαιρία να διαβάσω αρκετά νέα βιβλία τα οποία είχα προμηθευτεί επί τούτου. Μέσα σε όλα αυτά ξεχώρισα τo παρακάτω εισαγωγικό σημειώμα που apriory με εκφράζει απόλυτα. Με το που το διάβασα πετάχθηκα από το καναπέ μου και αναφώνησα ΠΕΣΤΑ ΧΡΥΣΟΣΤΟΜΕ.
02 Jan 2023
Άνθρωπος και Τεχνολογία
Το άρθρο αυτό δεν μιλάει για SQL Server, Synapse κλπ. θέματα που συνήθως γράφω. Μιλάει για το πως πρέπει να αντιμετωπίζουμε την τεχνολογία και τον άνθρωπο που ασχολείται μαζί της. Είναι απλές σκέψεις χωρίς επιτήδευση απλά βγήκαν στο χαρτί.
08 Sep 2019
How to not make a disaster view
Όλοι γνωρίζουμε ότι ένα view είναι ένα stored query expression το οποίο ορίζει τι θα επιστρέφει το συγκεκριμένο view. Με απλά λόγια είναι ένα SELECT statement. Όμως τις φτιάχνουμε σωστά ώστε να δουλεύουν και σωστά;
14 Sep 2015
Monitor Connection Pooling as SQL Server DBA
Το connection pooling είναι μια cache από database connections που σκοπό έχει αυτά που είναι ελεύθερα στην cache αυτή να μπορούν να επαναχρησιμοποιηθούν κάθε φορά που κάποιος ζητάει να κάνει connect στην database.Η χρησιμότητα του connection pooling είναι αρκετά σημαντική στην εκτέλεση διαδικασιών πάνω στην database από το application καθώς με αυτό τον τρόπο γίνεται αφενός γρηγορότερη επικοινωνία αφετέρου καταναλώνονται λιγότεροι πόροι.
29 May 2012
Another Example Why you must avoid Implicit Conversions in T-SQL
Αν και δεν είμαι αρκετά σίγουρος ότι όλοι έχουν καταλάβει ότι θα πρέπει να αποφεύγουν όπως ο διάολος το λιβάνι τα implicit conversions εντούτοις αυτό είναι κάτι γνωστό και πηγή δεινών αν αυτό γίνεται στην T-SQL. Υπάρχουν αρκετά άρθρα που το αναφέρουν αυτό και με αυτό το post θα συμπληρώσω και εγώ ακόμα ένα παράδειγμα με σκοπό μήπως και κάποιοι συνετιστούν και σταματήσουν να το κάνουν.
21 Jun 2013
Doing Magic with Partitioning and ColumnStore Index in a Data Warehouse DB on SQL Server 2012
Αρκετοί με ρωτάνε στα μαθήματα που κάνω αλλά και με emails στο SQL School σχετικά με το θέμα του table partitioning. Δεν ξέρω γιατί αλλά πολλούς έχει προβληματίσει και μπορώ να πω ότι έχει αγχώσει, αν και δεν θα έπρεπε καθώς είναι μια καθαρή λύση.
Υπάρχουν και συνάδελφοι που ασχολούνται με BI και έχουν Data Warehouses (DW) στα οποία θέλουν να επωφεληθούν από το table partitioning αλλά και από την χρήση των columnstore indexes.
Αποφάσισα να σας φτιάξω ένα μικρό demo με το οποίο θα δείτε ότι το να κάνει κάποιος table partitioning δεν είναι κάτι δύσκολο.
24 Apr 2017
TRY… CATCH with Extended Event
Από το SQL Server 2005 έχουμε στην διάθεση μας το TRY…CATCH με το οποίο μπορούμε να έχουμε ένα δομημένο exception handling και πραγματικά είμαστε όλοι ευχαριστημένοι με αυτό.Παρόλο που αυτό κάνει εξαιρετικά την δουλειά του και πιάνει πραγματικά όλα τα run time exceptions υπάρχει κάτι που συμβαίνει και που οι περισσότεροι πιστεύουν ότι είναι limitation σε αυτό (κατά την γνώμη μου δεν είναι).
16 Nov 2015
List all IDENTITY Columns in your database
Συνεχίζοντας από το τελευταίο μου άρθρο σήμερα θα σας παρουσιάσω ακόμα ένα metadata query με το οποίο θα μπορώ να γνωρίζω τα tables που έχουν IDENTITY column, το data type που έχουν αυτές οι columns όπως επίσης από που ξεκινάνε (seed) πως μεγαλώνει η τιμή του (increment) και ποια είναι η τρέχουσα τιμή του.
20 Mar 2015
How to deal with migration or instance upgrade nightmares
Κάθε φορά που στο μυαλό σου έρχεται η σκέψη να κάνεις upgrade ένα υπάρχον SQL Server instance ή κάποιες databases σε επόμενη έκδοση τα αισθήματα σου είναι ανάμικτα. Από την μια λες πρέπει να γίνει καθώς θα πάω σε κάτι νέο με περισσότερα χαρακτηριστικά και δυνατότητες και έτσι θα είμαι σε θέση να παρέχω καλύτερες υπηρεσίες στους χρήστες μου. Από την άλλη αναρωτιέσαι αν αυτό θα σου δημιουργήσει προβλήματα καθώς μπορεί κάποια πράγματα μπορεί να μην δουλέψουν γιατί μπορεί να μην υπάρχει συμβατότητα καθώς κάτι μπορεί να μην υποστηρίζεται στην νέα έκδοση. Κάπως έτσι ξεκινάει ο εφιάλτης. Αλλά για μια στιγμή μήπως τελικά ο εφιάλτης είναι πόνημα φαντασίας;
21 Jan 2015
Create a db_executor database role
Επειδή το security στη database είναι αρκετά σημαντικό και πραγματικά δεν ξέρω γιατί οι περισσότεροι δεν δίνουν την πρέπουσα σημασία σε αυτό το σύντομο post θα σας δώσω ένα tip του οποίου η εφαρμογή ξεπερνάει το 99% των περιπτώσεων.
11 Feb 2014
Filtering data on joins or to where clause?
Ένα ερώτημα που όλους κάποια στιγμή έχει απασχολήσει και έχει δημιουργήσει ενδιαφέρουσες συζητήσεις είναι το που είναι καλύτερο να βάλω τα φίλτρα μου σε ένα join query, να τα βάλω στο where όπως θα έκανα ή να τα βάλω στο join;
08 Feb 2013
Database Lifecycle Management (DLM)
Για όλους εμάς που είμαστε data geeks και οι databases είναι τρόπος έκφρασης και ζωής αλλά και κάτι που όλοι χρησιμοποιούν είτε τους αρέσει είτε όχι έχουμε βασανιστεί πάμπολες φορές για το πώς να μεταφέρουμε αλλαγές από το development στο production αλλά και γενικότερα να έχουμε ένα db lifecycle management.
24 Apr 2010
The One and Only…
Είμαι φανατικός αναγνώστης του, έχω διαβάσει σχεδόν όλα του τα βιβλία όχι μια αλλά πολλές φορές, τα οποία κοσμούν την βιβλιοθήκη μου. Προσπαθώ να βρω τα άρθρα του όπου και αν γράφει. Δεν υπάρχει περίπτωση να μην τον αναφέρω μέσα στην τάξη όταν κάνω μάθημα. Αλλά ποτέ μέχρι σήμερα δεν τον είχα δει να κάνει μάθημα. Γενικά δεν κάνει πολλές εμφανίσεις που να μπορώ να βρώ στο web.
18 May 2017
Stored Procedure for rebuild or reorganize indexes in a database
Σε παλαιότερο μου άρθρο είχα φτιάξει κάποια scripts τα οποία μπορούν να χρησιμοποιηθούν για το indexes fragmentation. Σήμερα σας δίνω μια stored procedure την οποία την κάνω system procedure και μπορεί να είναι διαθέσιμη σε όλες τις databases, αλλά παίρνει και παραμέτρους για να καλυφτούν περισσότερες ανάγκες ανά περίπτωση
27 Nov 2015
Storing DDL Statements History
Ένας οργανισμός έχει πολλά SQL Server Instances, πολλές databases και σίγουρα πάνω από έναν DBA, DB developer που έχουν πρόσβαση σε αυτά τα instances και αυτές τις databases. Ζητούμενο από όλους είναι να γνωρίζουμε τις αλλαγές που έχουν γίνει σε αυτές τις databases σε επίπεδο schema αλλά και πότε μπήκε ένας χρήστης σε ποιο ρόλο και πολλά ακόμα στοιχεία όπως δημιουργία indexes, αλλαγή στο μέγεθος μιας βάσης κλπ.
02 Jan 2014
SQL Server Services Ports that each DBA and Developer must know
Καλή Χρονιά με υγεία πάντα σε όλες και όλους.
Πρώτο post για την χρονιά αυτή και θα ξεκινήσω με κάτι απλό που πρέπει να γνωρίζουν όλοι, είτε είναι DBAs είτε είναι Developers.
Ο SQL Server είναι στην ουσία ένα εργοστάσιο από services. Κάθε ένα από αυτά όμως έχει την δικό του "ταχυδρομικό κωδικό". Αυτός δεν είναι άλλος από την πόρτα TCP/UDP έτσι σας δίνω μια λίστα αυτών με τις πόρτες που το κάθε ένα χρησιμοποιεί και είναι απαραίτητο να γνωρίζετε.
11 Aug 2013
How to configure report pagination based on data groups for excel exporting
Ένα report μπορούμε να το δούμε online ή να το κάνουμε export με σκοπό να επεξεργαστούμε τα δεδομένα με την ησυχία μας. Σε αυτές τις περιπτώσεις σημαντικό είναι το πώς έχουμε διαμορφώσει την εμφάνιση των reports μας. Ποιο σημαντικό είναι το pagination. Σε αυτό το web cast σας δείχνω πως χρησιμοποιώντας τo grouping και το pagination σε αυτό μπορείτε να κάνε export σε excel με τέτοιο τρόπο ώστε κάθε τιμή στο pagination να είναι σε ξεχωριστό excel sheet.
04 Aug 2013
Using Power Query add-in for Excel to get data from web and facebook
Σε αυτό το web cast – post θέλω να σας δείξω πόσο μα πόσο απλό είναι να αντλήσεις δεδομένα από web sites αλλά και από το facebook.
Όσοι είστε data geeks και έχετε ή θέλετε να ενσωματώσετε περισσότερα δεδομένα στην ανάλυση των δεδομένων που κάνετε αυτό είναι το πρώτο βήμα και το οποίο μάλιστα είναι και αρκετά εύκολο και το σημαντικότερο είναι δωρεάν.
16 Apr 2011
SQL CLR, How and When to use
Μπορείς να κάνεις τα πάντα που αφορούν δεδομένα μέσα από τον SQL Server. Όμως αρκετές φορές έχεις την ανάγκη να κάνεις και πράγματα μέσα από τον SQL Server που δεν είναι για τα δεδομένα του. Θέλεις για παράδειγμα να διαβάσεις ένα αρχείο από το δίσκο ή θέλεις να διαβάσεις registry και πολλά άλλα. Σε αυτό το session γίνεται παρουσίαση ενός feature το οποίο στην αρχή δίχασε ακόμα περισσότερο τους database experts με τους traditional developer.
15 Nov 2015
List All Primary Keys and Foreign Keys in your database
Δεν είναι λίγες οι φορές που θέλεις να μάθεις πράγματα για το database schema σε μια database που είτε είχες φτιάξει στο παρελθόν είτε είναι μια database που στην έχουν φέρει να την διαχειριστείς και από documentation πάσχει.Για όλους τους παραπάνω λόγους θα πρέπει να ψάξεις, αλλά πρέπει να ψάξεις χωρίς να κουραστείς και το να ψάχνεις με το γραφικό περιβάλλον του SSMS είναι κουραστικό οπότε πρέπει να καταφύγεις σε metadata queries.
25 Oct 2015
Get All tables row count without using Count(*) function
Η δύναμη της συνήθειας είναι το μεγαλύτερο ναρκωτικό του μυαλού και δεν το αφήνει να σκεφτεί αποδοτικά. Αλήθεια πόσες φορές κάνουμε μηχανικά κάποια πράγματα επειδή τα έχουμε συνηθίσει στα τόσα χρόνια που κάνουμε αυτή την δουλειά ;
15 Oct 2015
SQL Server 2016 New features - The sys.dm_exec_function_stats DMV
Τα User Defined Functions (UDF) είναι γνωστά στους περισσότερους. Η χρήση τους είναι μεγάλη αλλά αρκετές φορές χρησιμοποιούνται λάθος κυρίως λόγο της άγνοιας που υπάρχει γύρω από την εκτέλεση ενός UDF και ιδιαίτερα όταν αυτό εμπλέκεται μέσα σε ένα query.