Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

datafiles

Îåêßíçóå áðü ôï ìÝëïò vmakrin. Τελευταία δημοσίευση από το μέλος KelMan στις 21-06-2010, 12:47. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  21-06-2010, 09:25 59225

    datafiles

    καλημέρα σα όλους,

    έχω μια βάση (MS –SQL 200) με αρκετά datafiles (σε διαφορετικούς δίσκους), όταν "στήναμε" την βάση υπήρχαν απόψεις για δημιουργία πολλών datafiles ή για την δημιουργία ενός.
    Τελικά "πήγαμε" με τους πολλούς που έλεγαν πώς είναι καλύτερα πολλά datafiles από ένα και μοναδικό.

    Μπορείτε να μου πείτε μειονεκτήματα και πλεονεκτήματα της κάθε λύσης; (έχει έρθει ο καιρός για MS –SQL 2008) 


    ευχαριστώ
  •  21-06-2010, 10:25 59226 σε απάντηση της 59225

    Απ: datafiles

    Πως είναι η δομή του storage του server που σκοπεύε να χρησιμοποιήσετε; (Δίσκοι, Controllers, κλπ)

     


    Vir prudens non contra ventum mingit
  •  21-06-2010, 10:37 59227 σε απάντηση της 59226

    Απ: datafiles

    dell sas storage και μέχρι τώρα τα datafiles είναι μοιρασμένα σε 10  δίσκους

  •  21-06-2010, 11:33 59230 σε απάντηση της 59227

    Απ: datafiles


    Γενικότερα, είναι καλό να έχεις "διασκορπισμένα" τα data files σου (μέσω των filegroups), σε διαφορετικά disk drives.

    Αυτό αυξάνει το performance. Καλό είναι π.χ να έχεις το .log file σε ένα άλλο drive (RAID 1) από τα data files σου. Αν έχεις μεγάλο πορτοφόλι και μπορείς να έχεις πολλά disks, βάλε και την tempdb σε ένα άλλο disk drive από ότι τα logs και .mdfs και .ndfs αρχεία σου.

    Δεν είναι καλό να έχεις όλα τα data files σου σε ένα φυσικό δίσκο. Αν π.χ έχεις 2 tables τα οποία τα "βαράει" η εφαρμογή σου πάρα πολύ, τότε είναι καλό να τα βάλεις σε διαφορετικά filegroups σε διαφορετικούς δίσκους.

    Επίσης για το ίδιο σενάριο (heavily accesses tables) μπορείς να βάλεις τους πίνακες αυτούς σε ένα filegroup σε ένα δίσκο και τους Indexes των πινάκων αυτών σε άλλο filegroup σε άλλο δίσκο.

    βασικά φαντάσου ότι το Performance σε ένα τέτοιο σενάριο θα μπορείς να έχεις Parallel access στα data, δηλαδή διαφορετικά threads θα μπορούνε να "διαβάζουνε" data από τα διαφορετικά tables & indexes που βρίσκονται σε πολλά filegroups και disks.

    Αν έχεις μόνο read only tables μπορείς να τα βάλεις σε ένα άλλο disk drive.

    καλό είναι το OS στο κουτί που τρέχει ο SQL Server να είναι σε άλλο drive από οτιδήποτε έχει να κάνει με log files και data files.

    αυτά που σου λέω, μπορώ να τους δώσω την ονομασία "Useful guidelines" και μπορείς να τα βρείς σε πολλά καλά βιβλία για SQL Server.



    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
  •  21-06-2010, 12:00 59232 σε απάντηση της 59230

    Απ: datafiles

    Νίκο, αν προσέξεις μιλάμε για τα αρχεία μίας μόνο βάσης, όχι ολόκληρου του server. Επιπλέον, η διάσπαση των αρχείων της βάσης θα προκαλέσει καθυστέρηση, όχι επιτάχυνση. Με ένα RAID που υποστηρίζει striping όλοι οι σκληροί δουλεύουν ταυτόχρονα για να σερβίρουν τα αποτελέσματα. Αν βάλεις ένα βαρύ πίνακα σε ένα σκληρό θα αναγκάσεις όλα τα queries να περιμένουν τον ένα σκληρό. Αντί για parallel access προκαλείς serial access.

    Σε πολύ βαριά συστήματα (με τα σημερινά δεδομένα, όχι του SQL Server 2000) αρχίζει να έχει νόημα να ξεχωρίσεις indexes από data, πάντα σε RAID με striping. Δεν μπορείς όμως να πεις εκ των προτέρων "ξεχωρίστε τα Indexes" γιατί κάθε συστοιχία έχει κόστος: χαμένο χώρο για το parity, και λιγότεροι παράλληλοι σκληροί ανά συστοιχία. Μην ξεχνάμε ότι indexes και data είναι διάσπαρτα και τη στιγμή που ένας σκληρός σερβίρει index μπορεί ένας άλλος να σερβίρει data. Είναι πολύ καλύτερο να έχω 10 σκληρούς να δουλεύουν παράλληλα παρά π.χ. 6 και 4 ή 5 και 5.

    Τέλος, να πω ότι και εγώ είχα κάποτε αυτή την παρανόηση αλλά μερικές συζητήσεις με τον Lubor Kolar το ξεκαθάρισαν (είναι ο μπαμπάς του query optimizer, κάτι θα ξέρει). Ως developers έχουμε πάντα την τάση να κοιτάμε λύσεις που ελέγχουμε εμείς και έτσι μας ξεφεύγουν οι λύσεις που μπορεί να υπάρχουν έτοιμες σε hardware. Άσε που τα μηχανήματα μας δεν έχουν ποτέ RAID 5 κι έτσι δεν "βλέπουμε" την απλή λύση. Γι αυτό μπορεί κανείς να διαβάσει ένα Guideline που σου λέει κάνε RAID και αν χρειαστεί placement και να ακούσει μόνο "κάνε placement"

    Κατάληξη: Η καλύτερη λύση εξαρτάται από τον όγκο και το workload (συχνότητα, concurrency, είδος queries). Η βασική συνταγή είναι τα δεδομένα των βάσεων (data + index) σε RAID με striping, όσο το δυνατόν μεγαλύτερο για να εκμεταλλευτείς την παράλληλη λειτουργία των σκληρών. 

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  21-06-2010, 12:47 59233 σε απάντηση της 59232

    Απ: datafiles

    Πιστεύω καλύτερα να ξεκινήσεις από εδώ:

    http://content.dell.com/us/en/highered/d/business~solutions~whitepapers~en/Documents~Deploying_SQL05_on_Windows_Server_2003.pdf.aspx

     


    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems