28 Mar 2012
Designing and Implementing Time Dimensions
Είναι σπάνιο το φαινόμενο σε μια λύση BI και σε ένα DW να μην ζητείται ανάλυση και reporting των δεδομένων με βάση κάποια χρονική περίοδο. Το σύνηθες είναι να έχω τουλάχιστον μία διάσταση χρόνου. Για το λόγο αυτό σε αυτό το post θα δούμε πως μπορούμε να σχεδιάσουμε και υλοποιήσουμε σε μια BI λύση μια τέτοια διάσταση. Για αρχή θα ξεκινήσουμε να δούμε την λογική με την οποία θα σχεδιάσουμε ένα time dimension. Σχεδιάζοντας ένα Time Dimension...
19 Feb 2011
Dynamic SQL ή μήπως μπορώ και αλλιώς;
Σαν developers αρκετές φορές ερχόμαστε αντιμέτωποι με προβλήματα που πρέπει να λύσουμε μέσα σε σύντομο χρονικό διάστημα. Τις περισσότερες φορές η λύση που επιλέγουμε για να το λύσουμε είναι αυτή που ξέρουμε καλύτερα, την έχουν χρησιμοποιήσει αρκετές φορές, την εμπιστευόμαστε περισσότερο ή αυτή ξέρουμε μόνο. Κάποιες φορές αυτή είναι ιδανική, καλή, μέτρια ή άστα να πάνε… Ας έρθουμε όμως στο προκείμενο…
09 Oct 2021
Keep DBCC CHECKDB output and history
Η εκτέλεση της γνωστής DBCC CHECKDB είναι αυτό που πρέπει να γίνεται καθώς είναι αυτή που ελέγχει την database. Το αποτέλεσμα της είναι κάτι που πρέπει να μελετούμε σχολαστικά μετά από κάθε εκτέλεση της και σε αρκετές περιπτώσεις ίσως θα πρέπει να το συγκρίνουμε με παλαιότερες εκτελέσεις.
16 Jun 2014
Unique Indexes Vs Filter Indexes
Σε ένα προϊόν σαν τον SQL Server που είναι περίπλοκο και περιέχει αρκετή περιπτωσιολογία είναι φυσικό όσοι ασχολούνται περιστασιακά ή επιφανειακά μαζί του να μπερδεύουν κάποια πράγματα και να βγάζουν λάθος συμπεράσματα. Σε αυτή την περίπτωση καλό θα είναι να μπαίνουν όλα σε μια σειρά.
12 Oct 2011
The value of sys.dm_io_virtual_file_stats DMV
Όπως αρκετές φορές έχω αναφέρει, τρεις είναι οι παράγοντες που επηρεάζουν την λειτουργία ενός SQL Server και αυτοί είναι: Memory, CPU, I/O. Αρκετοί συνάδελφοι δηλώνουν λάτρεις των Dynamic Management Views (DMV) μεταξύ αυτών είμαι και εγώ , όμως το μυστικό σε αυτές είναι να τις χρησιμοποιείς έτσι ώστε να παίρνει από αυτές συνδυαστικά τις περισσότερες φορές τη μέγιστη δυνατή πληροφορία που αυτές μπορούν να σου σώσουν. Σε αυτό το post θα σας δείξω πως χρησιμοποιώντας μια εξ αυτών...
06 Oct 2016
Row Overflow Pages
Μου αρέσουν οι μαθητές μου να έχουν περιέργεια και ζητάνε περισσότερα για το τι συμβαίνει πίσω από την σκηνή. Αυτό είναι που με κρατάει ζωντανό στο να κάνω αυτό που κάνω. Κάποια στιγμή κατά την διάρκεια του μαθήματος η κουβέντα μας είχε φτάσει στα internals της δομή μιας database και όπως έπρεπε να γίνει έγινε αναφορά και στα row overflow pages. Αυτή τη πληροφορία θέλω να μοιραστώ στο άρθρο αυτό.
23 Feb 2011
When dynamic SQL might be the BEST way!
Πριν μερικές μέρες είχα δημοσιεύσει ένα άρθρο “Dynamic SQL ή μήπως μπορώ και αλλιώς;”. Σήμερα διάβασα το παρακάτω άρθρο της Kimberly Trip το οποίο καλύπτει μια άλλη πτυχή την οποία δεν είχα καλύψει στο δικό μου.
17 Feb 2015
Getting Started : Writing T-SQL (Part 1)
Αυτή η σειρά από posts, έχει σκοπό να βοηθήσει κάποιον να κάνει τα πρώτα του βήματα στην χρήση του Microsoft SQL Server και να κάνει μια γνωριμία με την Τransact-SQL.
26 Aug 2009
Πώς εκτελείται λογικά ένα sql query;
Τόσα χρόνια στον χώρο της πληροφορικής έχω μάθει να προσπαθώ να καταλάβω τι γίνεται πίσω από την σκηνή με αυτό που ασχολούμαι. Ο SQL Server είναι ένα από αυτά, και στο οποίο έχω αφιερώσει αρκετές τρίχες της κεφαλής μου. Σήμερα θα σας πάρω λίγο από τον πολύτιμο χρόνο σας για να σας μεταφέρω μια γνώση που θα σας φανεί αρκετά χρήσιμη.
07 Jun 2017
The DB STARTUP command
Πρόσφατα, σε ένα παραγωγικό περιβάλλον εμφανίστηκε ένα πρόβλημα με μεγάλης διάρκειας PAGEIOLATCH_EX latches, σε έναν μεγάλου μεγέθους πίνακα, τα οποία τελικά προκαλούσαν αδυναμία εκτέλεσης CRUD operations πάνω σε αυτόν.
07 Sep 2009
SQL Server Query for Index Recommendation
Το παρακάτω query είναι πάρα πολύ καλό!!!. Το ξαναβρήκα τυχαία μπροστά μου καθώς σκάλιζα τα διάφορα scripts που έχω στην βιβλιοθήκη μου. Αν θυμάμαι καλά, γιατί έχει περάσει καιρός, το έχει φτιάξει ένα παλικάρι από την μαμά εταιρία, νομίζω ότι είναι ο Swapnil Bajaj.
09 Jun 2020
Calendar Dimension table for BI projects
Σε αυτό το άρθρο παρέχεται ένα script με το οποίο μπορείτε να δημιουργήσετε ένα calendar dimension table για χρήση σε BI και Power BI projects. Στο τελικό αποτέλεσμα έχουμε ένα table που περιέχει Calendar, Fiscal και ΙSO years με τις επιμέρους αναλύσεις τους, αλλά και τις επίσημες αργίες για την Ελλάδα τις ΗΠΑ και τις υπηρεσίες της ΕΕ.
03 Apr 2011
Ctrl+0 is the key combination to insert NULL value in SSMS
Πριν από λίγο ήμουν με ένα φίλο και συνάδελφο και κάναμε διάφορα πραγματάκια σε μία βάση. Κάποια στιγμή θέλαμε να αλλάξουμε την τιμή από ένα πεδίο σε ένα record σε null και βαριόμουν να κάτσω να γράψω ένα update statement. Έτσι άνοιξα τον SSMS και με την γνωστή διαδικασία δεξι κλικ Edit πάνω στο πίνακα που θέλω...
14 Oct 2014
Using T-SQL commands to read SQL log files
Ένας DBA στην καθημερινότητα του χρειάζεται να διαβάζει αρκετές φορές τα logs που ο SQL Server παράγει είτε για το ίδιο το SQL Server service είτε για το SQL Server Agent service.
Φυσικά και υπάρχει γραφικό περιβάλλον που μπορεί εύκολα κανείς να κάνει αυτό. Υπάρχει όμως και μη γραφικός τρόπος που διευκολύνει περισσότερο, κατά την γνώμη μου, στην ανάγνωση των logs ιδιαίτερα όταν αυτά έχουν μεγάλο όγκο από καταχωρήσεις.
22 Mar 2016
Date Correlation in SQL Server
Είναι πολλές οι φορές που στο business logic μίας εφαρμογής, υπάρχουν ημερομηνίες οι οποίες συνδέονται λογικά μεταξύ τους. Ο SQL Server έχει την δυνατότητα να υπολογίζει το correlation μεταξύ τέτοιων ημερομηνιών και θα δούμε σε αυτό το post με ποιον τρόπο μπορούμε να το χρησιμοποιήσουμε στα δεδομένα μας.
06 Mar 2011
T-SQL Challenge #1:Different Level Ordering in Hierarchy
Πριν από μερικές μέρες μια συνάδελφος ήρθε με το εξής πρόβλημα, ήθελε να δείξει κάποια δεδομένα σε ένα treeview control σε ένα web page. Στην ουσία ήταν μια ιεραρχία που από την δομή του πίνακα έβγαινε αρκετά εύκολα με ένα order by clause. Όμως δεν ήταν τόσο απλά τα πράγματα, ήθελε να υπάρχει ταξινόμηση ανά επίπεδο ιεραρχίας το οποίο ορίζονταν από ένα άλλο πεδίο. Για να εξηγήσουμε καλύτερα την πρόκληση αυτή ας έρθουμε να δούμε το πώς ήταν τα δεδομένα της...
07 Oct 2017
SOME T-SQL IMPLICIT CASTING TRAPS
Είναι γνωστό ότι τα implicit casts κρύβουν κινδύνους και ειδικά μέσα στα queries μας τα αποφεύγουμε. Παρόλα αυτά είναι καλό να ξέρουμε πως συμπεριφέρονται στον SQL Server και τι να περιμένουμε στο αποτέλεσμα.
17 Sep 2012
How to create system object in SQL Server
Αρκετές φορές σαν DBA θέλουμε να έχουμε κάποια objects (tables, stored procedures) σε ένα σημείο από όπου να μπορούμε να τα καλούμε από οποιαδήποτε βάση μας χωρίς να χρειάζεται να αναφερόμαστε σε αυτούς με qualified name (πχ db_name.schema_name.obj_name). Να είναι τρόπο τινά system object.
11 Nov 2020
Script generator for Database mail settings
Το database mail στο SQL Server είναι ένα από τα features του SQL Server αλλά λείπει η δυνατότητα να μπορεί κάποιος να κάνει scripting τα υπάρχοντα profiles και accounts είτε γιατί θέλει να τα δει αλλά κυρίως γιατί θέλει να τα αντιγράψει σε κάποιον άλλον server.Στο άρθρο αυτό θα βρείτε ένα script generator που κάνει αυτό ακριβώς.
02 May 2017
Investigating Deadlock issues
Έχουμε γράψει στο παρελθόν μερικά άρθρα σχετικά με το deadlocking τόσο εγώ όσο και η Φήβη με το Σωτήρη. Σε αυτά δείχνουμε διάφορους τρόπους για το πως να συλλεχθεί η πληροφορία που χρειάζεται ώστε να καταλάβουμε το πρόβλημα.Τι γίνεται όμως όταν έχεις ένα σύστημα που δουλεύει και ξαφνικά βγάζει deadlocks;
12 Jun 2020
The NULLIF expression
Σε αυτό το άρθρο ασχολούμαστε με το NULLIF expression, το οποίο αν χρησιμοποιηθεί κατάλληλα, μπορεί να δώσει πολλαπλά κέρδη τόσο στην απλότητα του query όσο και στην απόδοση του. Υποστηρίζεται σε SQL Server, Azure SQL Database, Azure Synapse Analytics (SQL DW) και Parallel Data Warehouse.
14 Aug 2011
How to execute an SSIS Package form a .NET Application.
Συχνά έχω την ερώτηση από μαθητές μου αλλά και από συνεργάτες που ήταν συνηθισμένοι με τα SQL Server 2000 DTS όπου υπήρχε η δυνατότητα να κάνουν export αυτά σε VB code module και να τα καλούν μέσα από τις εφαρμογές τους, πως μπορούν να κάνουν το ίδιο ή σχεδόν το ίδιο με τα SSIS packages.
07 May 2020
Missing Values – Get the last non-null value
Στο άρθρο αυτό παρουσιάζονται διαφορετικοί τρόποι με τους οποίους μπορούμε να πάρουμε το τελευταίο non null value μέσα σε ένα group εγγραφών με δεδομένη τη διάταξη τους.
18 Apr 2019
Get query results in HTML Table
Πόσες φορές θέλεις να πάρεις τα αποτελέσματα ενός query σε html table γιατί απλά θέλεις να τα βάλεις σε μια σελίδα ή στο blog σου;
12 Jun 2012
DBCC OPTIMIZER_WHATIF
Για άλλη μια φορά σήμερα ευλογώ τον Θεό που μου έχει δώσει την δυνατότητα να κάνω αυτή την δουλειά καθώς μου δίνει την δυνατότητα σε τακτά χρονικά διαστήματα να μαθαίνω κάτι νέο. Αυτό που έμαθα σήμερα κατά την καθημερινή μου ενασχόληση με τον SQL Server θα ήθελα να το μοιραστώ μαζί σας, και είμαι αρκετά χαρούμενος για αυτό, καθώς το αγαπημένο μου προϊόν ο SQL Server μου χαρίζει αυτές τις συγκινήσεις.
01 Feb 2012
How to use specific values in parameters of fn_dblog function
Μια από τις αγαπημένες functions που την χρησιμοποιώ αρκετά συχνά ιδιαίτερα σε περιπτώσεις που υπάρχει κάποιο πρόβλημα με συγκεκριμένη βάση είναι η fn_dblog. Παρόλο που είναι μια undocumented function εντούτοις είναι ευρέως γνωστή και φυσικά χρησιμοποιούμενη σε όσους σοβαρά ασχολούνται με τον SQL Server.
06 Oct 2018
How database files are growing?
Σε αυτό το επεισόδιο SQL Server in Greek θα θούμε πως μπορούμε να κατανοήσουμε το τρόπο με τον οποίο μεγαλώνουν τα αρχεία τις κάθε database.
23 Jul 2012
Change Schema on an object in SQL Server database
Μια πρωινή ερώτηση που ένας συνάδελφος μου έθεσε ήταν η αφορμή για αυτό το tip of the day. Η ερώτηση του ήταν: Πως μπορώ να αλλάξω το schema σε ένα object μέσα σε μια database; Η απάντηση...
13 Sep 2015
Getting Started: Writing T-SQL (Part 5)
Σε αυτό το post θα δούμε τον operator join. Με αυτόν θα μπορέσουμε να συνδυάσουμε πληροφορίες από περισσότερους του ενός πίνακες στο result set μας.
17 Jul 2013
How a SELECT COUNT(*) query executed
Χθες κατά την διάρκεια του μαθήματος που έκανα ένα αγαπητός συνάδελφος στην συζήτηση που είχαμε ανέφερε ότι όποτε κάνεις ένα query που κάνει COUNT(*) στα δεδομένα μας κάνει πάντα table scan.
23 Jul 2011
Ενδιαφέρουσες αλλαγές στα μηνύματα λάθους
Με αφορμή την ενασχόληση μου με την επιμέλεια των ελληνικών μηνυμάτων λαθών στον SQL Server DENALI, διαπίστωσα ότι έχουν γίνει αρκετά ενδιαφέρουσες αλλαγές σε αυτά.
28 Jul 2010
Πως μπορώ να μετρήσω το μέγεθος των δεδομένων που έχω μέσα σε ένα blob field?
Σημέρα ένας αγαπητός συνάδελφος έρχεται στο γραφείο μου και μου κάνει την εξής ερώτηση: «Υπάρχει κανένας τρόπος με τον οποίο μπορώ να δω το μέγεθος των πραγματικών δεδομένων που έχουν αποθηκευτεί στην βάση μου σε ένα πεδίο τύπου image;» Σίγουρα η πρώτη σκέψη όλων μας θα πάει στην LEN(), αλλά αυτή όμως δεν παίζει με πεδία τύπου image, text, ntext.
11 May 2010
Why Max Record Length is 8060 bytes
Σήμερα ένας αγαπητός φίλος και συνάδελφος μου έκανε μια ερώτηση. Η στιγμή που μου την έκανε ήταν δύσκολη και δεν είχα την άνεση να του την απαντήσω. Του υποσχέθηκα όμως ότι θα το κάνω. Έτσι αυτό το Post είναι αφιερωμένο εξαιρετικά στο φίλο και συνάδελφο του οποίου η ερώτηση ήταν "Αντώνη διαβάζω μέσα από το blog σου ότι το μέγιστο record length που μπορώ να έχω μέσα σε μια σελίδα και κατά συνέπεια μέσα σε κάθε πίνακα είναι 8060 bytes. Όμως αυτό δεν μου βγαίνει με τα μαθηματικά.
26 Jul 2015
Running SQL Server Agent job on AlwaysOn Availability Groups
Όσοι έχουν στο περιβάλλον τους έστω και ένα AlwaysOn Availability Group σίγουρα θα έχουν αναρωτηθεί πως να εκτελούν τις διάφορες εργασίες που θέλουν πάνω σε μια database που είναι σε Availability Group.
Υπάρχουν αρκετοί τρόποι, από τον απλούστερο μέχρι τον ποιό advanced και φυσικά αυτό που προτείνω για αυτό το θέμα.
21 May 2012
Using Window Functions in SQL Server 2012
Πάρα πολλά νέα χαρακτηριστικά έχουν μπει στον SQL Server 2012. Όπως έχω πει και σε προηγούμενα post αλλά και στην πρόσφατη παρουσίαση μου στο 39o Autoexec event κάποια είναι δημοφιλή και ακούγονται συχνά όπως τα AlwaysOn Availability Groups, Auditing Enhancements, Security Enhancements κλπ. Δικαίως και είναι δημοφιλή. Υπάρχουν όμως τόσα άλλα που δεν ακούγονται, κακώς κατά την γνώμη μου. Σε μερικά μάλιστα δεν έχει δοθεί η δέουσα προσοχή. Ομολογώ ότι και εγώ σε κάποια δεν είχα δώσει και τόσο μεγάλη...
15 Aug 2013
How to localize Reports in SQL Server Reporting Services
Επειδή στην σημερινή εποχή τα reports μας μπορούν να τα βλέπουν χρήστες που δεν έχουν απαραίτητα το ίδιο culture με εμάς, είναι σκόπιμο να τους δίνουμε αυτό την εμπειρία καθώς έτσι θα κάνουν καλύτερα την δουλειά τους και εμείς θα έχουμε ένα χρήστη λιγότερο πάνω από το κεφάλι μας.