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

 

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

Τι είναι καλύτερο; Ένα μεγάλο dataset ή πολλά μικρά;

Îåêßíçóå áðü ôï ìÝëïò skepsis. Τελευταία δημοσίευση από το μέλος skepsis στις 23-08-2009, 18:44. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  19-08-2009, 18:17 53149

    Τι είναι καλύτερο; Ένα μεγάλο dataset ή πολλά μικρά;

    Καλησπέρα σε όλους,

    γράφω μία εφαρμογή σε VS2008 και χρησιμοποιώ SQL2005. Οι πίνακες στην βάση αρκετοί με πρόβλεψη να αυξηθούν. Η τακτική μέχρι στιγμής που χρησιμοποιώ, καθότι γύρισα μόλις σε C# ύστερα απο 12 χρόνια σε Delphi, είναι ένα dataset στο οποίο έχω τα πάντα (tables, relations etc). Μήπως θα ήταν καλύτερο να κάνω πολλά και μικρά;;;;

    Ευχαριστώ εκ των προτέρων

  •  20-08-2009, 17:53 53184 σε απάντηση της 53149

    Απ: Τι είναι καλύτερο; Ένα μεγάλο dataset ή πολλά μικρά;

    Εννοείς από άποψη απόδοσης;Ο πρώτος και βασικότερος κανόνας είναι να ελαχιστοποιήσεις τον όγκο των δεδομένων σε αυτά και μόνο που θα επεξεργαστείς.Το ένα και μοναδικό dataset δεν πρέπει να περιέχει τα πάντα αλλά μόνο αυτά τα δεδομένα που θα προσθέσεις ή τροποποιήσεις όσο αυτό είναι δυνατό,διαφορετικά η σύγκριση ανάμεσα στις δύο προσεγγίσεις που ανέφερες είναι άνιση.

    Με δεδομένο λοιπόν ότι κρατάς τα δεδομένα που χρειάζεσαι και μόνο το αν θα τα κρατήσεις σε ένα dataset ή πολλά δεν έχει μεγάλη διαφορά στην απόδοση.Πολλά datasets σημαίνουν πολλά queries ενώ ένα dataset ένα αλλά πιο πολύπλοκο query.Καλύτερο είναι κατά τη γνώμη μου να αφήνεις τις ανάγκες της εφαρμογής να υπαγορεύουν τον αριθμό των datasets παρά να τα διαιρείς στοχεύοντας σε μια διαφορά απόδοσης.Το να αποφύγεις υπερπολύπλοκα queries-όταν αυτά μπορούν να αντικατασταθούν από απλούστερα- ,το να ζητάς μόνο τα δεδομένα που χρειάζεσαι και να στέλνεις πίσω στη βάση μόνο τα δεδομένα που άλλαξες (η GetChanges βοηθάει πολύ) θα σου δώσουν καλύτερα αποτελέσματα.

  •  20-08-2009, 19:42 53196 σε απάντηση της 53149

    Απ: Τι είναι καλύτερο; Ένα μεγάλο dataset ή πολλά μικρά;

    Χμ... το πλήθος των δεδομένων δεν έχει σχέση με τον αριθμό των DataSets που θα δημιουργήσεις. Ο μόνος τρόπος για να "ρυθμίσεις" τον αριθμό των εγγραφών που σου "έρχονται" από τη βάση είναι να κάνεις το κατάλληλο parametrized query. Ένα μεγάλο DataSet μπορεί να σου δημιουργήσει προβλήματα από την άποψη ότι θα είναι χαοτικό. Από την άλλη πάλι, είναι αφελές να έχεις πάρα πολλά datasets (π.χ. κάθε table και ξεχωριστό dataset). Σε μια βάση δεδομένων δε συνδέονται όλοι οι πίνακες μεταξύ τους με relationships, εκτός και αν πρόκειται για πολύ μικρή βάση. Ακόμα, κάποιος αριθμός πινάκων μπορεί να χρησιμοποιείται μόνο και μόνο για να εξυπηρετεί τις ανάγκες παραμετροποίησης μιας εφαρμογής.

    Προσωπικά, για κάθε "υπο-μοντέλο" πινάκων δημιουργώ ξεχωριστό dataset, έτσι ώστε να έχω μαζί τους πίνακες που πρέπει να είναι μαζί. Επίσης, τους πίνακες στους οποίους αποθηκεύω παραμέτρους, δημιουργώ ξεωριστό(-α) dataset(-s). Τα views και τα όποια stored procedures επιστρέφουν δεδομένα, τα ομαδοποιώ και αυτά και δημιουργώ τα αντίστοιχα datasets. Έτσι δουλεύω πιο εύκολα και πιο αποδοτικά, χωρίς να ψάχνομαι σε ένα τεράστιο σχήμα. Φροντίζω, όμως, ο αριθμός των datasets να είναι ο μικρότερος δυνατός.

    Το τι θα πάει μαζί και τι χώρια εξαρτάται καταρχάς από την ίδια την εφαρμογή, αλλά και από την εμπειρία και τον τρόπο εργασίας του καθενός. Κάποιος άλλος μπορεί να διαφωνήσει μαζί μου και να σου δώσει άλλες κατευθύνσεις. Όμως, μιας και ξεκινάς τώρα, γιατί δεν καταπιάνεσαι με το Entity Framework; Είναι ευκολότερο να διαχειρίζεσαι business entities από DataTables.


    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  21-08-2009, 11:15 53203 σε απάντηση της 53196

    Απ: Τι είναι καλύτερο; Ένα μεγάλο dataset ή πολλά μικρά;

    Να πω και εγώ, χωρίς να διατείνομαι βέβαια οτι έχω φοβερή εμπειρία στο θέμα των datasets, οτι όποτε έχω χρησιμοποιήσει (typed) datasets, έχω υιοθετήσει την ίδια προσέγγιση, δηλαδή "μικρά" datasets που ορίζουν ακριβώς το υποσύνολο των δεδομένων με το οποίο θέλω να δουλέψω. Επειδή τα relations μεταξύ των διαφόρων πινάκων της βάσης μπορεί να είναι σύνθετα, μπορεί ορισμένες φορές να υπάρχει duplication, δηλ. ένα database table να είναι αναγκαστικό να γίνει map σε περισσότερα από ένα datasets, και αυτό είναι το tradeoff που ίσως μπορεί κανείς να επισημάνει. Από την άλλη μεριά, βλέποντας το typed dataset σαν ένα εν δυνάμει container δεδομένων, ο οποίος κάθε φορά γεμίζει μόνο με τα data που θέλουμε, το "σπάσιμο" σε μικρότερα κομμάτια είναι περισσότερο εννοιολογικό και στόχο έχει να μας βοηθά να οργανωνόμαστε καλύτερα, παρά απαραίτητο λειτουργικά.


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  21-08-2009, 23:00 53219 σε απάντηση της 53203

    Απ: Τι είναι καλύτερο; Ένα μεγάλο dataset ή πολλά μικρά;

    cap:
    Επειδή τα relations μεταξύ των διαφόρων πινάκων της βάσης μπορεί να είναι σύνθετα, μπορεί ορισμένες φορές να υπάρχει duplication, δηλ. ένα database table να είναι αναγκαστικό να γίνει map σε περισσότερα από ένα datasets, και αυτό είναι το tradeoff που ίσως μπορεί κανείς να επισημάνει.

    Αυτό όντως είναι ένα πρόβλημα που μου έχει προκύψει κάμποσες φορές. Δε νομίζω να υπάρχει ουσιαστικός τρόπος αποφυγής του, παρά μόνο μετριασμού του, ειδικότερα αν η βάση είναι αρκετά μεγάλη (πολλοί πίνακες και relationships). Εκτός κι αν δεν κάνω κάτι σωστά στο design...

    Πάντως η γνώμη μου είναι ότι τα DataSets αποτελούν βασική γνώση. Είναι εξαιρετικά "data containers" και αυτός είναι ένας λόγος για τον οποίο δε μπορεί να τα αγνοήσει κανείς. Μπορούν να χρησιμοποιηθούν για in memory user input, ακόμα κι αν δεν υπάρχει σύνδεσή τους με κάποιο table στη βάση. Δυστυχώς, και με μια δόση χιούμορ, αυτό που χρειάζονται είναι έναν Object To Dataset Relational Mapper για να γίνουν λειτουργικά!!


    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  22-08-2009, 16:27 53227 σε απάντηση της 53219

    Απ: Τι είναι καλύτερο; Ένα μεγάλο dataset ή πολλά μικρά;

    Markos:

     Δυστυχώς, και με μια δόση χιούμορ, αυτό που χρειάζονται είναι έναν Object To Dataset Relational Mapper για να γίνουν λειτουργικά!!


    Εμ ναι. Αν το δούμε και αυτό...:)

    Βασικά τα datasets (typed) εφευρέθηκαν για να ... γεφυρώσουν αρχικά το κενό ανάμεσα στα παλιά ado recordsets (untyped) και στα περίπλοκα ORMs που κυκλοφορούσαν από την άλλη πλευρά (java-based κυρίως). Ηταν (και είναι, υπό προϋποθέσεις) ευκολόχρηστα data containers τα οποία με λίγη φαντασία μπορούν να χρησιμοποιηθούν είτε ως data carriers είτε ως ακόμα και business objects (φευ!). Από την άλλη, αν πραγματικά έχει κάποιος την ανάγκη για orm, καλό είναι να...πάει σε ένα ORM! Ετσι κι αλλιώς υπάρχουν τόσα και τόσα πιά...


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  23-08-2009, 18:44 53239 σε απάντηση της 53149

    Απ: Τι είναι καλύτερο; Ένα μεγάλο dataset ή πολλά μικρά;

    Ας ανακεφαλαιώσουμε λοιπόν....

    Ένα μεγάλο dataset ή πολλά μικρά, είναι "άσχετο" με την απόδοση της εφαρμογής. Απλά είναι καθαρά θέμα οργάνωσης και μεθοδικότητας του καθένα. Συμφωνείτε;;..;;

    Ευχαριστώ πολύ φίλοι μου....

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