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 Nov 2015
List all IDENTITY Columns in your database
Συνεχίζοντας από το τελευταίο μου άρθρο σήμερα θα σας παρουσιάσω ακόμα ένα metadata query με το οποίο θα μπορώ να γνωρίζω τα tables που έχουν IDENTITY column, το data type που έχουν αυτές οι columns όπως επίσης από που ξεκινάνε (seed) πως μεγαλώνει η τιμή του (increment) και ποια είναι η τρέχουσα τιμή του.
14 Jul 2012
Database Data File Special Pages
Διαβάζοντας διάφορα άρθρα διαπίστωσα ότι έχω πολύ καιρό να γράψω κάτι για τα internals του SQL Server και αυτό γιατί σε αρκετά από αυτά είδα ότι για να γίνουν κατανοητά θα πρέπει να έχουν εξηγηθεί κάποια internal objects και ειδικά pages. Με αφορμή αυτό αποφάσισα να γράψω το post αυτό και να αναφερθώ σε όλα αυτά το special pages.
08 Feb 2013
Database Lifecycle Management (DLM)
Για όλους εμάς που είμαστε data geeks και οι databases είναι τρόπος έκφρασης και ζωής αλλά και κάτι που όλοι χρησιμοποιούν είτε τους αρέσει είτε όχι έχουμε βασανιστεί πάμπολες φορές για το πώς να μεταφέρουμε αλλαγές από το development στο production αλλά και γενικότερα να έχουμε ένα db lifecycle management.
06 Jul 2009
Η Resource Database στους SQL Servers 2005 & 2008
Στον SQL Server 2005, και φυσικά υπάρχει και στο SQL Server 2008, πρωτοεμφανίστηκε μια νέα system database η Resource Database. Η database αυτή περιέχει όλα τα read-only critical system tables, metadata, και stored procedures τα οποία ο SQL Server χρειάζεται για τρέξει. Δεν περιέχει πληροφορίες για το SQL Server instance ή για τις databases σας, και αυτό γιατί δημιουργήται κατά την διαδικασία εγκατάστασης του SQL Server ή όταν εγκαταστήσουμε κάποιο service pack.
28 May 2014
PARSENAME T-SQL Function
Σαν DBA αλλά και DB Developer έχεις την ανάγκη να διαβάσεις metadata για να κάνεις την δουλειά σου. Αρκετές είναι οι φορές που τo όνομα του object που παίρνεις είναι full qualified name δηλαδή περιέχει server, database, schema, και φυσικά το όνομα του και ανά περίπτωση θέλεις να πάρεις κάποιο από αυτά. Μην ψάχνεις να δεις πως θα τα κάνεις…
10 Jul 2013
Using Data Alerts to Notify Users of Report Data Conditions
Αρκετοί δεν έχουν συνειδητοποιήσει την πραγματικά μεγάλη χρηστικότητα που έχει ο SharePoint σε μια λύση ΒΙ. Ακόμα δε περισσότερο το πόσο τα SQL Server Reporting Services αποκτούν περισσότερα χαρακτηριστικά όταν είναι integrated με τον SharePoint. Για το λόγο αυτό θα σας μιλήσω για ένα από αυτά τα χαρακτηριστικά. Αυτό είναι η δυνατότητα που έχει κάποιος χρήστης να μπορεί να βάζει data alert σε ένα υπάρχον report με σκοπό όταν τα δεδομένα σε αυτό το report αλλάξουν αυτός να ενημερώνεται. Μάλιστα μπορεί να ορίσει τις συνθήκες εκείνες που όταν θα εκπληρωθούν αυτός θα ενημερώνεται.
16 Aug 2012
Execute Query keyboards shortcuts for SSMS
Άλλοι περισσότερο άλλοι λιγότερο χρησιμοποιούμε το SQL Server Management Studio στην καθημερινότητα μας. Μέσα σε αυτή εκτελούμε και αρκετά queries είτε σε πίνακες της βάσης μας είτε σε metadata tables. Το κάνουμε σχεδόν μηχανικά καθημερινά έτσι δεν είναι; Όπως επίσης είναι γνωστό ότι μπορούμε να δούμε τα αποτελέσματα αυτών σε διαφορετικές μορφές όπως grid, text, file...
15 Nov 2015
List All Primary Keys and Foreign Keys in your database
Δεν είναι λίγες οι φορές που θέλεις να μάθεις πράγματα για το database schema σε μια database που είτε είχες φτιάξει στο παρελθόν είτε είναι μια database που στην έχουν φέρει να την διαχειριστείς και από documentation πάσχει.Για όλους τους παραπάνω λόγους θα πρέπει να ψάξεις, αλλά πρέπει να ψάξεις χωρίς να κουραστείς και το να ψάχνεις με το γραφικό περιβάλλον του SSMS είναι κουραστικό οπότε πρέπει να καταφύγεις σε metadata queries.
18 Nov 2015
List all CHECK constraints in your database
Συνεχίζουμε με τα χρήσιμα metadata queries και σε αυτό θα δούμε ακόμα ένα με το οποίο μπορούμε να πάρουμε μια συγκεντρωτική εικόνα όλων των check constraints που έχω στην database μου.
02 Apr 2012
Considerations of data extraction from a data source during ETL process
Έχοντας σχεδιάσει το DW και αφού έχουμε κάνει data analysis and profiling είμαστε πλέον στο σημείο που πρέπει να δημιουργήσουμε την διαδικασία που θα μεταφέρει τα δεδομένα από την πηγή (data source) στο DW. Μια τέτοια διαδικασία είναι γνωστή σαν ETL Process και περιλαμβάνει τα στάδια του Extract data from data source Transform data Load data to destination (data warehouse tables)...
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 δεν είναι κάτι δύσκολο.
20 Jan 2018
What is Log Block and Log Record
Σε προηγούμενο άρθρο μου στο οποίο έγραφα για το τι είναι το Log Sequence Number (LSN) αναφέρθηκα σε δύο στοιχεία του transaction log. Τα στοιχεία αυτά ήταν το Log Block και το Log Record.
20 Mar 2015
How to deal with migration or instance upgrade nightmares
Κάθε φορά που στο μυαλό σου έρχεται η σκέψη να κάνεις upgrade ένα υπάρχον SQL Server instance ή κάποιες databases σε επόμενη έκδοση τα αισθήματα σου είναι ανάμικτα. Από την μια λες πρέπει να γίνει καθώς θα πάω σε κάτι νέο με περισσότερα χαρακτηριστικά και δυνατότητες και έτσι θα είμαι σε θέση να παρέχω καλύτερες υπηρεσίες στους χρήστες μου. Από την άλλη αναρωτιέσαι αν αυτό θα σου δημιουργήσει προβλήματα καθώς μπορεί κάποια πράγματα μπορεί να μην δουλέψουν γιατί μπορεί να μην υπάρχει συμβατότητα καθώς κάτι μπορεί να μην υποστηρίζεται στην νέα έκδοση. Κάπως έτσι ξεκινάει ο εφιάλτης. Αλλά για μια στιγμή μήπως τελικά ο εφιάλτης είναι πόνημα φαντασίας;
15 Feb 2015
Memory Configuration in Analysis Services
Μέσα από το SQLschool.gr έχω αρκετές φορές επισημάνει το πώς πρέπει να ορίζουμε την μνήμη ενός instance. Αυτό που μέχρι τώρα δεν είχα κάνει είναι να αναφερθώ στο πως ορίζουμε την μνήμη ενός Analysis services instance.
13 Jun 2010
Εισαγωγή στον Query Optimizer του SQL Server 2008
Ο Query Optimizer στον SQL Server είναι αυτός που αποφασίζει με ποιο τρόπο (query plan) θα εκτελεστεί το οποιοδήποτε sql statement το οποίο δίνουμε. Επειδή είναι κάτι το οποίο είναι εσωτερικό στη μηχανή του SQL Server, επειδή δεν παρέχει πολλά χαρακτηριστικά, αλλά δεν υπάρχουν και αρκετοί "τρελλοί" που να ασχολούνται με αυτόν , είναι ίσως από τα λίγα κομμάτια του SQL Server που ακούγονται πολύ αλλά δεν εξηγούνται πολύ.
02 Mar 2017
Show Record fields in key/value format
Δεν είναι λίγες οι φορές που θέλεις να δεις τα δεδομένα μιας εγγραφής σε αντί σε μια γραμμή σε πολλές γραμμές (μία για κάθε field) και δύο στήλες (σε μια λογική key/value).
04 Apr 2012
Considerations on Data Transformation Phase during ETL process
Σε συνέχεια των προηγούμενων μου post που σχετίζονται με την διαδικασία ETL με την οποία μεταφέρονται τα δεδομένα από την πηγή στο DW στα οποία είδαμε τι πρέπει να προσέξουμε στην φάση extract και στην χρήση της staging area, έφτασε η στιγμή να μιλήσουμε για την φάση του data transformation. Η φάση αυτή είναι ίσως η δυσκολότερη σε σχέση με τις άλλες και μάλιστα απαιτεί και περισσότερο χρόνο ανάπτυξης.
07 Oct 2009
Μια μικρή βουτία στα άδυτα της αρχιτεκτονικής μιας βάσης
Ίσως όσα θα αναφερθούν παρακάτω να είναι γνωστά, και το post αυτό να μην είναι ενδιαφέρον. Όμως έχω την υποχρέωση να τα αναφέρω ξανά γιατί θεωρώ ότι είναι πράγματα στα οποία δεν δίνουμε ιδιαίτερη σημασία και τα οποία όταν διογκώνονται είναι δύσκολα στην επίλυση τους. Θα μιλήσουμε εδώ γιa την αρχιτεκτονική μιας database στον SQL Server, από τι αποτελείτε μια database, πιο είναι το ιδανικό αρχικό μέγεθος δημιουργίας της, τι πολιτική να ορίσω για το growth της.
18 Feb 2019
Sizing the Analysis Server for Tabular model correctly
Η επιλογή του hardware με σκοπό να εξυπηρετήσει SQL Server Analysis Services Tabular model είναι κάτι που πρέπει να γίνει με προσοχή καθώς οι απαιτήσεις που αυτό έχει είναι παντελώς διαφορετικές από τις ανάγκες που έχει ένα Multidimensional model ή ένα relational engine.
04 Jan 2018
About LSNs in SQL Server
Πολλά πράγματα μέσα στον SQL Server γίνονται με βάση το LSN (Log Sequence Number). Αρκετές πάλι είναι οι ερωτήσεις που δέχομαι για αυτό και κυρίως αφορούν πως αυτό μεταφράζεται. Μέσα από αυτό το άρθρο θα προσπαθήσω να το εξηγήσω όσο καλύτερα και ευκολότερα γίνεται.
05 Jul 2011
DBCC IND
Αν και η συγκεκριμένη εντολή είναι ευρέως γνωστή και σίγουρα θα την έχετε βρει σε διάφορα sites εντούτοις θα γράψω και εγώ για αυτή καθώς θεωρώ ότι είναι μια σημαντική εντολή αν και είναι undocumented.
21 Sep 2016
The sql_variant Data type
Με αφορμή για όμορφη κουβέντα που είχα με τους μαθητές μου στο σεμινάριο που κάνω αυτό το διάστημα αποφάσισα να γράψω αυτό το άρθρο ώστε να φωτίσω όσο το δυνατόν περισσότερο την ύπαρξη αλλά και την χρήση του sql_variant data type.
12 Feb 2017
Working with Hypothetical Indexes on SQL Server
Δεν είναι λίγες οι φορές που κοιτάζοντας ένα query που έχει κάποιο πρόβλημα απόδοσης διαπιστώνεις ότι η δημιουργία ενός index θα μπορούσε να λύσει το πρόβλημα αυτό και θέλεις να το δοκιμάσεις.
10 Aug 2021
Explain Ghost Records in SQL Server
Κάθε φορά που εκτελούνται delete operations τα rows δεν διαγράφονται άμεσα αλλά χαρακτηρίζονται σαν rows προς διαγραφή και η ονομασία που έχει δοθεί σε αυτά είναι ghost(ed) records και σε αυτό το άρθρο θα δούμε τα internals τους.
29 Dec 2018
Cosmos DB a NoSQL Database
Η Cosmos DB είναι ένα high-scalable, reliable και secure infrastructure που μπορεί να χρησιμοποιηθεί για την υλοποίηση των περισσότερων γνωστών και κοινών NoSQL database.
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.
10 Jul 2021
In which pages (data or index) are my table data stored?
Η γνώση των internals στο SQL Server όπως πολλές φορές έχω αναφέρει είναι σημαντική γιατί έτσι μπορείς να σχεδιάσεις καλύτερα το database schema, να γράψεις καλύτερα queries ή διαδικασίες και φυσικά να μπορείς να κάνεις καλύτερο troubleshooting. Σε αυτό το άρθρο θα κατέβουμε για τα καλά το πάτο του βαρελιού καθώς θα κατανοήσουμε το πως ο SQL Server αντιμετωπίζει αυτά που του ζητάμε.