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

 

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

Access και πολλές εγγραφές

Îåêßíçóå áðü ôï ìÝëïò BasiliZ. Τελευταία δημοσίευση από το μέλος BasiliZ στις 02-07-2005, 21:54. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  02-07-2005, 00:03 3266

    Access και πολλές εγγραφές

    Συνάδελφοι ταλαιπωρημένοι καλησπέρα. Καινούριος στο forum και με ένα προβληματάκι που με παιδεύει. Έχω ένα CSP πρόβλημα και χρησιμοποιώ το Com object του ILOG για να παράγω λύσεις. Δεν γνωρίζω αρχικά το πλήθος των λύσεων ούτε μπορώ να το προβλέψω. Οι λύσεις από το ILOG υπολογίζονται σχετικά γρήγορα παρόλο που τις περισσότερες φορές ξεπερνάνε τις 20.000 και 30.000. το πρόβλημα είναι ότι αυτές οι λύσεις πρέπει να αποθηκευτούν σε μια (δυστυχώς)ACCESS βάση. Η κάθε λύση αποτελείτε συνήθως από 7 με 8 αντικείμενα και το κάθε αντικείμενο από 10-20 properties. Οπότε οι εγγραφές που γίνονται στους αντίστοιχους πίνακες στην βάση είναι εξαντλητικές. Το ερώτημα είναι το εξής:. ένας τρόπος, δεδομένου το ότι είναι άγνωστος ο αριθμός των λύσεων θα ήταν κάθε λύση να γράφετε κατευθείαν στην βάση. H εγράφη τις λύσης στην βάση διαρκεί πολύ περισσότερο από τον υπολογισμό μιας άλλης λύσης και καθυστερεί την όλη διαδικασία. Τρόπος #2. αν μαζέψω όλες τις λύσεις για να τις περάσω στο τέλος κινδυνεύω να σπαταλήσω όλη την μνήμη (20.000 λύσεις ένα απλό πρόβλημα). Τρόπος #3 παράλληλη εγγραφή με multithreading... εδώ καμία βοήθεια; Το ILOG μπορεί να τα βάλει και σε XML καμιά ιδέα; Κανένα Tip για να πετύχω καλύτερη ταχύτητα κατά την εγγραφή στην Access; sorry για το μεγάλο post, ευχαριστώ προκαταβολικά.

  •  02-07-2005, 13:47 3268 σε απάντηση της 3266

    Re: Access και πολλές εγγραφές

    Χμμμ... Τι να σου κάνει το εργαλείο... Αυτά τα specs είναι πέρα από τα όριά του... Αφού όμως το dll βγάζει XML file, γιατί δεν υλοποιείς κάποια ασύγχρονη λύση; Μιας και το ADO.NET χειρίζεται ωραία-ωραία τα XML data, μπορείς να φτιάξεις έναν loader που θα κάνει digest το XML αρχείο και θα το ρίχνει με την ησυχία του στην db της Access... Θες να το πας παραπέρα; Βάλε και ένα FileSystemWatcher να παρακολουθεί πότε παράγονται XML αρχεία, να βάζει το path reference τους σε ένα queue και να το επεξεργάζεται. Κατόπιν, θα κάνει delete το αρχείο και ...καθάρισες. Ως λύση έχει περιορισμούς, πχ όσο πιο υψηλό είναι το utilization τόσο μικρότερη διαθεσιμότητα θα έχουν τα data, δηλαδή τόσο μεγαλύτερος χρόνος θα μεσολαβεί μέχρι να τα δεις στη βάση, αλλά δεν μου έρχεται κάτι καλύτερο στο μυαλό... Από την άλλη μεριά, έχεις κάνει υπολογισμό με αυτόν τον όγκο δεδομένων πότε περίπου θα φτάσεις το 2GB data που (θεωρητικά και στην καλύτερη περίπτωση) χωράει η βάση της Access; Τώρα που το σκέφτομαι, με αυτή τη λύση γλυτώνεις το multithreading αφού μπορείς να χρησιμοποιήσεις δύο ξεχωριστά processes...
    Vir prudens non contra ventum mingit
  •  02-07-2005, 21:54 3278 σε απάντηση της 3268

    Re: Access και πολλές εγγραφές

    Αυτό με τα 2GB δεν το είχα υπολογίσει καθόλου αν και το είχα προβλέψει κάποια στιγμή στο παρελθόν. Τι να τους κάνεις ώμος που το θέλουν σε Access.... Ελπίζω τουλάχιστόν το ένα πρόβλημα να μην ξεπερνάει αυτό το μέγεθος και μετά από κάποιο ξεκαθάρισμα να βάζουμε μόνο κάποιες λύσεις σε μία τελική βάση (ελπίζω όχι σε Access). Πολλή καλή η ιδέα με τον FileSystemWatcher και το XML queue, νομίζω είναι αυτό ακριβός που έψαχνα. Να δούμε βέβαια μήπως δημιουργηθεί κανένα πρόβλημα αργότερα όπως είπες με την διαθεσιμότητα. Σε ευχαριστώ πολύ.

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