18 Jun 2014
Database Design Counts
Δεν είναι σπάνιο το φαινόμενο να πέφτω πάνω σε databases που έχουν σχεδιαστεί στην κυριολεξία στο πόδι. Σε πολλές από αυτές, άλλοτε εύκολα, άλλοτε με σχετικά μη επώδυνο τρόπο, κατάφερα να αλλάξω τον σχεδιασμό τους. Υπάρχουν όμως αρκετές που αυτό δεν ήταν εφικτό.
Το μήνυμα που θέλω να περάσω μέσα από το post αυτό είναι ότι πρέπει να επενδύουμε χρόνο στον σχεδιασμό της database, ακόμα και αν γνωρίζουμε ότι δεν πρόκειται να έχουμε μεγάλο όγκο δεδομένων, καθώς έτσι θα δημιουργήσουμε μια συνήθεια που δύσκολα θα κοπεί με αποτέλεσμα να έχουμε σωστά σχεδιασμένες databases.
03 Apr 2020
How to discover nested views
Για όσους θυμούνται από το δημοτικό το Ανθολόγιο και το κείμενο του Δ. Ψαθά, "Η τσάντα και το τσαντάκι" που υπήρχε σε αυτό πιθανώς θα γελάσουν, και καλά θα κάνουν
08 Mar 2020
Don't forget to Indexing Foreign Keys
Στο SQL Server κάθε φορά που δημιουργούμε ένα Primary Key δημιουργείται και ένας index αλλά αυτό δεν γίνεται όταν φτιάχνουμε ένα Foreign Key και θα πρέπει να το δημιουργούμε εμείς ξεχωριστά. Το γιατί και ποιο είναι το όφελος το παρουσιάζω στο άρθρο αυτό.
13 Jan 2020
What you need to know when using MERGE statement
Στο SQL Server 2008 παρουσιάστηκε για πρώτη φορά το MERGE statement το οποίο απλοποιούσε τις διαδικασίες insert/update/delete ιδιαίτερα σε ETL διαδικασίες και από όσο έχω δει έχει αγαπηθεί από αρκετούς και μέσα σε αυτούς είμαι και εγώ.
08 Sep 2019
How to not make a disaster view
Όλοι γνωρίζουμε ότι ένα view είναι ένα stored query expression το οποίο ορίζει τι θα επιστρέφει το συγκεκριμένο view. Με απλά λόγια είναι ένα SELECT statement. Όμως τις φτιάχνουμε σωστά ώστε να δουλεύουν και σωστά;
09 Aug 2018
The Last Page Insert Problem
Ένα διαφορετικού τύπου άρθρο, που αντί για διάβασμα έχει video είναι ένα video blog post και αφορά ένα αρκετά ενδιαφέρον θέμα του SQL Server
24 May 2018
The money data type
Σήμερα είχα μια ερώτηση από ένα συνάδελφο σχετικά με το συγκεκριμένο data type αφού πρώτα είχαμε κάνει μια εσωτερική εκπαίδευση πριν από αρκετές μέρες και σε αυτή είχαμε μιλήσει για τα data types που έχει ο SQL Server.
10 Feb 2018
Monitoring CREATE INDEX Progress
Όσοι από εμάς έχουν περάσει ή είναι DBA σε μεγάλες databases καθημερινά έρχονται αντιμέτωποι με πολλά ενδιαφέροντα θέματα. Ένα από αυτά είναι η συντήρηση και η δημιουργία των indexes σε μεγάλου όγκου databases. Ειδικότερα αυτό που ένας τέτοιος DBA ζητάει είναι να γνωρίζει το progress ώστε να είναι σε θέση να εκτιμήσει την ολοκλήρωση της εργασίας.
04 Jan 2018
About LSNs in SQL Server
Πολλά πράγματα μέσα στον SQL Server γίνονται με βάση το LSN (Log Sequence Number). Αρκετές πάλι είναι οι ερωτήσεις που δέχομαι για αυτό και κυρίως αφορούν πως αυτό μεταφράζεται. Μέσα από αυτό το άρθρο θα προσπαθήσω να το εξηγήσω όσο καλύτερα και ευκολότερα γίνεται.
16 Oct 2017
Find missing indexes on foreign key constraints
Τα foreign keys όπως είναι γνωστό δεν φτιάχνουν κάποιον index στο reference table. Επίσης είναι γνωστό ότι καλό (αλλά όχι πάντα απαραίτητο) να φτιάχνουμε nonclustered index στο reference table στo field(s) που εμπλέκονται στο FK constraint.
25 Apr 2017
Why you must choose correctly the size of each field in a table
Κάθε φορά κατά την διάρκεια ενός μαθήματος ή μιας παρουσίασης που κάνω με θέμα το σχεδιασμό μιας database και των tables αυτής όταν επίμονα τονίζω ότι πρέπει να επιλέγουμε με πραγματικά κριτήρια το μέγεθος κάθε field που θα βάλουμε στο table και όχι με την λογική βάλε κάτι μεγάλο γιατί δεν ξέρεις τι θα γίνει στο μέλλον, με κοιτάνε αρκετοί περίεργα.
21 Sep 2016
The sql_variant Data type
Με αφορμή για όμορφη κουβέντα που είχα με τους μαθητές μου στο σεμινάριο που κάνω αυτό το διάστημα αποφάσισα να γράψω αυτό το άρθρο ώστε να φωτίσω όσο το δυνατόν περισσότερο την ύπαρξη αλλά και την χρήση του sql_variant data type.
01 Sep 2016
To Shrink or Not to Shrink a database?
Μπορεί ο τίτλος στο συγκεκριμένο άρθρο μου να είναι άκρως Σαιξπηρικός αλλά αντικατοπτρίζει πλήρως την σύγχυση που υπάρχει γύρω από το αν πρέπει ή όχι να γίνεται shrink σε μια database.
Δεν είναι λίγες οι φορές που έχω κατηγορηθεί για την επιμονή μου ότι κάτι τέτοιο δεν είναι καλό να γίνεται. Δεν είναι επίσης λίγες οι φορές που στην δουλειά μου έχω αρνηθεί να κάνω κάτι τέτοιο. Όπως επίσης δεν είναι λίγες οι φορές που έχω χαρακτηριστεί απόλυτος στο συγκεκριμένο θέμα. Τέλος είναι αμέτρητες οι φορές που έχω ερωτηθεί για την άποψη μου σχετικά με αυτό.
11 Jul 2016
Moving a table to another filegroup
Στο πρόσφατα ολοκληρωμένο σεμινάριο (20462) στο οποίο μιλάμε και για filegroups, έδειχνα στους μαθητές μου πως μπορούν αν εκμεταλλευτούν αυτά ώστε να επωφεληθούν από αυτά τόσο σε maintenance όσο και σε performance.
Αφού μέσα από τα δικά μου παραδείγματα που δεν υπάρχουν στο βιβλίο τους έχω βάλει το μικρόβιο να θέλουν σαν τρελοί να τα χρησιμοποιήσουν η αναμενόμενη επόμενη ερώτηση είναι πως μπορούν σε ήδη δημιουργημένες databases να κάνουν αυτό.
Η απάντηση πάντα από μένα στο μάθημα είναι μέσω παραδείγματος καθώς κάτι τέτοιο δεν το έχει το σεμινάριο.
Σήμερα κατά μια διαβολεμένη σύμπτωση ένας καλός συνάδελφος από μια εξωτερική εταιρεία ήθελε να κάνει κάτι αντίστοιχο και επειδή μέχρι τώρα δεν το είχα γράψει σαν άρθρο θεώρησα ότι κάποια δύναμη θέλει να γίνει αυτό πραγματικότητα οπότε …
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.
04 Apr 2016
An easy way to have a database documentation
Όλοι θέλουμε να έχουμε ένα documentation για κάθε database που παραλαμβάνουμε από άλλους. Μάλιστα εκφράζουμε την δυσαρέσκεια μας όταν κάτι τέτοιο δεν υπάρχει, αλλά αν μας ζητήσουν να φτιάξουμε εμείς κάτι τέτοιο για την database που φτιάχνουμε τότε διαμαρτυρόμαστε ότι αυτό είναι χάσιμο χρόνου ή ότι δεν είναι η δουλεία μας κάτι τέτοιο. Μπορώ να καταλάβω τις διαφωνίες καθώς οι περισσότεροι θεωρούν ότι θα πρέπει να γράψουν καντάρια κειμένου. Αλήθεια πόσοι από εσάς έχετε πάρει τόμους τεκμηρίωσης στα χέρια σας και τα έχετε διαβάσει όλα;
15 Jan 2016
Converting numbers in a string with various format
Μερικές φορές κάποια πράγματα που επαναλαμβάνονται δίνουν κάποιο σημάδι που δεν πρέπει κανείς να αγνοεί. Ίσως είναι η πρώτη φορά που μου συμβαίνει κάτι τέτοιο καθώς μέσα σε διάστημα 12 ώρων μου τέθηκε πάνω από 10 φορές (σε παραλαγγές) η παρακάτω ερώτηση.
18 Nov 2015
List all CHECK constraints in your database
Συνεχίζουμε με τα χρήσιμα metadata queries και σε αυτό θα δούμε ακόμα ένα με το οποίο μπορούμε να πάρουμε μια συγκεντρωτική εικόνα όλων των check constraints που έχω στην database μου.
16 Nov 2015
List all IDENTITY Columns in your database
Συνεχίζοντας από το τελευταίο μου άρθρο σήμερα θα σας παρουσιάσω ακόμα ένα metadata query με το οποίο θα μπορώ να γνωρίζω τα tables που έχουν IDENTITY column, το data type που έχουν αυτές οι columns όπως επίσης από που ξεκινάνε (seed) πως μεγαλώνει η τιμή του (increment) και ποια είναι η τρέχουσα τιμή του.
20 Aug 2015
The Database Developer Role
Πρόσφατα συμμετείχα σε μια συζήτηση στην οποία αναφέρθηκε ο ρόλος του DB Developer. Μέσα από αυτή την συζήτηση διαπίστωσα ότι οι απόψεις για το τι είναι και κυρίως τι κάνει ένας DB Developer δεν είναι ξεκάθαρες.
Θεωρώντας ότι είναι χρήσιμο να γνωρίζουμε τι είναι ο DB Developer ρόλος και πως αυτός τοποθετείτε στην αγορά εργασίας (ζήτηση/αμοιβή) τόσο στην χώρα μας όσο και στο εξωτερικό, αποφάσισα να γράψω το συγκεκριμένο άρθρο.
22 Apr 2014
SQL Server 2014 and Windows Azure Blob Storage Service: Better Together - White paper
SQL Server 2014 introduces significant new features toward a deeper integration with Microsoft Azure, thus unlocking new scenarios and provide more flexibility in the database space for IaaS data models. This technical article will cover in depth SQL Server 2014 Data Files on Azure Blob storage service, starting from step-by-step configuration, then providing guidance on scenarios, benefits and limitations, best practices and lessons learned from early testing and adoption. Additionally, a fully featured example of a new (Windows Server Failover Clustering) - like feature will be introduced to demonstrate the power of Microsoft Azure and SQL Server 2014 when combined together.
22 Apr 2014
Introducing Microsoft Business Intelligence (BI) Tools - White paper
The intent of this article is to assist you with choosing the business intelligence (BI) tools that meet your organization’s BI needs. Microsoft provides a variety of BI tools that can address key workloads. The article discusses the workloads and the tools that best support each workload.
22 Apr 2014
Idle Connection Resiliency - White Paper
Describes the idle connection resiliency feature, which allows ODBC and SqlClient data access applications to maintain their connections to SQL Server 2014 or an Azure SQL Database
10 Apr 2014
SQL Server Protocols
Κατά την διάρκεια του χθεσινού μου μαθήματος είχα μια ερώτηση που επαναλαμβάνεται με μαθηματική ακρίβεια και αφορά τα sql protocols και πως αυτά χρησιμοποιούνται. Επειδή έχω δει ότι υπάρχει ένα σύννεφο γύρω από αυτό το θέμα γράφω αυτό το άρθρο φιλοδοξώντας να διώξω το σύννεφο αυτό.
Όταν μια εφαρμογή επικοινωνεί με το SQL Server Database Engine τα APIs που παρέχονται από τo protocol layer ελέγχουν την επικοινωνία αυτή χρησιμοποιώντας ένα format που έχει φτιάξει η Microsoft και το οποίο ονομάζετε Tabular data stream (TDS) packet.
20 Feb 2014
CREATE DATABASE Secrets
Όλοι κάποια στιγμή έχουμε φτιάξει μια database είτε με το γραφικό περιβάλλον είτε με DDL statement (CREATE DATABASE). Για αυτούς που είναι λάτρεις του κώδικα και φτιάχνουν μια database με script υπάρχουν κάποια κρυφά μυστικά που είναι καλό να γνωρίζουν ;-)
13 Aug 2013
FILESTREAM Best Practices from usage and experience
Από τον SQL Server 2008 υπάρχει ένα feature που είναι ιδανικό για BOL fields μέσα στην βάση. Αναφέρομαι φυσικά στο filestream. Προσωπικά το έχω χρησιμοποιήσει σε μεγάλο βαθμό σε μια εφαρμογή στην οποία αποθηκεύονται έγγραφα, φωτογραφίες υψηλής ανάλυσης. Θα ήθελα να προσθέσω μερικά ακόμα tips τα οποία προέρχονται 100% από την χρήση του σε μία βάση που το μέγεθος της είναι πολύυυυυυυυυυ μεγάλο.
11 Jun 2013
Adding new field in a table with default value is an online operation in SQL Server 2012 (another not popular feature)
Αν και πριν λίγες μέρες σας έγραφα για κάποια από τα νέα χαρακτηριστικά που έρχονται στον SQL Server 2014, δεν θα πρέπει να ξεχνάμε ότι έχουμε αυτή την στιγμή διαθέσιμα και τα οποία μας λύνουν ήδη τα χέρια στο SQL Server 2012.
Ένα από αυτά που είναι διαθέσιμο στην Enterprise Edition του SQL Server 2012 (μόνο) και δεν έχει σχεδόν καθόλου πάρει την δημοσιότητα που του αρμόζει αν και λύνει αρκετά θέματα τόσο διαχείρισης όσο και απόδοσης είναι ότι όταν βάζουμε ένα νέο field σε ένα πίνακα στο οποίο θέλουμε να έχει default value αυτό είναι ένα απλό metadata operation.
16 Mar 2013
1979, Γεννηθήτω RDBMS
Σκαλίζοντας πράγματα παλιά πάντα βρήσκεις κάτι που σου γεννάει συναισθήματα. Δεν έχει σημασία αν είναι ωραία ή άσχημα είναι κάτι που χρειαζόμαστε σαν άνθρωποι. Απλές αναμνήσεις...
11 Mar 2013
Parameter Sniffing – What is and How to deal with it
Ένα από τα θέματα που σε κάποιες περιπτώσεις μας έχει ταλαιπωρήσει ιδιαίτερα αν δεν το γνωρίζουμε είναι το parameter sniffing.Επειδή όμως δεν ήθελα απλά να το περιγράψω σε ένα ίσως μακροσκελές κείμενο αποφάσισα να το κάνω ένα web cast.
08 Feb 2013
Database Lifecycle Management (DLM)
Για όλους εμάς που είμαστε data geeks και οι databases είναι τρόπος έκφρασης και ζωής αλλά και κάτι που όλοι χρησιμοποιούν είτε τους αρέσει είτε όχι έχουμε βασανιστεί πάμπολες φορές για το πώς να μεταφέρουμε αλλαγές από το development στο production αλλά και γενικότερα να έχουμε ένα db lifecycle management.
27 Jan 2013
TPC-VMS New Benchmark from TPC.ORG
TPC-VMS is the first specification in the industry that enables comparison of performance workloads running enterprise database applications across several virtual machines, TPC-VMS references current TPC specifications and, as a result, offers the industry a rapid means of running and reporting performance metrics for virtualized environments
03 Aug 2012
Your database in numbers
Πρωινή συζήτηση με συνάδελφο η οποία έφτασε να αξιολογούμε βάσεις και να μετράμε αντικείμενα σε αυτές. Κάποια στιγμή γράφω το παρακάτω query για να δω ανά object type τι πλήθος αντικειμένων έχω σε αυτό και ο συνάδελφος εντυπωσιάστηκε. Αν ποτέ το χρειαστείτε είναι το παρακάτω...
16 Jul 2012
Converting SQL Server Applications from OLE DB to ODBC
Όπως εδώ και καιρό έχει γίνει γνωστό από την ανακοίνωση της Microsoft ο SQL Server 2012 θα είναι η τελευταία έκδοση που θα υποστηρίζει τον SQL Server Native Client OLE DB provider καθώς αυτός θα πρόκειται να σταματήσει να αναπτύσσεται. Ο αντικαταστάτης του θα είναι ένας παλιός γνώριμος το ODBC...
29 May 2012
Another Example Why you must avoid Implicit Conversions in T-SQL
Αν και δεν είμαι αρκετά σίγουρος ότι όλοι έχουν καταλάβει ότι θα πρέπει να αποφεύγουν όπως ο διάολος το λιβάνι τα implicit conversions εντούτοις αυτό είναι κάτι γνωστό και πηγή δεινών αν αυτό γίνεται στην T-SQL. Υπάρχουν αρκετά άρθρα που το αναφέρουν αυτό και με αυτό το post θα συμπληρώσω και εγώ ακόμα ένα παράδειγμα με σκοπό μήπως και κάποιοι συνετιστούν και σταματήσουν να το κάνουν.
06 Mar 2012
MVP Summit 2012 Summary
Έχοντας πλέον επιστρέψει από ένα εξαιρετικό MVP Summit αυτό του 2012 θα ήθελα να μοιραστώ μαζί σας την εμπειρία μου αυτή. Ξεκινώντας την Καθαρά Δευτέρα για το ταξίδι αυτό και έχοντας τις εμπειρίες μου από το προηγούμενο summit που είχα παρακολουθήσει το 2010 γνώριζα καλά τι με περιμένει. Αλλά αυτό το summit ήταν πραγματικό εξαιρετικό ιδιαίτερα για τους MVPs του SQL Server. Ήταν πολύ παραπάνω από τις προσδοκίες μου...