Τις τελευταίες ημέρες για ένα περίεργο λόγο συνάντησα αρκετές φορές την ανάγκη να πρέπει να εκτιμηθεί η δυνατότητα να γίνει compress μια database. Για το λόγο αυτό αποφάσισα να φτιάξω μια stored procedure που να κάνει όλα όσα ήθελα να γίνονται με την εκτέλεση της. Μετά από μερικές μέρες δουλειάς και αρκετές αλλαγές πάνω σε αυτή το τελικό αποτέλεσμα μπορείτε να το βρείτε εδώ. Όμως πριν αρχίσετε να την χρησιμοποιείται νομίζω ότι είναι σκόπιμο να διαβάσετε το documentation αυτής και τις δυνατότη
Αν ψάχνετε να εκπαιδευτείτε στον SQL Server 2012 τότε μην περιμένετε άλλο πλέον έχουν ήδη βγει τα σεμινάρια για αυτόν και είμαι όλος χαρά να τα διδάξω και να σας πω τι έχω δει στο SQL Server 2012 τα τελευταία 2 χρόνια που από beta ασχολούμαι μαζί του Ποια είναι όμως αυτά τα σεμινάρια και ποίες εξετάσεις αντιστοιχούν σε αυτά:
περισσότερα
Εισαγωγή
Αν και δεν είμαι αρκετά σίγουρος ότι όλοι έχουν καταλάβει ότι θα πρέπει να αποφεύγουν όπως ο διάολος το λιβάνι τα implicit conversions εντούτοις αυτό είναι κάτι γνωστό και πηγή δεινών αν αυτό γίνεται στην T-SQL. Υπάρχουν αρκετά άρθρα που το αναφέρουν αυτό και με αυτό το post θα συμπληρώσω και εγώ ακόμα ένα παράδειγμα με σκοπό μήπως και κάποιοι συνετιστούν και σταματήσουν να το κάνουν.
Αυτό το post αποφάσισα να το γράψω μετά από ένα πραγματικό γεγονός που έγινε σε πραγματικό περιβάλλον
Η Ερώτηση
Αυτές τις ημέρες κατά την διάρκεια ενός σεμιναρίου που κάνω και αφορά το administration του SQL Server ένα συνάδελφος είχε μια ερώτηση και αυτή ήταν
«Πώς μπορώ να δω το χώρο που καταναλώνουν από την buffer cache οι βάσεις που έχω σε ένα SQL Server instance;»
Μια εύκολη στην απάντηση ερώτηση αλλά πάντα μου αρέσει να ζητώ από αυτόν που ρωτάει το λόγο για τον οποίο θέλει αυτό που ζητάει καθώς θέλω να αποκλείσω την πιθανότητα να ζητάει άλλα και να θέλει άλλα. Σε αυτή την περίπτωση ο σ
Εισαγωγή Πάρα πολλά νέα χαρακτηριστικά έχουν μπει στον SQL Server 2012. Όπως έχω πει και σε προηγούμενα post αλλά και στην πρόσφατη παρουσίαση μου στο 39o Autoexec event κάποια είναι δημοφιλή και ακούγονται συχνά όπως τα AlwaysOn Availability Groups, Auditing Enhancements, Security Enhancements κλπ. Δικαίως και είναι δημοφιλή. Υπάρχουν όμως τόσα άλλα που δεν ακούγονται, κακώς κατά την γνώμη μου. Σε μερικά μάλιστα δεν έχει δοθεί η δέουσα προσοχή. Ομολογώ ότι και εγώ σε κάποια δεν είχα δώσει
Εισαγωγή Ξεκινώντας να γράψω το post αυτό ο προσανατολισμός μου ήταν καθαρά τεχνικός στην πορεία όμως άρχισε να μου αρέσει η ιδέα να πάρει την μορφή αυτή. Μου βγήκε αυθόρμητα γιατί πέρα από το τεχνικό του μέρος προσπαθώ να σκιαγραφήσω το άνθρωπο που έρχεται να γράψει ένα query για να καλύψει τις ανάγκες που αντιμετωπίζει στην καθημερινότητα του. Πριν λίγες μέρες μου ήρθε ένα ερώτημα από ένα συνάδελφο που ζήταγε να αντλήσει μια πληροφορία από ένα πίνακα με πολλές χιλιάδες έγγραφές. Βασικά αυ
Εισαγωγή Το τελευταίο διάστημα στα μαθήματα και τις παρουσιάσεις που έχω κάνει όλο και περισσότεροι έρχονται και με ρωτούν τι πρέπει να κάνουν για το deadlock καθώς όπως μου λένε έχουν όλο και περισσότερες εμφανίσεις του φαινομένου αυτού. Πάντα απαντώ σε όλους αυτά που θα ακολουθήσουν σε αυτό το post αλλά μέχρι τώρα δεν τα είχα γράψει και νομίζω ότι πλέον είναι καιρός να γίνει αυτό. περισσότερα
Είναι γνωστό ότι οι λεπτομέρειες κάνουν τον πρωταθλητή και σε αυτό δεν νομίζω ότι έχει κάνεις αντίρρηση. Ένα tip το οποίο μπορώ να δώσω σήμερα για τον SQL Server μπορεί να είναι μια μικρή λεπτομέρεια που όμως μπορεί να εξακοντίσει το performance του SQL Server στα ουράνια. Ένα από τα advanced options του SQL Server είναι το Network Packet Size το οποίο by default είναι στα 4096 bytes. Εάν έχω ένα instance που έχει μεγάλο όγκο από bulk operations ή μεταφέρει μεγάλο όγκο δεδομένων, και αν υπ
Μιας και με το χθεσινό μου post είδαμε κάποια νέα καλούδια του SQL Server 2012, λέω και σήμερα να συνεχίσω σε αυτή την κατηγορία με αυτό το post. Εισαγωγή Από την έκδοση του SQL Server 2005 έχουμε την δυνατότητα να μπορούμε να κάνουμε restore συγκεκριμένες σελίδες σε μια database όταν αυτή έχει χαρακτηριστεί σαν suspect ή έχουμε λάθη όπως 823, 824. Μέχρι τώρα κάτι τέτοιο ήταν εφικτό να γίνει κάνοντας page(s) restore με την RESTORE (T-SQL command). Προσωπικά προτιμώ τα commands από το UI κ
Αν και μπορούμε να δούμε πολλά πράγματα μέσα από το SQL Server Management Studio, εντούτοις αρκετές φορές χρειάζεται να δούμε αρκετά παράθυρα για να σχηματίσουμε την εικόνα που θέλουμε. Φυσικά για όσους είναι ανυπόμονοι και δεν έχουν θέμα να γράφουν ένα απλό SELECT υπάρχουν λύσεις που λύνουν τα χέρια. Από την έκδοση του SQL Server 2005 που έχουν κάνει την εμφάνιση τους όλο και περισσότεροι εγκαταλείπουν τον γραφικό περιβάλλον και ασχολούνται μαζί τους καθώς η πληροφορίες που δίνουν είναι το κ
Στο τελευταίο μου post ασχολήθηκα με το πώς μπορώ να κάνω optimize ένα Data Flow task.
Μέσα στο άρθρο αυτό αναφέρθηκα ότι μπορώ και πρέπει για να κάνω optimize είτε το συγκεκριμένο task είτε ολόκληρο το package με την χρήση των εργαλείων που έχω στα χέρια μου όπως event logging, performance counters κλπ.
Με τα εργαλεία αυτά μπορώ να κάνω ότι θέλω, όμως η φύση του ανθρώπου δεν ικανοποιείτε εύκολα και αναζητεί περισσότερα. Αυτό το κενό αρκετές φορές έρχεται να το καλύψουν εφαρμογές τρίτων
Σήμερα λέω να συνεχίσουμε την σειρά των BI post με ένα πρακτικό θέμα. Το θέμα αυτό αφορά την βασική εργασία που ένα SSIS package περιέχει στο 99,9999% των υλοποιήσεων του και δεν είναι άλλη από το Data Flow Task. Εισαγωγή Για όσους έρχονται για πρώτη φορά σε επαφή με το σπορ αυτό, απλά να πω ότι το συγκεκριμένο task μας δίνει την δυνατότητα να υλοποιήσουμε μια εργασία που διαβάζει από κάποια πηγή (source data source) και μετατρέπει τα δεδομένα αυτά σε μορφή τέτοια που να είναι συμβατή από τ
Επειδή μερικά πράγματα πρέπει να τα κλείνεις γρήγορα έτσι σήμερα με αυτό το post θα καλύψω μια από τις υποσχέσεις που έδωσα στο τελευταίο μου post και θα μιλήσω σε αυτό για τις βελτιώσεις που έχουμε για auditing στο SQL Server 2012. Αρκετά σημαντικό για όσους είναι υποχρεωμένοι από την φύση της δουλειάς τους να έχουν κάτι τέτοιο αλλά και όχι μόνο για αυτούς καθώς ουκ εστίν ο αριθμός των περιπτώσεων που όλοι μας κάτι θέλουμε να έχουμε σε auditing για καλύψουμε την πλάτη μας αποδεικνύοντας, ότα
Ας κάνουμε μία αποτοξίνωση από τα BI post και ας πάμε να δούμε τι καλά έχουν έρθει στην ασφάλεια του SQL Server 2012. Αν και ο SQL Server εδώ και πολλά χρόνια είναι ασφαλής σε σχέση με τον ανταγωνισμό εντούτοις δεν υπάρχει εφησυχασμός στο product group καθώς το θέμα ασφάλεια είναι μια ατέρμονη πάλη με τους κακούς. Ας πάρουμε με την σειρά τα καλούδια που μας ήρθαν με τον SQL Server 2012 και αφορούν την ασφάλεια. περισσότερα
Έχουμε φτάσει στο σημείο που θα πρέπει να γεμίσουμε με δεδομένα τους πίνακες που έχουμε στο DW. Και σε αυτή την φάση υπάρχουν θέματα στα οποία θα πρέπει να πάρω αποφάσεις για αυτά.
Surrogate Keys
Η πρώτη βασική απόφαση είναι για το πώς θα δημιουργώ τα surrogate keys στους πίνακες που έχω τέτοια όπως πχ στους dimension tables. Υπάρχουν δύο βασικές «σχολές».
Η μία λέει ότι αφήνω την βάση να δίνει τιμή σε αυτό με την χρήση identity columns. H συγκεκριμένη «σχολή» έχει σαν πλεονεκτήματα ότι
δεν
Σε συνέχεια των προηγούμενων μου post που σχετίζονται με την διαδικασία ETL με την οποία μεταφέρονται τα δεδομένα από την πηγή στο DW στα οποία είδαμε τι πρέπει να προσέξουμε στην φάση extract και στην χρήση της staging area, έφτασε η στιγμή να μιλήσουμε για την φάση του data transformation.
Η φάση αυτή είναι ίσως η δυσκολότερη σε σχέση με τις άλλες και μάλιστα απαιτεί και περισσότερο χρόνο ανάπτυξης. Σημαντικό αξίωμα (όπως λέμε στα μαθηματικά) για την υλοποίηση της είναι η κατανόηση με σαφήνει
Σε αρκετές περιπτώσεις κατά την εκτέλεση ενός ETL process με το οποίο μεταφέρουμε τα δεδομένα μια πηγής στο DW και ειδικότερα κατά την στιγμή που κάνουμε extract data from data sources και πριν την επόμενη φάση του data transformation χρειάζεται σε αρκετές περιπτώσεις να αποθηκεύσουμε αυτά τα δεδομένα σε μια staging area είτε προσωρινά είτε μόνιμα.
see more
Microsoft is excited to announce the general availability (GA) of SQL Server 2012 for purchase and download. SQL Server 2012 has already been deployed for production use by hundreds of global, industry-leading customers, such as Volvo Car Corp., Revlon, the HSN, Klout and LG Chemical. SQL Server 2012 delivers a powerful new set of capabilities for mission-critical workloads, business intelligence and hybrid IT across traditional datacenters and public and private clouds. This includes:
SQL
Εισαγωγή Έχοντας σχεδιάσει το DW και αφού έχουμε κάνει data analysis and profiling είμαστε πλέον στο σημείο που πρέπει να δημιουργήσουμε την διαδικασία που θα μεταφέρει τα δεδομένα από την πηγή (data source) στο DW. Μια τέτοια διαδικασία είναι γνωστή σαν ETL Process και περιλαμβάνει τα στάδια του
Extract data from data source Transform data Load data to destination (data warehouse tables)
Μια τέτοια διαδικασία θα πρέπει να σχεδιαστεί έτσι ώστε να έχει την μέγιστη απόδοση (p
Αφού έχουμε στύψει αρκετά το μυαλό μας μέχρι τώρα και έχουμε καταφέρει να σχεδιάσουμε και να υλοποιήσουμε το DW μας και το αίσθημα της ικανοποίησης μας έχει κυριεύσει, θα πρέπει να κάνουμε το επόμενο μεγάλο βήμα πίστης που δεν είναι άλλο από το γεμίσουμε αυτό με δεδομένα. Είμαστε στο σημείο που πρέπει να σχεδιάσουμε και να υλοποιήσουμε μια ή περισσότερες διαδικασίες ETL (Extract-Transform-Load). Όλες αυτές οι διαδικασίες θα πρέπει να αποτελέσουν ένα Data Integration System το οποίο θα πρέπει ν
Αφού έχουμε σχεδιάσει λογικά και σύμφωνα με τις επιχειρησιακές απαιτήσεις το DW μας, φτάνει η στιγμή που πρέπει να το κάνουμε πραγματικότητα υλοποιώντας το φυσικά.
Όπως έχω αναφέρει σε όλα τα προηγούμενα post αυτής της σειράς θα πρέπει φυσικά να υλοποιήσω το DW λαμβάνοντας σοβαρά υπόψη μου τους εξής παράγοντες που δεν είναι άλλοι από τους performance, scalability, manageability.
Με αυτούς σαν πυξίδα θα πρέπει να
Περισσότερα
Είναι σπάνιο το φαινόμενο σε μια λύση BI και σε ένα DW να μην ζητείται ανάλυση και reporting των δεδομένων με βάση κάποια χρονική περίοδο. Το σύνηθες είναι να έχω τουλάχιστον μία διάσταση χρόνου. Για το λόγο αυτό σε αυτό το post θα δούμε πως μπορούμε να σχεδιάσουμε και υλοποιήσουμε σε μια BI λύση μια τέτοια διάσταση. Για αρχή θα ξεκινήσουμε να δούμε την λογική με την οποία θα σχεδιάσουμε ένα time dimension. Περισσότερα
Συνεχίζοντας την σειρά των post που αφορούν την υλοποίηση ενός DW για την κάλυψη των αναγκών μιας BI λύσης θα ασχοληθούμε σε αυτό με τον logical design του DW. Όπως έχω ήδη αναφέρει σε παλαιότερα post ένα DW είναι ο θεμέλιος λίθος καθώς σε αυτό γίνονται τα ερωτήματα που θα δώσουν τις απαντήσεις σε αυτούς που πρέπει να λάβουν αποφάσεις. Έτσι αυτό θα πρέπει σαν Νούμερο Ένα Απαίτηση να είναι έτσι φτιαγμένο ώστε να υποστηρίζει γρήγορο διάβασμα (optimized for data read operations). Ανάμεσα στις δ
Μιας και ξεκίνησα με το τελευταίο μου post να ασχολούμαι με το Data Warehouse (DW) λέω να το συνεχίσω και να κάνω μερικά ακόμα βήματα. Το πρόβλημα Σήμερα για να τρέξεις αποτελεσματικά μια δουλειά είναι μια μεγάλη πρόκληση καθώς αυτή μεγαλώνει ή μειώνεται ανάλογα με τις επιρροές και τις τάσεις που δέχεται από την αγορά ή την παγκόσμια οικονομία. Για να μπορέσεις να επιβιώσεις σε κάθε περίπτωση απαιτείται από εσένα ή τον οργανισμό να υιοθετήσει μια πολιτική η οποία να δέχεται αλλαγές εύκολα,
Εισαγωγή Πριν λίγες μέρες η Microsoft Hellas διοργάνωσε την ημερίδα με τίτλο "Microsoft ΒΙ Roadshow 2012". Δυστυχώς δεν μπόρεσα να την παρακολουθήσω. Όμως είδα τα slide decks των παρουσιάσεων και έχω την εντύπωση ότι ήταν πολύ καλή. Από τις παρουσιάσεις υπήρξε κάτι το οποίο μου άρεσε αρκετά. Αυτό ήταν στην παρουσίαση του Νίκου Μακρή και ειδικά στο σημείο που έκανε την αντιπαράθεση μεταξύ του Inmon και Kimball. Είμαι σίγουρος ότι ο Νίκος θα είπε πολλά και θα έχει καλύψει το θέμα άριστα και λ