Jump to content

antonch

Administrators
  • Posts

    1030
  • Joined

  • Last visited

  • Days Won

    7

Blog Entries posted by antonch

  1. antonch
    Πρόσφατα ένας αξιόλογος και σεβάσμιος MVP o Glenn Berry (blog|twitter) μας ανακοίνωσε ότι έχει κάνει update την βιβλιοθήκη του με τα queries τα οποία χρησιμοποιεί για να διαγνώσει προβλήματα στον SQL Server.
    Επειδή αρκετοί με ρωτάτε για το πως να διαγνώσετε τα προβλήματα που σας εμφανίζονται νομίζω ότι είναι μια καλή αρχή να δείτε αυτά και να εξοικιωθείτε μαζί του. Μπορείτε να τα κατεβάσετε από εδώ.
    Παρέχουν αρκετά καλή πληροφορία και σε συνδιασμό ότι αυτά θα τα βάλεις σε ένα Excel (και αυτό το δίνει ο Glenn ) είναι ένα χρήσιμο εργαλείο για κάθε DBA.
    Προσωπικά τα έχω ήδη εντάξει στην φαρέτρα μου με τα διαγνωστικά μου εργαλεία για τον SQL Server.΄
    Για οποιαδήποτε ερώτηση σας με αυτά είμαι στην διάθεση σας.
  2. antonch
    Όπως γνωρίζεται από την έκδοση του SQL Server 2005 και μετά υπάρχουν τα dynamic management object. 
    Είναι αυτά τα οποία τα βρίσκετε σε κάθε database όταν κάνε expand στον SSMS > Database > Views > System Views .
    Αυτά έχουν έρθει να κάνουν την ζωή μας ευκολότερη και αρκετά από αυτά έχουν σαν σκοπό να καταργήσουν κάποια DBCC statements.
    Όπως και να έχει είναι αρκετά χρήσιμα διότι έτσι αντλούμε ότι πληροφορίες θέλουμε σχετικά με την βάση μας ή το SQL Server.
    Αυτό όμως που τα κάνει ακόμα ομορφότερα είναι ότι είναι εμπλουτισμένα με περισσότερες πληροφορίες που τα κάνουν ακόμα ποιο χρηστικά.
    Ένα από αυτά τα χαρακτηριστικά είναι μέσα σε αυτά υπάρχουν columns τα οποία τελειώνουν με _desc.
    Τα columns αυτά τα λέμε friendly name columns και είναι πάντα ζευγάρι με ένα άλλο column το οποίο δεν έχει στο τέλος το _desc.
    π.χ. Έστω ότι θέλεις να δεις το Recovery Model σε όλες σου τις databases που έχει στον SQL Server σου. Αυτό είναι εύκολο να το κάνεις αρκεί να εκτελέσεις το παρακάτω query.

    SELECT name, recovery_model FROM sys.databases
     
    Αυτό θα σου επιστρέψει ένα αποτέλεσμα τις μορφής
     








    name




    recovery_model





    master




    3





    tempdb




    3





    model




    1





    msdb




    3





    demo




    2





    ...




    ...

     
    Για αυτούς που ασχολούνται χρόνια με τον SQL Server αυτό είναι αρκετό μιας και ξέρουν τι σημαίνει η τιμή  1,2,3 στο recovery model.
    Τι γίνεται όμως με αυτούς που δεν έχουν ασχοληθεί αρκετά μαζί του.
    Οι τιμές 1,2,3 δεν του λένε πολλά πράγματα.
    Για αυτούς αλλά και για τους έμπειρους υπάρχουν οι columns για τις οποίες μιλάμε.
    Έτσι εύκολα πλέον αν στο παραπάνω query προσθέσουμε την friendly column όπως παρακάτω
     
    SELECT name, recovery_model, recovery_model_desc  FROM sys.databases
     
    Το οποίο θα μου γυρίσει το εξής αποτέλεσμα το οποίο φυσικά είναι και ποιο κατανοητό.









    name




    recovery_model




    recovery_model_desc





    master




    3




    SIMPLE





    tempdb




    3




    SIMPLE





    model




    1




    FULL





    msdb




    3




    SIMPLE





    demo




    2




    BULK_LOGGED





    ...




    ...




     

     
    Εδώ τώρα έρχεται το ερώτημα το οποίο μου τέθηκε σήμερα και αποτέλεσε την αφορμή για το post αυτό.

    «Και γιατί να έχω και τις δυο κολώνες αυτές, αφού με την κολώνα που έχω την περιγραφή κάνω μια χαρά την δουλειά μου;»

    Η απάντηση είναι απλή.
     
    Υπάρχουν συνάδελφοι που έχουν κάθε φορά διαφορετικές ανάγκες. Για παράδειγμα εσωτερικά στην Microsoft η ομάδα ανάπτυξης όταν υλοποιεί τα εσωτερικά interfaces του SQL Server θέλει να κάνει bind σε ποιο μικρά σε μέγεθος columns όπως το recovery_model το οποίο είναι ένας integer. Επίσης πολλοί από αυτούς που φτιάχνουν καλούδια στον SQL Server ή μέσα από τις εφαρμογές τους θέλουν να αντλήσουν system level πληροφορίες τους είναι ποιο εύκολο να χρησιμοποιήσουν αυτές τις κολώνες.
    Υπάρχουν όμως και οι DBAs που θέλουν με το adhoc query τους να δουν και την ερμηνεία της κολώνας έτσι χρησιμοποιούν το πεδίο με το _desc.
     
    Καλή Χρονιά σε όλες και όλους
     

     
  3. antonch
    Την προηγούμενη εβδομάδα κατά την διάρκεια του 4ο DevDays 2010 μου δώθηκε η ευκαιρία να μιλήσω για πρώτη φορά για τον νέο SQL Server “Denali”
    Το video (κλικ στην εικόνα παρακάτω) είναι ήδη διαθέσιμο και μπορείτε να το δείτε όσοι δεν μπόρεσαν να είναι παρόντες

  4. antonch
    Είναι γνωστή η λατρεία μου για ποστερς και ειδικά τέτοιου είδους όπως αυτό εδώ

    Απλά θέλεις χώρο και ploter για να τα τυπώσεις.... []

    Όπως και να έχει όμως είναι αυτό που πρέπει να μελετήσει κάποιος που ασχολήται με τον SQL Server 2008R2 καθώς θα μπουν πολλά πράγματα στο κεφάλι του σε σειρά.

    Enjoy it!
  5. antonch
    Αν και το θέμα το έχουμε ξανασυζητήσει και αναλύσει στο παρελθόν εντούτοις πάντα είναι επίκαιρο και πάντα έχει παραλλαγές.


    Σήμερα ήρθα αντιμέτωπος με μία τέτοια παραλλαγή.


    Φίλος και συνεργάτης την ώρα που ήμουν στο δρόμο για το γραφείο ( 7:00 πμ ) με παίρνει στον τηλέφωνο και μου λέει.


    «Έχω μια βάση που τα 250ΜΒ είναι το data file και τα 93GB το log. Είναι από το ERP ενός πελάτη μου το οποίο θέλω να πάρω backup και να το δώσω στην εταιρεία ώστε να κάνουν κάποιους ελέγχους σε ένα θέμα που έχει προκύψει με αυτό και δεν μπορώ να το στείλω γιατί βγαίνει ένα μεγάλο μέγεθος στο backup. Έχω δει το άρθρο σου για τον Θαυμαστό κόσμο του Transaction Log και θέλω να μειώσω το log file ώστε να μην είναι τόσο μεγάλο μιας και στην πραγματικότητα δεν το έχω ανάγκη.»


    Του απαντώ ΟΚ θα σε βοηθήσω, θα σε πάρω τηλέφωνο μόλις πάω στο γραφείο.


    «Όχι τώρα θέλω» 


    Και έτσι αρχίζουμε τηλεφωνική διαδικασία μείωσης μεγέθους του log.


    Τον ρωτάω εάν έχει πρόσφατο full backup και t-log backup. Η απάντηση του ήταν ότι είχε μόνο full, οπότε ξεκινήσαμε να παίρνουμε t-log backup ώστε να γίνει truncate το log.


    Με τη ολοκλήρωση του backup (t-log) τον οδήγησα να πάει μέσω του SSMS να κάνει Shrink File στο transaction log (right click on database Tasks Shrink…), και στην συνέχεια να επιλέξει την 1η επιλογή (αυτή που λέει ότι θα δει το υπάρχον μέγεθος και τα πραγματικά δεδομένα και θα βρει το optimal).


    Πραγματικά μετά από την εκτέλεση υπήρχε μια μείωση του μεγέθους του log αρχείου αλλά η διαφορά ήταν αρκετά μικρή από τα 93 GB πέσαμε στα 90GB.


    Αυτό με έβαλε σε σκέψεις και του είπα να μου πει τον τρόπο με τον οποίο μεγαλώνει το transaction log όταν γεμίζει. Η απάντηση ήταν αυτή που υποψιαζόμουν γίνονταν expand κατά 10%. Αυτό όπως έχω πει επανειλημμένος δημιουργεί virtual logs τα οποία επειδή δεν είναι ισόποσα δεν μπορούν να συγχρονιστούν και έτσι φυσικά μεγαλώνει και το log.


    Για να επιβεβαιώσω  ότι δεν  χρησιμοποιούνται όλα αυτά τα GBs του λέω να εκτελέσει την εντολή DBCC SQLPERF(LOGSPACE) και να μου πει το ποσοστό το οποίο είναι used. Πραγματικά δεν ήταν μεγάλο (18%).


    Έτσι μιας και ήμουν στο αυτοκίνητο και οδηγούσα και μιας και ο φίλος  δεν είναι sqlman επέλεξα ένα εύκολο τρόπο για λύσω άμεσα το πρόβλημα.


    Του είπα και γύρισε μέσα από τoν SSMS την βάση σε simple recovery model, και να πάει να κάνει ξανά shrink file το log. Με μία μικρή διαφορά, αυτή την φορά του είπα να πάει στην επιλογή όπου ορίζουμε το επιθυμητό μέγεθος και του είπα να δώσει 250ΜΒ. O λόγος που του το είπα αυτό είναι για να γλυτώσει IO κατά την διάρκεια των επόμενων expantions του log.


    Έτσι έχουμε μια ακόμα ιστορία που αποδεικνύει ότι πρέπει να παίρνουμε KAI transaction log backup όταν έχουμε full recovery model στην database. Επίσης έχουμε και τον τρόπο με τον οποίο μπορούμε να μικρύνουμε το μέγεθος του log file.

  6. antonch
    Ένα απίστευτο video έχει αναρτηθεί εδώ, το οποίο με έκανε να γελάσω αρκετά σήμερα το βράδυ.
    Ελπίζω να κάνει και εσάς
  7. antonch
    Πριν από λίγο καιρό στο SQL Server Magazine διάβασα το παρακάτω το οποίο είναι αρκετά ενδιαφέρον μιας και την απάντηση την έχει δώσει ένας άνθρωπος που τον έχει φτίαξει ο Paul Randal, απολαύστε το
    Q: I’ve been wondering about the algorithm for generating log sequence numbers for transaction log records and I’m concerned that with a high enough workload it may be possible to run out of log sequence numbers. What happens in that case?
    A: There’s no need to worry as for all practical purposes it is not possible to run out of log sequence numbers.
    As a bit of background, a log sequence number is a three-part number used to uniquely identify a transaction log record – constructed from the sequence number of the virtual log file (VLF) containing the log record; the log block number within the virtual log file; the log record number within the log block.
    This isn’t really important, but what is important is that the VLF sequence number is a 64-bit number. Whenever a VLF is reused in the transaction log, the VLF sequence is increased by 1. So let’s do a little math…
    Imagine a transaction log with 65536 VLFs, each one a quarter megabyte in size (not a nonsensical situation, depending on how your transaction log is being managed – for more details on this and on transaction log internals, see Importance of proper transaction log size management). Each time the log is completely used and wraps around to the start, the VLF sequence number will increase by 65536, which is 2 to-the-power 16 (2^16).
    A 64-bit number can support 2^64 values. To be able to exhaust the 2^64 possible VLF sequence numbers, our example transaction log would have to wrap 2^64 / 2^16 = 2^48 times. That’s a lot of log wrapping. But how much transaction log does that equate to?
    Our example log is 65536 x 1/4MB in size, which is 16GB. To wrap that log 2^48 times, you’d need to generate 2^48 x 16GB of transaction log. Which equates to 4 billion petabytes (a petabyte = 1024 terabytes) of transaction log – quite an undertaking!
    Even being able to write that log out to an SSD capable of a sustained 600 MB/s, it would take 4 billion petabytes / 600 megabytes = approximately 240 million years to generate 4 billion petabytes of transaction log.
    As you can clearly see – no-one’s in any danger of running out of log sequence numbers!
  8. antonch
    Σε συνέχεια από το PART I.
    Report Server Databases
    Στα SSRS έχουμε δύο databases τις ReportServer και ReportServerTempDB.
    ReportServer Database
    Σε αυτή την βάση αποθηκεύονται τα παρακάτω
    SSRS configuration Report definitions Report metadata Report history Cache policies Snapshots Resources Security settings Encrypted data Scheduling and Delivery Data Extension information Όπως είναι εύκολα κατανοητό η βάση αυτή είναι και η καρδία των SSRS και φυσικά η απώλεια της σημαίνει πολλά. Για αυτό το λόγο και της συμπεριφερόμαστε όπως σε όλες τις βάσεις παραγωγής, πχ παίρνουμε καθημερινό backup.
    Επίσης θα πρέπει να τονίσω ότι μπορώ να έχω άμεση πρόσβαση στα δεδομένα των πινάκων και φυσικά να αλλοιώσω αυτά. Αυτό όμως δεν είναι recommended αλλά ούτε και supported από την Microsoft. Επίσης θα πρέπει να τονισθεί ότι υπάρχει πάντα το ενδεχόμενο με κάποιο CU ή SP η δομή της βάσης να αλλάξει.
    ReportServerTempDB Database
    Αυτή η βάση είναι υπεύθυνη για την αποθήκευση των ενδιάμεσων διαδικασιών όπως των cached reports , sessions και execution data.
    Σε αντίθεση με την TempDB του SQL Server τα δεδομένα σε αυτή την βάση παραμένουν όταν γίνεται restart είτε ο SQL Server είτε τα SSRS. Σε τακτά χρονικά διαστήματα γίνεται διαγραφή των expired και orphan data.
    Αν και μπορούμε να σβήσουμε όλα τα δεδομένα μέσα από αυτή καλό είναι να γίνει αυτό. Αν και το μόνο που μπορεί να μας συμβεί είναι οι χρήστε που είναι σε διαδικασία να δούνε ένα report θα πάρουν μήνυμα ότι δεν μπορούν να διαβάσουν τον session state (rsExecutionNotFound). Σε αυτή την περίπτωση ο χρήστης θα πρέπει να ξαναεκτελέσει το report.
    Αλλαγή θέσης των Temporary Snapshots
    Εάν κάποιος θέλει να αλλάξει τον τρόπο που temporary snapshots αποθηκεύονται και αντί για την βάση να αποθηκεύονται σε directory θα πρέπει να ακολουθήσει τα επόμενα βήματα
    Να αλλάξει στο rsreportserver.config το WebServiceUseFileShareStorage και το WindowsServiceUseFileShareStorage σε True. Να ορίζει το path που θέλει αυτά να αποθηκεύονται στο FileShareStorageLocation. Υπάρχει βέβαια default value και είναι η C:\Program Files\Microsoft SQL Server\MSES10.MSSQLSERVER\Reporting Services\RSTempFiles. Τέλος θα πρέπει να επισημάνω ότι δεν χρειάζεται οι βάσεις αυτές να είναι στην ίδια μηχανή που έχω στήσει τα SSRS αλλά σε έναν άλλο SQL Server.
  9. antonch
    Γνωρίζοντας ότι μπορεί το παρόν post μου να μην είναι ενδιαφέρον ή να προσφέρει μια γνώση που δεν έχετε, εντούτοις το γράφω διότι πρέπει κάποια πράγματα να λέγονται όπως είναι και να μην υπάρχει μαύρες τρύπες ή διαφορετικές ερμηνείες, που δυστυχώς άκουσα σήμερα.

    Τι είναι λοιπόν ένα transaction;

    Είστε σε μια εκκλησία και βλέπετε ένα ζευγάρι να παντρεύεται. Όταν τελειώσει το μυστήριο του γάμου δεν υπάρχει κανένας που να αμφιβάλλει για το status του ζευγαριού αυτού. ΕΙΝΑΙ ΠΑΝΤΡΕΜΕΝΟΙ. Εάν όμως κατά την διάρκεια του μυστήριου συμβεί κάτι πχ η νύφη το σκάσει πάλι δεν υπάρχει καμία αμφιβολία για το status τους. ΔΕΝ ΕΙΝΑΙ ΠΑΝΤΡΕΜΕΝΟΙ.

    Αυτό στην ουσία είναι και ένα transaction αγαπητές κυρίες και αγαπητοί κύριοι. Τίποτα περισσότερο τίποτα λιγότερο. Οι σύμμαχοι λένε All Or Nothing, που σημαίνει ότι όλα θα γίνουν και θα φτάσω στο επιθυμητό status (ΕΙΝΑΙ ΠΑΝΤΡΕΜΕΝΟΙ-TRANSACTION IS COMMITTED) ή αν γίνει κάτι τότε όλα γυρνάνε στην προηγούμενη κατάσταση (ΔΕΝ ΕΙΝΑΙ ΠΑΝΤΡΕΜΕΝΟΙ – TRANSACTION ROLLBACKED)

    Ένα transaction υλοποίει – διέπεται από τα ACID properties που είναι τα αρχικό των λέξεων Atomicity – Consistency – Isolation – Durability.

    Atomicity σημαίνει ότι κάθε transaction πρέπει να είναι μια αυτόνομη εργασία που είτε θα γίνουν όλα όσα αυτή ζητάει να γίνουν είτε δεν θα γίνει τίποτα.

    Consistency σημαίνει ότι με την ολοκλήρωση του transaction όλα θα είναι σε μια consistent κατάσταση (είναι παντρεμένοι ή δεν είναι παντρεμένοι). Ενδιάμεσες καταστάσεις δεν υπάρχουν. Δεν υπάρχει ολίγο παντρεμένοι ή ολίγο δεν είναι παντρεμένοι.

    Isolation σημαίνει ότι οι αλλαγές που ζητάει ένα transaction να γίνουν πρέπει να είναι απομονωμένες από τις αλλαγές που κάποια άλλα transaction που εκτελούνται ταυτόχρονα κάνουν. Δηλαδή εάν για παράδειγμα κάποιος από το ζευγάρι που παντρεύεται είναι ήδη παντρεμένο το δικό μας transaction δεν θα προχωρήσει. Ξέρω τι θα ακούσω τώρα για τα ζευγάρια που είναι δίγαμα αλλά αυτό διώκεται ποινικά ξέρετε, έτσι και εδώ υπάρχουν νόμοι και κανόνες που ευτυχώς δεν παραβιάζονται. Επίσης για να προχωρήσει το δικό μας transaction όταν κάποιο ή κάποια άλλα έχουν ξεκινήσει θα πρέπει αυτά να τελειώσουν και να αφήσουν τα δεδομένα που και εμείς θέλουμε να πειράξουμε σε μια ξεκάθαρη κατάσταση.

    Durability σημαίνει ότι αφού το transaction μας έχει ολοκληρωθεί αυτό παραμένει ακόμα και αν το σύστημα μας έχει failure.

    Για να επιτευχθούν όλα τα παραπάνω υπάρχουν τα locks τα οποία έρχονται να τηρήσουν τους κανόνες που είπαμε, αλλά για αυτά σε άλλο post.

    Autocommit Transactions ή Implicit Transactions

    Στον SQL Server έχω τα Autocommit Transactions ή Implicit Transactions που είναι και η default συμπεριφορά για κάθε sql statement που εκτελείται. Δηλαδή εκτελώ ένα insert statement αυτό θα είναι committed εφόσον δεν υπάρχει κάποιο λάθος, ενώ αν παρουσιαστεί σφάλμα αυτό είναι rollbacked.

    Για όσους θέλουν να απενεργοποιήσουν την παραπάνω συμπεριφορά του SQL Server γιατί τους φαίνεται ότι δεν είναι σωστή (επειδή έτσι νομίζουν γιατί το έχουν δει αλλού) υπάρχει η δυνατότητα με την εφαρμογή του IMPLICIT_TRANSACTION setting π.χ
    SET IMPLICIT_TRANSACTIONS ONINSERT / UPDATE / DELETE
    COMMIT / ROLLBACK







    Explicit Transactions

    Εάν θέλεις να έχεις δικά σου ελεγχόμενα transactions τότε θα πρέπει να ξεκινήσεις ένα δικό όπως στο παράδειγμα που ακολουθεί
    BEGIN TRAN….
    COMMIT / ROLLBACK
    Βέβαια θα πρέπει να είσαι προετοιμασμένος ώστε αν συμβεί κάτι να κάνεις rollback. Δεν θα σας κουράσω δείχνοντας σας πως αυτό γίνονταν πριν τον SQL Server 2005, θα σας δείξω πως γίνεται από τον 2005 και μετά που είναι και αρκετά πιο δομημένος τρόπος γραφής BEGIN TRY BEGIN TRAN
    ….
    COMMIT
    END TRY
    BEGIN CATCH
    ROLLBACK
    SELECT ERROR_NUMBER(), ERROR_MESSAGE()
    END CATCH



    Το θέμα φυσικά δεν εξαντλείτε εδώ είναι μεγάλο και θα επανέλθω σύντομα με ένα άλλο post που θα πηγαίνει περισσότερο σε βάθος.
  10. antonch
    SSMS Tools Pack είναι ένα add-in για τον Microsoft SQL Server Management Studio (SSMS) 2005, 2008, 2008 R2 αλλά και για τις Express versions. Τα έχει φτιάξει ένας SQL Server MVP o Mladen Prajdic και τα μοιράσει δωρεάν αλλά μπορείς να αφήσεις κάτι σε αυτόν για την προσπάθεια του
    Περιέχουν αρκετά ωραία πραγματάκια που σε μερικούς λοίπουν από το SSMS όπως:
    SQL Snippets Window Connection Coloring Query Execution History and Current Window History Format SQL Search Table, View or Database Data Copy execution plan bitmaps to clipboard or file Search Results in Grid Mode Generate Insert statements from resultsets, tables or database Regions and Debug sections Running custom scripts from Object Explorer CRUD stored procedure generation New query template General options Για να τα κατεβάζετε επισκευτείτε την παρακάτω σελίδα http://www.ssmstoolspack.com/Download
  11. antonch
    Ψάχνοντας μέσα στα αρχεία μου σήμερα για κάτι άλλο ανακάλυψα μια λίστα την οποία είχα κάνει στο παρελθόν και η οποία δείχνει κάτι το οποίο είναι λίγο περίεργο στον SQL Server.
    Αυτό που είναι περιέργο είναι ότι σε όλα τα άλλα προιόντα της Microsoft όταν βάζει κάποιο service pack ή cummulative update μπορείς εύκολα μετά να καταλάβεις τι έχεις κάνει install πηγαίνοντας στο about ή δίνοντας μια εντολή.
    Στον SQL Server δεν είναι όμως τόσο απλά τα πράγματα. Μια εύκολη λύση είναι να εκτελέσεις το SELECT @@version το οποίο σου δίνει πληροφορίες όμως δεν λέει τόσο ξεκάθαρα τα πράγματα. Το μόνο που στην ουσία σου δίνει ακριβή πληροφορία είναι το Version number και εσύ πρέπει από αυτό να καταλάβεις τι έχεις εγκαταστήσει.
    Χωρίς την παρακάτω λίστα είσαι χαμένος από χέρι και ομολογώ ότι είχα καιρό να την ανανεώσω όμως αυτό ήταν το εύκολο μέρος. Θα συνεχίσω να την ενημερώνω στο παρόν post. Η λίστα μου περιέχει την έκδοση και το τι αυτή περιέχει και διορθώνει
    Version
    Περιέχει/Διορθώνει
    SQL Server 2008 R2

    10.5.1720.0
    SQL Server 2008 R2 CU2
    10.5.1702.0
    SQL Server 2008 R2 CU1
    10.5.1600.1
    SQL Server 2008 R2 RTM
    SQL Server 2008

    10.00.2775
    SQL Server 2008 SP1 CU8
    10.00.2766
    SQL Server 2008 SP1 CU7
    10.00.2757
    SQL Server 2008 SP1 CU6
    10.00.2746
    SQL Server 2008 SP1 CU5
    10.00.2734
    SQL Server 2008 SP1 CU4
    10.00.2723
    SQL Server 2008 SP1 CU3
    10.00.2714
    SQL Server 2008 SP1 CU2
    10.00.2710
    SQL Server 2008 SP1 CU1
    10.00.2531
    SQL Server 2008 SP1
    10.00.1835
    SQL Server 2008 RTM CU10
    10.00.1828
    SQL Server 2008 RTM CU9
    10.00.1823
    SQL Server 2008 RTM CU8
    10.00.1818
    SQL Server 2008 RTM CU7
    10.00.1812
    SQL Server 2008 RTM CU6
    10.00.1806
    SQL Server 2008 RTM CU5
    10.00.1798
    SQL Server 2008 RTM CU4
    10.00.1787
    SQL Server 2008 RTM CU3
    10.00.1779
    SQL Server 2008 RTM CU2
    10.00.1763
    SQL Server 2008 RTM CU1
    10.00.1600
    SQL Server 2008 RTM
    SQL Server 2005

    9.00.4305
    SQL Server 2005 SP3 CU10
    9.00.4294
    SQL Server 2005 SP3 CU9
    9.00.4285
    SQL Server 2005 SP3 CU8
    9.00.4273
    SQL Server 2005 SP3 CU7
    9.00.4266
    SQL Server 2005 SP3 CU6
    9.00.4230
    SQL Server 2005 SP3 CU5
    9.00.4226
    SQL Server 2005 SP3 CU4
    9.00.4220
    SQL Server 2005 SP3 CU3
    9.00.4211
    SQL Server 2005 SP3 CU2
    9.00.4207
    SQL Server 2005 SP3 CU1
    9.00.4053
    SQL Server 2005 SP3 GDR
    9.00.4035
    SQL Server 2005 SP3
    9.00.3356
    SQL Server 2005 SP2 CU17
    9.00.3355
    SQL Server 2005 SP2 CU16
    9.00.3330
    SQL Server 2005 SP2 CU15
    9.00.3328
    SQL Server 2005 SP2 CU14
    9.00.3225
    SQL Server 2005 SP2 CU13
    9.00.3315
    SQL Server 2005 SP2 CU12
    9.00.3310
    SQL Server 2005 Security Update
    9.00.3301
    SQL Server 2005 SP2 CU11
    9.00.3294
    SQL Server 2005 SP2 CU10
    9.00.3282
    SQL Server 2005 SP2 CU9
    9.00.3257
    SQL Server 2005 SP2 CU8
    9.00.3239
    SQL Server 2005 SP2 CU7
    9.00.3233
    SQL Server 2005 QFE Security Update
    9.00.3228
    SQL Server 2005 SP2 CU6
    9.00.3215
    SQL Server 2005 SP2 CU5
    9.00.3200
    SQL Server 2005 SP2 CU4
    9.00.3186
    SQL Server 2005 SP2 CU3
    9.00.3175
    SQL Server 2005 SP2 CU2
    9.00.3161
    SQL Server 2005 SP2 CU1
    9.00.3152
    SQL Server 2005 SP2 Hotfix
    9.00.3077
    SQL Server 2005 Security Update
    9.00.3054
    KB934458
    9.00.3042.01
    SQL Server 2005 "SP2a"
    9.00.3042
    SQL Server 2005 SP2
    9.00.2047
    SQL Server 2005 SP1
    9.00.1399
    SQL Server 2005 RTM
    SQL Server 2000

    8.00.2039
    SQL Server 2000 SP4
    8.00.760
    SQL Server 2000 SP3
    8.00.534
    SQL Server 2000 SP2
    8.00.384
    SQL Server 2000 SP1
    8.00.194
    SQL Server 2000 RTM
    SQL Server 7

    7.00.1063
    SQL Server 7.0 SP4
    7.00.961
    SQL Server 7.0 SP3
    7.00.842
    SQL Server 7.0 SP2
    7.00.699
    SQL Server 7.0 SP1
    7.00.623
    SQL Server 7.0 RTM
    SQL Server 6.5

    6.50.416
    SQL Server 6.5 SP5a
    6.50.415
    SQL Server 6.5 SP5
    6.50.281
    SQL Server 6.5 SP4
    6.50.258
    SQL Server 6.5 SP3
    6.50.240
    SQL Server 6.5 SP2
    6.50.213
    SQL Server 6.5 SP1
    6.50.201
    SQL Server 6.5 RTM
  12. antonch
    Όταν δημιουργήτε ένα report το οποίο έχει μέσα του images και θέλετε να έχετε μικρό μέγεθος αρχείου όταν το κάνετε export σε PDF, φροντίστε αυτές να είναι σε jpeg format.
    Οτιδήποτε άλλο τα reporting services το μεταφράζουν σε BMP και αυτό έχει σαν αποτέλεσμα να μεγαλώνει δραματικά το μέγεθος του αρχείο ειδικότερα αν έχετε μεγάλο αριθμό από εικόνες ή φωτογραφίες.
  13. antonch
    Σημέρα ένας αγαπητός συνάδελφος έρχεται στο γραφείο μου και μου κάνει την εξής ερώτηση:
    «Υπάρχει κανένας τρόπος με τον οποίο μπορώ να δω το μέγεθος των πραγματικών δεδομένων που έχουν αποθηκευτεί στην βάση μου σε ένα πεδίο τύπου image;»
    Σίγουρα η πρώτη σκέψη όλων μας θα πάει στην LEN(), αλλά αυτή όμως δεν παίζει με πεδία τύπου image, text, ntext.
    Αντί για αυτή μπορούμε να χρησιμοποιήσουμε την DATALENGTH() η οποία επιστρέφει το μέγεθος σε bytes και η οποία φυσικά μπορεί να χρησιμοποιηθεί και για όλα τα άλλα data types του SQL Server.
    Ένα παράδειγμα
    Έστω ότι έχω τον πίνακα Α
    CREATE TABLE A ( ID INT PRIMARY KEY NOT NULL, PHOTO IMAGE )
    Μπορώ να διαβάζω το πραγματικό αποθηκευμένο μέγεθος στο πεδίο PHOTO με ένα απλό query
    SELECT ID, DATALENGTH(PHOTO) SizeInBytes, DATALENGTH(PHOTO)/1024 SizeInKB FROM A
    Αυτά για την ώρα, καλή σας ημέρα και καλό SQL Server programming


  14. antonch
    Είχα σκοπό να τα φτιάξω κάτι σχετικό, αλλά ψάχνοντας για κάτι άλλο, έπεσα επάνω τους. Σας δίνω τα links ώστε να τα δείτε.
    Installation of a Single Node Failover Cluster in SQL Server 2008
    Add a Node to an Existing Failover Cluster in SQL Server 2008
    Remove a Passive Node from an Existing Failover Cluster in SQL Server 2008
    Remove the Active Node from an Existing Failover Cluster in SQL Server 2008
  15. antonch
    Αφορμή για το post αυτό μου έδωσε αυτό το post, Protect object from accidental deletion.
    Για να κάνω κάτι τέτοιο στον SQL Server το μόνο που χρειάζεται να κάνω είναι να φτιάξω ένα απλό DML Trigger.
    Με το παρακάτω script γίνεται αυτό που θέλω και έτσι δεν πρόκειτε ποτέ να σβήσω μια βάση. Αν θελήσω να σβήσω μια βάση θα πρέπει πρώτα να κάνω disable τον trigger να κάνω την διαγραφή μου και μετά να ενεργοποίησω ξανά αυτόν.
    CREATE TRIGGER NoDeleteDB ON ALL SERVER FOR DROP_DATABASE
    AS
    ROLLBACK
    GO
    DISABLE TRIGGER NoDeleteDB ON ALL SERVER
    ENABLE TRIGGER NoDeleteDB ON ALL SERVER
  16. antonch
    Η Microsoft ανακοίνωσε όπωσ συνηθίζει μια σειρά από εργαλεία τα οποία μπορούν να κάνουν ευκολότερη (όχι ότι δεν είναι) τη ζωή μας με τον SQL Server 2008 R2.
    Λήψη του Microsoft® SQL Server® 2008 R2 Feature Pack
  17. antonch
    Δεν ξέρω αν είχατε την δυνατότητα να δείτε τα δύο poster που έχω φτίαξει για τις δυνατότητες του SQL Server 2008 R2.

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

    1. Το πόσους SQL Servers μπορώ να διαχειριστώ σε multi-instance management;

    Η απάντηση είναι 250 στην Datacenter edition και 25 στην Enterprise.

    2. To πόσους indexes μπορώ να έχω σε ένα πίνακα;

    Μέχρι την έλευση του SQL Server 2008 R2 είχα την δυνατότητα να έχω 250 indexes σε κάθε πίνακα (1 clustered + 249 nonclustered). Στο SQL Server 2008 R2 σε όλες τις εκδόσεις έχω 1000 indexes!!!!! (1 clustred + 999 nonclustred). Είμαι περίεργος να δω ποιος θα βάλει τόσους indexes σε ένα πίνακα.

     
  18. antonch
    Βγήκε αυτό σήμερα νομίζω ότι αξίζει κανείς να το έχει δίπλα του. Είναι από τα βιβλία που πρέπει να είναι πάντα πάνω πάνω στο γραφείο του DBA.
    Σας παραθέτω την περιγραφή του όπως είναι
    Καλό διάβασμα
    Καλό Πασχα σε όλους με υγεία
    Φιλικα
    Αντώνης

    We’re happy to announce that Microsoft SQL Server 2008 Administrator's Pocket Consultant, Second Edition, by William Stanek, has shipped to the printer. The book’s ISBN is 9780735627383, the book includes 17 chapters and 736 pages, and it will be available after April 21. The book’s first edition has been updated for the R2 of SQL Server 2008. Below is more info about the book. Check back later for excerpts from the book’s chapters.
    Introduction
    Microsoft SQL Server 2008 Administrator’s Pocket Consultant, Second Edition,
    is designed to be a concise and compulsively usable resource for SQL Server
    2008 and SQL Server 2008 Release 2 (R2) administrators. It covers everything you need to know to perform the core administrative tasks for SQL Server and is the
    readable resource guide that you’ll want on your desk at all times. Because the focus is on giving you maximum value in a pocket-sized guide, you don’t have to wade through hundreds of pages of extraneous information to find what you’re looking for. Instead, you’ll find exactly what you need to get the job done.
    This book is designed to be the one resource you turn to whenever you have
    questions about SQL Server administration. To this end, the book zeroes in on
    daily administration procedures, frequently used tasks, documented examples, and options that are representative while not necessarily inclusive. One of the key goals is to keep content concise enough that the book is compact and easy to navigate while also ensuring that the book contains as much information as possible. Instead of a 1,000-page tome or a 100-page quick reference, you get a valuable resource guide that can help you quickly and easily perform common tasks, solve problems, and implement advanced SQL Server technologies such as replication, distributed queries, and multiserver administration.
    Who Is This Book For?
    Microsoft SQL Server 2008 Administrator’s Pocket Consultant, Second Edition, covers the Standard, Enterprise, Developer, Web, and Workgroup editions of SQL Server.
    The book is designed for:
    Current SQL Server database administrators Accomplished users who have some administrator responsibilities Administrators migrating to SQL Server 2008 and SQL Server 2008 R2 from
    previous versions Administrators transitioning from other database architectures To include as much information as possible, I had to assume that you have basic
    networking skills and a basic understanding of SQL Server. With this in mind, I don’t devote entire chapters to understanding SQL Server architecture or running simple SQL queries. But I do cover SQL Server installation, configuration, enterprise-wide server management, performance tuning, optimization, maintenance, and much more.
    I also assume that you’re fairly familiar with SQL commands and stored procedures as well as the standard Windows user interface. If you need help learning SQL basics, you should read other resources (many of which are available from Microsoft Press).
    How Is This Book Organized?
    Microsoft SQL Server 2008 Administrator’s Pocket Consultant, Second Edition, is
    designed to be used in the daily administration of SQL Server, and as such the book is organized according to job-related tasks rather than SQL Server features. Before you use this book, you should be aware of the difference between the Administrator’s Pocket Consultant titles and the Administrator’s Companion titles. Both types of books are designed to be a part of an overall administrator’s library, but books in the Administrator’s Pocket Consultant series are the down-and-dirty, in-the-trenches books, and Administrator’s Companion titles are the comprehensive tutorials and references that cover every aspect of deploying a product or technology in the enterprise.
  19. antonch
    O Roger Doherty, Sr. Technical Evangelist for SQL Server, τον οποίο είχα την τιμή να τον γνωρίσω και να μιλήσω αρκέτα μαζί του στη τελευταία επίσκεψη μου στο Microsoft Campus το 2008, ανακοίνωσε στο blog του την διαθεσιμότητα του SQL Server 2008 R2 Update for Developers Training Kit.
    Τα περιεχόμενα του Kit είναι ενδιαφέροντα και τα παραθέτω όπως ακριβώς τα έχει ο Roger στο blog του.

    SQL Server 2008 R2 offers an impressive array of capabilities for developers that build upon key innovations introduced in SQL Server 2008. The SQL Server 2008 R2 Update for Developers Training Kit is ideal for developers who want to understand how to take advantage of the key improvements introduced in SQL Server 2008 and SQL Server 2008 R2 in their applications, as well as for developers who are new to SQL Server. The training kit is brought to you by Microsoft Developer and Platform Evangelism.
    Overview and Benefits
    The training kit offers the following benefits:
    Learn how to build applications that exploit the unique features and capabilities of SQL Server 2008 and SQL Server 2008 R2. Provides a comprehensive set of videos, presentations, demos and hands-on labs. Contains new content for developers who are new to SQL Server. Contains new content for SQL Server 2008 R2. Contains all of the existing content from the SQL Server 2008 Developer Training Kit. Easy to download and install.
    Intended Audience
    The training kit is designed for the following technical roles: Developers who build applications for the Microsoft platform. Microsoft evangelists, technical specialists and consultants.
    Contents
    The training kit includes the following content: Videos (8) SQL Server 2008 R2 Update for Developers Overview Part I - SQL Server 2008 Review SQL Server 2008 R2 Update for Developers Overview Part II - Introducing SQL Server 2008 R2 Introducing SQL Server 2008 R2 StreamInsight Demo: Real Time Analytics with SQL Server 2008 R2 StreamInsight Introducing SQL Server 2008 R2 Application and Multi-Server Management Introducing SQL Server 2008 R2 Reporting Services Introduction To SQL Server 2008 R2 StreamInsight and Complex Event Processing Introducing PowerPivot for Excel 2010 and SharePoint 2010 Presentations (8) SQL Server 2008 R2 Update for Developers Overview Part I - SQL Server 2008 Review SQL Server 2008 R2 Update for Developers Overview Part II - Introducing SQL Server 2008 R2 SQL Server 2008 Filestream SQL Server 2008 Spatial SQL Server 2008 T-SQL SQL Server 2008 Date and Time Types SQL SErver 2008 SQLCLR SQL Server 2008 Reporting Services Demos (13) AdventureWorks Racing All-Up SQL Server 2008 Demo SQL Server 2008 All-Up Spatial Demo SQL Server 2008 Spatial Types Demo Intro to SQL Server 2008 Filestream Demo SQL Server 2008 SQL CLR Nullable Types Demo Programming with SQL Server 2008 Filestream Demo SQL Server 2008 Reporting Services Web Application Integration Demo Date and Time Support in SQL Server 2008 Demo SQL Server 2008 T-SQL Table-Valued Parameters Demo SQL Server 2008 T-SQL Row Constructors Demo SQL Server 2008 T-SQL Grouping Sets Demo SQL Server 2008 T-SQL Merge Demo Hands-on Labs (8) How to build your first Web Application with SQL Server and ASP.NET Using SQL Server 2008 Spatial Data in TSQL Using SQL Server 2008 Spatial Data in Managed Code Using SQL CLR in SQL Server 2008 PowerPivot in SQL Server 2008 R2 Using the New Features of Reporting Services 2008 R2 Introduction To SQL Server 2008 R2 StreamInsight and Complex Event Processing Data-tier Applications in SQL Server 2008 R2 and Visual Studio 2010 Το SQL Server 2008 R2 Update for Developers μπορείτε να βρείτε για download εδώ.
  20. antonch
    Για τους αγαπητούς μου developers και όχι μόνο ;-) στο παρακάτω Link υπάρχουν παραδείγματα για το πως να φτιάξουν το connection string με το οποίο θα συνδέσουν την εφαρμογή τους με τον SQL Server 2008.
    http://www.connectionstrings.com/sql-server-2008
  21. antonch
    Επειδή στο προηγούμενο μου post σχετικά με το Database Mirroring στον SQL Server ξέχασα να βάλω κάποια Best Practices που έχω διαβάσει σε διάφορα paper, blogs και βιβλία βάζω τα παρακάτω που προτείνει και ο Brad McGehee μιας και με βρήσκουν 100% σύμφωνο.
    The principal database and the mirror database should be on separate physical hardware, and ideally, in different physical locations. The witness server should be on separate physical hardware, and be on a separate network (best if at a third location). Initial database mirroring setup should be done during less busy times, as the setup process can negatively affect performance of the production database being mirrored. Use high availability mode whenever possible, and high performance mode only when required. The hardware, along with the OS and SQL Server configuration, should be identical (at least very similar) between the two servers. While a fast connection is not required between mirrored servers, the faster the connection, and the better quality the connection, the better. You will want to optimize the performance of the mirrored database as much as possible to reduce the overhead caused by the mirroring process itself. Thoroughly test database mirroring before putting it into production. Monitor database mirroring daily to ensure that it is working properly, and is meeting performance goals. Develop a formal operational and recovery procedure (and document) to support mirroring. Periodically test the failover process to ensure that it works.
  22. antonch
    At the PASS Summit 2009 last week, Ted Kummert announced the soon-to-be-delivered November SQL Server 2008 R2 Community Technology Preview. We’re happy to announce that it is available today for MSDN and TechNet subscribers and it will be available to the general public on November 11th. Go to http://www.microsoft.com/sqlserver/2008/en/us/R2.aspx to get more information and to download!
×
×
  • Create New...