Jump to content

antonch

Administrators
  • Posts

    1030
  • Joined

  • Last visited

  • Days Won

    7

Blog Entries posted by antonch

  1. antonch
    Ένας οργανισμός έχει πολλά SQL Server Instances, πολλές databases και σίγουρα πάνω από έναν DBA, DB developer που έχουν πρόσβαση σε αυτά τα instances και αυτές τις databases.
    Ζητούμενο από όλους είναι να γνωρίζουμε τις αλλαγές που έχουν γίνει σε αυτές τις databases σε επίπεδο schema αλλά και πότε μπήκε ένας χρήστης σε ποιο ρόλο και πολλά ακόμα στοιχεία όπως δημιουργία indexes, αλλαγή στο μέγεθος μιας βάσης κλπ.
    Όλα αυτά ακόμα και μέσα από το SSMS να γίνουν είναι Data Definition Language (DDL) statements και χρήσιμο είναι να μπορούν να καταγραφούν ώστε να υπάρχει ένα ιστορικό για τις αλλαγές αυτές.
    Στο SQL Server υπάρχουν μηχανισμοί Auditing που κάνουν εξαιρετική δουλειά. Βέβαια στο παρελθόν κάτι τέτοιο υπήρχε σαν δυνατότητα μόνο στις Enterprise εκδόσεις.
    Σε αυτό το άρθρο όμως δεν θα μιλήσουμε για αυτούς τους μηχανισμούς αλλά για έναν customize μηχανισμό που μπορεί να χρησιμοποιηθεί σε όλες τις εκδόσεις (Std, Ent) και που μπορεί κάποιος να προσθέσει περισσότερη custom πληροφορία.
     
    http://sqlschool.gr/blog/storing-ddl-statements-history-1070.aspx
  2. antonch
    Πάντα υπάρχει κάτι που μπορεί να σε κάνει να χαμογελάσεις ευχάριστα ακόμα και αν είναι ένα μήνυμα λάθους!.

    Κάνοντας ένα τυπικό έλεγχο σε ένα παλιό Always On Availability Group διαπίστωσα ότι ένα domain group που είχε πρόσβαση στο ένα node δεν είχε πρόσβαση στο άλλο. Φυσικά αυτό θα έπρεπε να διορθωθεί καθώς σε περίπτωση που γίνονταν failover οι χρήστες του συγκεκριμένου domain group δεν θα είχαν πρόσβαση στο άλλο.

    Τι ποιο απλό από το να κάνει κάνεις αυτή την διαδικασία είτε μέσω SSMS είτε με την εκτέλεση ενός GREATΕ LOGIN command και να βάλεις το domain group αυτό στο node που δεν υπάρχει.

    Παρόλα αυτά όμως κατά την διάρκεια της εκτέλεσης της διαδικασίας έλαβα το error message “The server principal ‘…..’ already exists – Msg 15025”, αλλά δεν υπήρχε λόγος ανησυχίας καθώς αμέσως υποψιάστηκα το τι έχει γίνει απλά έπρεπε να το επιβεβαιώσω.

    Πήγα στο node όπου το domain group υπήρχε και εκτέλεσα το παρακάτω command για να πάρω το SID του login (που επειδή είναι domain group είναι το ίδιο με το domain SID). Η SUSER_SID επιστρέφει το SID του Login που στην ουσία με αυτό δουλεύει ο SQL Server για να υλοποιήσει το security που διαθέτει.

    http://sqlschool.gr/blog/the-server-principal-already-exists-%E2%80%93-error-15025-troubleshooting-1059.aspx
  3. antonch
    Η δύναμη της συνήθειας είναι το μεγαλύτερο ναρκωτικό του μυαλού και δεν το αφήνει να σκεφτεί αποδοτικά. Αλήθεια πόσες φορές κάνουμε μηχανικά κάποια πράγματα επειδή τα έχουμε συνηθίσει στα τόσα χρόνια που κάνουμε αυτή την δουλειά ;
     
    http://www.sqlschool.gr/blog/get-all-tables-row-count-without-using-count-function-1058.aspx
  4. antonch
    Τα User Defined Functions (UDF) είναι γνωστά στους περισσότερους. Η χρήση τους είναι μεγάλη αλλά αρκετές φορές χρησιμοποιούνται λάθος κυρίως λόγο της άγνοιας που υπάρχει γύρω από την εκτέλεση ενός UDF και ιδιαίτερα όταν αυτό εμπλέκεται μέσα σε ένα query.
    Οι περισσότεροι συγκρίνοντας το execution plan ενός query χωρίς UDF και με UDF βλέπουν ότι το query cost είναι μικρότερο σε αυτό που χρησιμοποιεί το UDF και αμέσως θεωρούν ότι αυτό είναι και το καλύτερο.
    Για ακόμα μια φορά θα τονίσω ότι δεν υπάρχει έτσι απλά καλό ή καλύτερο όλα είναι εξάρτηση από πολλούς παράγοντες όπως την ποσότητα και ποιότητα των δεδομένων των indexes κλπ
     
    http://www.sqlschool.gr/blog/sql-server-2016-new-features-the-sys-dm_exec_function_stats-dmv-1057.aspx
  5. antonch
    Καθημερινά ένας DBA ή DB developer έχει να αντιμετωπίσει αρκετούς αστάθμητους τις περισσότερες φορές παράγοντες που επηρεάζουν το performance.

    Πιστέψτε με ότι αυτό είναι μια δουλεία που απαιτεί σχολαστικότητα γνώση της αρχιτεκτονικής τόσο του SQL Server όσο και της database. Για να κάνεις αυτή την δουλεία θα πρέπει να έχει μελετήσει αρκετά και να έχεις κάνει αρκετή πρακτική εξάσκηση για την απόκτηση εμπειρίας.

    Ακόμα και ένας τέτοιος άνθρωπος πάντα επιζητά τρόπους να κάνει λιγότερο δύσκολη την δουλεία του και η χαρά του είναι μεγάλη όταν ανακαλύπτει ότι το αγαπημένο του εργαλείο έκδοση με την έκδοση του δίνει περισσότερες δυνατότητες για αυτό το task.

    http://www.sqlschool.gr/blog/sql-server-2016-new-features-the-sys-dm_exec_session_wait_stats-dmv-1056.aspx
  6. antonch
    Όσοι έχουν στο περιβάλλον τους έστω και ένα AlwaysOn Availability Group σίγουρα θα έχουν αναρωτηθεί πως να εκτελούν τις διάφορες εργασίες που θέλουν πάνω σε μια database που είναι σε Availability Group.
     
    Υπάρχουν αρκετοί τρόποι, από τον απλούστερο μέχρι τον ποιό advanced και φυσικά αυτό που προτείνω για αυτό το θέμα.
     
    Αντί να γράψω ένα μακροσκελές άρθρο για το συγκεκριμένο θέμα, επέλεξα να παρουσιάσω το θέμα με ένα web cast και στο post αυτό να σας δώσω το κώδικα που χρησιμοποίησα στο web cast.
     
    http://sqlschool.gr/blog/running-sql-server-agent-job-on-alwayson-availability-groups-1046.aspx

  7. antonch
    Ένα από τα services του SQL Server είναι τα Reporting Services τα οποία παρέχουν ένα εξαιρετικά ευέλικτο τρόπο να μεταδίδεται η πληροφορία στους τελικούς χρήστες. Η χρήση τους από τις εταιρίες και τους οργανισμούς έχει αυξηθεί σε υπερθετικό βαθμό και κανείς θα βρει μεγάλο αριθμό από reports να εκτελούνται καθημερινά στις υποδομές αυτών των εταιρειών.
    Είναι φυσικό κάποια στιγμή να χρειαζόμαστε
    να παρακολουθήσουμε ποια είναι αυτά που χρησιμοποιούνται,
    πόσο συχνά χρησιμοποιούνται,
    πόσο χρόνο χρειάζονται για να εκτελεστούν
    ποιοι είναι οι χρήστες και ποια reports εκτελούν.

    Οι παραπάνω λόγοι είναι μερικοί και κάνουν επιτακτική την ανάγκη να έχεις αρχικά ενεργοποιημένο το auditing στα SSRS και στην συνέχεια να έχεις μια διαδικασία που να κάνει την ζωή σου ευκολότερη.
    Πέρα όμως από αυτούς το τελευταίο διάστημα είχα αρκετές ανάγκες στον εργασιακό μου χώρο για auditing από επιθεώρηση πάνω στoυς SSRS servers που έχω αλλά και πολλές ερωτήσεις από τους μαθητές μου στα πρόσφατα BI σεμινάρια που έκανα.
     
    http://www.sqlschool.gr/blog/auditing-reports-execution-in-ssrs-1038.aspx
  8. antonch
    Κάθε φορά που στο μυαλό σου έρχεται η σκέψη να κάνεις upgrade ένα υπάρχον SQL Server instance ή κάποιες databases σε επόμενη έκδοση τα αισθήματα σου είναι ανάμικτα. Από την μια λες πρέπει να γίνει καθώς θα πάω σε κάτι νέο με περισσότερα χαρακτηριστικά και δυνατότητες και έτσι θα είμαι σε θέση να παρέχω καλύτερες υπηρεσίες στους χρήστες μου. Από την άλλη αναρωτιέσαι αν αυτό θα σου δημιουργήσει προβλήματα καθώς μπορεί κάποια πράγματα μπορεί να μην δουλέψουν γιατί μπορεί να μην υπάρχει συμβατότητα καθώς κάτι μπορεί να μην υποστηρίζεται στην νέα έκδοση. Κάπως έτσι ξεκινάει ο εφιάλτης. Αλλά για μια στιγμή μήπως τελικά ο εφιάλτης είναι πόνημα φαντασίας;
     
    http://www.sqlschool.gr/blog/how-to-deal-with-migration-or-instance-upgrade-nightmares-1023.aspx
  9. antonch
    Επειδή το security στη database είναι αρκετά σημαντικό και πραγματικά δεν ξέρω γιατί οι περισσότεροι δεν δίνουν την πρέπουσα σημασία σε αυτό το σύντομο post θα σας δώσω ένα tip του οποίου η εφαρμογή ξεπερνάει το 99% των περιπτώσεων.
     
    http://www.sqlschool.gr/blog/create-a-db_executor-database-role-1013.aspx
  10. antonch
    Εδώ και αρκετό καιρό έχω γίνει αποδέκτης αρκετών ερωτήσεων σχετικά με τα σεμινάρια της Microsoft για τον SQL Server και συγκεκριμένα για τις εκδόσεις του 2012 & 2014. Οι ερωτήσεις αφορούν θέματα περιεχομένου και πιστοποίησης.
     
    http://www.sqlschool.gr/blog/what-you-must-know-about-official-training-and-certification-in-sql-server-2012-and-2014-1012.aspx
  11. antonch
    Δεν ξέρω αν σας αρέσει να ανεβαίνει η αδρεναλίνη σας ύψη αλλά προσωπικά μου αρέσει, αρκεί να είναι όπως αυτή η περίπτωση :-)
    Είμαι λοιπόν από το πρωί πάνω σε παραγωγικό server που έχει κομβικό Internet-ικο τμήμα του οργανισμού που εργάζομαι. Παλεύω να κάνω partitioning το πίνακα ημερολογίου συναλλαγών και είναι τεράστιος… Πρέπει να κάνω απλές και σίγουρες κινήσεις που δεν θα επηρεάσουν σε καμία περίπτωση την απόδοση του συστήματος.
     
    http://www.sqlschool.gr/blog/do-not-panic-when-an-error-occurred-just-learn-to-read-the-logs-1011.aspx
  12. antonch
    Στο μάθημα της προηγούμενης εβδομάδας δέχθηκα μια ερώτηση από ένα πολύ καλό φίλο και συνάδελφο (καλημέρα Θεόδωρε) μια αρκετά ενδιαφέρουσα ερώτηση που αφορούσε το που αποθηκεύεται η πληροφορία της διαδικασίας του checkpoint σε μια database.
    Επειδή η απάντηση μου τον ξάφνιασε λίγο σε αυτό το post αρχικά θα την μοιραστώ μαζί σας και θα την εξηγήσω.
    http://www.sqlschool.gr/blog/where-stored-the-last-checkpoint-operation-info-1010.aspx
  13. antonch
    Οι περισσότεροι από εσάς όταν θέλετε να αλλάξετε την δομή ενός πίνακα σε μια βάση χρησιμοποιείτε το SQL Server Management Studio (SSMS) όπου με δεξί κλικ στον πίνακα κάνετε design και αφού κάνετε την αλλαγή που θέλετε πατάτε το save button από την toolbar.
     
    Είμαι σίγουρος έχετε κάνει πολλά πράγματα έτσι και έχετε μείνει απόλυτα ευχαριστημένοι. Θεωρώ επίσης βέβαιο ότι κάποια στιγμή που κάτι πάλι θέλατε να αλλάξετε αυτό δεν μπορούσε να γίνει καθώς ο SSMS σας εμφάνισε ένα παράθυρο όπως το παρακάτω.
     
    http://www.sqlschool.gr/blog/do-not-uncheck-%E2%80%9Cprevent-saving-changes-that-require-table-re-creation%E2%80%9D-option-on-ssms-1009.aspx
  14. antonch
    Στα μάθηματα μου συχνά αναφέρω (ιδιαίτερα όμως όταν κάνω μάθημα σχετικό με τα joins) ότι εκτός από τα γνωστά inner, full, cross, self και left / right outer joins υπάρχουν και τα semi joins και anti-joins.
    Η πρώτη αντίδραση από το ακροατήριο μου είναι αυτή που μπορεί να έχει κάποιος όταν το χτυπάει το ρεύμα. Το καταλαβαίνω αμέσως από το γεγονός ότι ξαφνικά αποκτώ το 110% της προσοχής τους.
    Αυτό συμβαίνει πάντα για αυτό και γράφτηκε το συγκεκριμένο post.
    Αρχικά θα πω ότι είμαι σίγουρος ότι όλοι έχετε χρησιμοποιήσει semi ή anti joins απλά δεν ξέρετε ότι τα λένε έτσι.
     
    http://www.sqlschool.gr/blog/what-is-semi-join-and-anti-join-1008.aspx
  15. antonch
    Είναι πρωινό της 27/10/2014. Κάνει κρύο για τα δικά μου δεδομένα και είμαι στο γραφείο στην δουλειά μου. Χτυπάει το τηλέφωνο και είναι ο Σοφοκλής.
     
    http://www.sqlschool.gr/blog/do-not-forget-to-update-index-statistics-1005.aspx
  16. antonch
    Ένας DBA στην καθημερινότητα του χρειάζεται να διαβάζει αρκετές φορές τα logs που ο SQL Server παράγει είτε για το ίδιο το SQL Server service είτε για το SQL Server Agent service.
    Φυσικά και υπάρχει γραφικό περιβάλλον που μπορεί εύκολα κανείς να κάνει αυτό. Υπάρχει όμως και μη γραφικός τρόπος που διευκολύνει περισσότερο, κατά την γνώμη μου, στην ανάγνωση των logs ιδιαίτερα όταν αυτά έχουν μεγάλο όγκο από καταχωρήσεις.
     
    http://www.sqlschool.gr/blog/using-t-sql-commands-to-read-sql-log-files-1004.aspx
  17. antonch
    Ένα ερώτημα που με ρωτάνε συνέχεια όλοι. Μάλιστα στο πρώτο SQL Saturday που έγινε στην Ελλάδα το Σάββατο 4/10/2014 η συγκεκριμένη ερώτηση είχε μεγάλο σουξέ.
    Για αυτό λοιπόν θα την απαντήσω και γραπτώς ώστε να είναι εύκολα αναγνώσιμη από όλους σας.
    http://www.sqlschool.gr/blog/how-often-i-have-to-do-rebuild-or-reorganize-indexes-in-my-database-1003.aspx
  18. antonch
    Πριν από τρία χρόνια είχα γράψει ένα post με αυτό το θέμα. Το συγκεκριμένο post είναι από τα δημοφιλή θα έλεγα και έχει αρκετούς, από όσο γνωρίζω που έχουν χρησιμοποιήσει την συγκεκριμένη πρόταση.Παρόλα αυτά όμως το παλαιό post χρειάζεται ένα refactoring καθώς από τότε που γράφτηκε μέχρι σήμερα έχουν μεσολαβήσει αρκετές αλλαγές που σε αρκετές περιπτώσεις δεν θα δουλέψει. Για αυτό σε αυτό δίνω μια νέα βελτιωμένη εκδοχή.
    more
  19. antonch
    Αρκετές φορές υπάρχουν πράγματα τα οποία ερωτεύεσαι από την πρώτη στιγμή και θέλεις να είναι όλα πλέον έτσι. Εδώ και λίγο καιρό έχω αρχίσει να φτιάχνω νέα labs για τον SQL Server 2012 σε περιβάλλον Windows Server 2012 Datacenter Edition. Ο συγκεκριμένος συνδυασμός είναι από αυτά που έχουν συνηθίσει να λέμε ότι τα σπάει.Φυσικά όπως πάντα όλα μου τα labs είναι σε Ηyper-V Virtual Machines. Είναι γνωστή η λατρεία μου για τα virtual environments εδώ και χρόνια έτσι και αλλιώς.
    read more
  20. antonch
    Δεν είναι λίγες οι φορές που θέλουμε να αυτοματοποιήσουμε διαδικασίες ή να κάνουμε εργασίες μαζικά χωρίς να μπλέκουμε με το UI στα SQL Server Reporting Services. Για να κάνουμε κάτι τέτοιο πολλές φορές θα χρειαστεί να γράψουμε κάποιο script σε Visual Basic .NET το οποίο θα πρέπει να εκτελεστεί με το rs.exe utility που έχουν τα SSRS.
    more
  21. antonch
    Σε προηγούμενα μου post μίλησα για την διαδικασία του upgrade σε SQL Server 2012. Σε αυτό θα σας δώσω μερικές συμβουλές για το πως μπορείτε να κάνετε migration μια ή περισσότερες databases από μια παλαιότερη έκδοση του SQL Server σε SQL Server 2012. Οι προτεινόμενοι τρόποι για να γίνει κάτι τέτοιο είναι οι παρακάτω και δεν υπάρχει καλύτερος ή χειρότερος τρόπος. Ο κάθε ένας έχει τα συν και τα πλην του και θα πρέπει να κατανοήσουμε αυτά πριν διαλέξουμε αυτόν με τον οποίο θα δουλέψουμε.
    περισσότερα
×
×
  • Create New...