Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

File size limit

Συζητήσεις για την τοπική βάση δεδομένων Access της Microsoft

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
papas2
Δημοσιεύσεις: 59
Εγγραφή: 15 Μάιος 2004 18:16

File size limit

Δημοσίευση από papas2 » 30 Οκτ 2007 12:02

Ξερει κανεις αν και πως μπορω να ξεπερασω το οριο των 2GB στην Access?.Υπαρχει καμια αλλη desltop βαση να το κανει?.Δοκιμασα Sql server,Mysql,Sqlite αλλα ηταν πολυ αργες για την εφαρμογη που θελω.Καπου διαβασα οτι γινεται με συνδεωμενους πινακες αλλα δε καταλαβα πως γινεται.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

File size limit

Δημοσίευση από dva_dev » 30 Οκτ 2007 17:09

Αν το πρόβλημα σου είναι σχετικό και με τα προηγούμενα post που έχεις κάνει, τότε να έχεις υπ' όψην σου ότι κάτι τέτοιο είναι προσωρινή λύση. Σύντομα θα ξαναέχεις πρόβλημα.

Το να χρησιμοποιήσεις συδεδεμένους πίνακες σημαίνει ότι έχεις τους πίνακες σου σε τουλάχιστον 2 διαφορετικές βάσεις (τουλάχιστον 2 αρχεία mdb ή mdb + sql server/mysql/κ.λπ.)
Στο πρώτο (A.MDB) έχεις κάποιους πίνακες (table1, table2)
Στο δεύτερο (B.mdb) έχεις κάποιους άλλους (table3, table4)

Εσύ θέλεις να βλέπεις και τους 4 πίνακες οπότε μπορείς να πάς στο A.MDB και να συνδέσεις (link όχι import) και τους πίνακες του B.MDB ώστε να μπορείς να κάνεις insert/update/delete και σε αυτούς.
Τα δεδομένα για τον πίνακα table3, table4 θα αποθηκεύονται στο B.MDB και εσύ θα μπορείς να τα βλέπεις από το A.MDB (αν δεν αποθηκεύονται στο B.mdb αλλά στο A.mdb έκανες import και όχι link, σβήστους και ξανακάντους link).

Αν χρειαστεί να κάνεις αλλαγή στα πεδία των table3, table4 θα πρέπει να πας να το κάνεις στο B.MDB και στο A.MDB μετά να κάνεις επιδιόρθωση των Linked tables (ή τα σβήνεις και τα ξανακάνεις link).

linked μπορείς να έχεις μόνο πίνακες, όχι queries/modules/forms/κ.λπ.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

File size limit

Δημοσίευση από cherouvim » 30 Οκτ 2007 17:25

papas2 έγραψε:Δοκιμασα Sql server,Mysql,Sqlite αλλα ηταν πολυ αργες για την εφαρμογη που θελω.
Μπορείς να μας δώσεις παραπάνω πληροφορίες για την εφαρμογή σου;
Με πιο τρόπο ήταν αργός ο SQL Server και η MySQL;

papas2
Δημοσιεύσεις: 59
Εγγραφή: 15 Μάιος 2004 18:16

File size limit

Δημοσίευση από papas2 » 31 Οκτ 2007 10:38

Ευχαριστω για το ενδιαφερον.Παρατηρω τα εξης:
Η εφαρμογη μου αφορα τη ληψη καταγραφη και επεξεργασια σηματων που λαμβανονται απο συσκευες που μετρουν θερμοκρασιες.Ειναι γραμμενη σε VB6.Λογω του υψηλου αριθμου καταγραφων με ενδιαφερει ,σε μια βαση δεδομενων,η ταχυτητα παρα οτιδηποτε αλλο.Τα πειραματα που εκαναν εδειξαν:

1)MSAccess2000 118 records/sec SqlServer2000 21r/s Mysql 28r/s.Λαμβανω περι τα 12 σηματα/sec.Επομενως....

2)Η εφαρμογη χρησιμοποιει DAO Controls για τη συνδεση για να μετραει ανα 1 sec την ποσοτητα καποιων δεδομενων που πληρουν καποια χαρακτηριστικα με Select count(Field1) κλπ..Υπαρχουν 6 τετοια σε μια φορμα.
Στην MSAccess2000 μετρουν μια χαρα χωρις προβληματα και το βασικο ειναι οτι δειχνουν να λειτουργουν Παραλληλα.
Στους SQL Servers ομως ησυνδεση πρεπει να γινει με ADO controls.Αυτα δειχνουν οτι λειτουργουν σειριακα,δηλ. οταν καλει το ενα τον SQL Server τα υπολοιπα παγωνουν μεχρι να επιστραφουν δεδομενα στο πρωτο,μετα αρχιζει το δευτερο κοκ..Το τελικο αποτελεσμα ειναι να δουλευει η εφαρμογη σε slow motion οπου ο χρηστης πρεπει να περιμενει να περιμενει μπας και βρει κενο χρονο για να μετακινηθει απο εγγραφη σε εγγραφη.

3)Σχετικα με το Post του dva_dev :Με επεισες οτι δε γινεται γιατι χρειαζομαι αναλογια ενα προς ενα.Δηλ η εφαρμογη χρησιμοποιει το table1 της A.MDB.Αν το κανω link με το table1 της B.mdb παλι αυτο θα εχει οριο 2 gb.Εγω θελω να κανω link το table1 της A.MDB με το table1 της B.mdb αλλα και με το table1 της C.mdb.Οποτε 2 gb απο την B.mdb και 2 gb απο την C.mdb συνολο 4 gb .Αλλα γινεται κατι τετοιο?.Δοκιμασα με union αλλα η ταχυτητα ηταν απελπιστικα αργη.

4)Μπορει να γινει συσχετιση πινακων μεσα στην ιδια τη βαση?.Δηλ. το table1 να αποτελειται απο το table2 και το table3 οποτε αυτα τα δυο να τα περνω απο δυο διαφορετικες βασεις?. Χωρις να χρησιμοποιησω ομως Inner Join giati τοτε ειναι επισης αργο.

5) Μπορω τουλαχιστον να εχω τους indexes του table1 της A.MDB στο table1 της B.mdb ωστε να κερδισω χορo?.

Programmer
Δημοσιεύσεις: 67
Εγγραφή: 22 Σεπ 2007 06:55

File size limit

Δημοσίευση από Programmer » 04 Νοέμ 2007 12:11

αν σου κάνει μπορέις να κάνεις το εξής.
Μόλις γεμίζουν οι πίνακες σου με δεδομένα να τους σώζεις και να τους αδειάζεις...
Μετά όταν χρειάζεζεσαι τα διαγραμμένα δεδομένα να τα παίρνεις από το αρχέιο που τα αποθήκευσες. Γίνεται αλλά τωρα δεν θυμάμαι πως ακριβώς...

Άβαταρ μέλους
georiege
Δημοσιεύσεις: 79
Εγγραφή: 09 Ιούλ 2007 11:29
Επικοινωνία:

File size limit

Δημοσίευση από georiege » 06 Νοέμ 2007 19:50

Κατά την γνώμη μου πιστεύω ότι ισχύουν τα παρακάτω :

Πρώτα από όλα η Access δεν έχει φτιαχτεί για τόσο μεγάλο όγκο δεδομένων.
Η Access αρχίζει και φτάνει στα όρια της όταν μιλάμε για αρχείο πάνω από 1GB.
Πόσο μάλλον όταν μιλάμε για αρχείο 2 GB, όπως στη περίπτωση σου . Εκεί δεν τολμώ να προσπαθήσω να τρέξω query και να περιμένω να πάρω αποτέλεσμα σε εύλογο χρονικό διάστημα.

Όταν πρόκειται για εφαρμογές με τόσο μεγάλο όγκο δεδομένων και με απαιτήσεις σε ταχύτητα , τότε είναι αναγκαία η λύση του SQL Server. Αναμφισβήτητα ο SQL Server είναι αμέτρητες φορές ποιο γρήγορος από την Access και φυσικά μπορεί να διαχειριστεί όγκο δεδομένων πολλών gigabytes. Αυτά όσο αφορά το θεωρητικό μέρος.

Στην πράξη τώρα.
Μέσα από την Access μην σκεφτείς να συνδέσεις πίνακες με SQL Server γιατί με τόσο μεγάλο όγκο δεδομένων θα σέρνετε. Το καλύτερο που έχεις να κανείς είναι μέσα από τις φόρμες που δουλεύεις στην Access να χρησιμοποιήσεις σε Visual basic το αντικείμενο ADODB.

Θα δεις τεραστία διάφορα στην ταχύτητα .

Εάν θέλεις προγραμματιστικά μπορώ να σου δώσω μερικά παραδείγματα για το πως να τραβήξεις data από SQL server μέσα από την Access.
I do this for Aiur

http://www.aspx.gr

papas2
Δημοσιεύσεις: 59
Εγγραφή: 15 Μάιος 2004 18:16

File size limit

Δημοσίευση από papas2 » 09 Νοέμ 2007 15:06

Η Access δυστηχως ειναι η πιο γρηγορη βαση που γνωριζω αυτη τη στιγμη αλλα εχει το προβλημα του οριου στο αρχειο της.
Καντε ενα πειραμα.Φτιαξτε μια βαση με ενα Table kai ena Field σε αυτο.Γεμιστετο με ας πουμε 3.000.000 εγγραφες με π.χ. τυχαιους αριθμους.Δεστε ποσο χρονο θα χρειαστει για να τις παρει και ποσο θα χρειαστει ο SQL Server.Φτιαξτε Queries και χρονομετρηστε τα.Θα εκπλαγητε απο την ταχυτητα της Access.
Το ADODB ειναι υπερβολικα αργο σε σχεση με το DAO.To εχω δοκιμασει και στις δυο βασεις και βλεπω οτι ειναι καπου 10 φορες πιο αργο.Εξαλλου διαφερει η λογικη του.Αν θελεις λιγα αποτελεσματα απο πολλα δεδομενα και τα δυο εχουν περιπου ιδια ταχυτητα, αλλα αν θες πολλα απο πολλα π.χ.: 100.000 εγγραφες απο τις 3.000.000 προλαβαινεις να κανεις και καφε μεχρι να εχεις το αποτελεσμα.

Άβαταρ μέλους
georiege
Δημοσιεύσεις: 79
Εγγραφή: 09 Ιούλ 2007 11:29
Επικοινωνία:

File size limit

Δημοσίευση από georiege » 09 Νοέμ 2007 16:34

Μήπως στον SQL server δεν έχεις ενεργοποιήσει τα indexes στον μεγάλο πίνακα από όπου τραβάς τα δεδομένα ?
Η πραγματική δύναμη του SQL server, όταν πρόκειται για μεγάλους πίνακες φανερώνετε μόνο όταν ενεργοποιήσεις τα indexes. Ουσιαστικά όταν έχεις ενεργοποιημένα τα indexes , ο SQL σου φέρνει τα αποτελέσματα , χωρίς να ψάξει ολόκληρο τον πίνακα , αυξάνοντας δραματικά την ταχύτητα του query. Αυτό βέβαια έχει σαν κόστος, την αύξηση του μεγέθους της βάσης και την λίγο μικρότερη απόκριση όταν κάνεις insert.

Μπορείς να ενεργοποιήσεις τα indexes για τον πίνακα που σε ενδιαφέρει τρέχοντας τον Index tuning wizard. Μπορείς να το βρεις στον Enterprise Manager και έχοντας επιλέξει τον πίνακα που σε ενδιαφέρει , επιλέγεις από επάνω από το menu Tools , το wizards. Μέσα στους wizards πήγαινε στη κατηγορία Management και εκεί θα βρεις τον Index tuning wizard .

Από ποιο πριν πρέπει να έχεις φτιάξει ένα tracer του SQL server σε ώρα αιχμής , γιατί θα στο ζητήσει ο Index tuning wizard. Αυτό γίνετε με το πρόγραμμα Profiler.
Θα πρέπει να τρέξεις την εφαρμογή σου , έτσι ώστε ο SQL να εκτελέσει το query που είναι αργό και καθυστερεί να φέρει αποτέλεσμα. Εκείνη την στιγμή πρέπει να καταγράψεις την όλη διαδικασία με το πρόγραμμα Profiler και μετά να σώσεις το trace. Αυτό το trace θα χρησιμοποιήσει ο Index tuning wizard για να το αναλύσει και να σου προσθέσει τα κατάλληλα indexes στον πίνακα.


Κάντο και θα δεις τεράστια διαφορά στην ταχύτητα , σε σχέση με την Access !
I do this for Aiur

http://www.aspx.gr

papas2
Δημοσιεύσεις: 59
Εγγραφή: 15 Μάιος 2004 18:16

File size limit

Δημοσίευση από papas2 » 13 Νοέμ 2007 10:42

Οσο αναφορα τα indexes σε καθε order by ή Where εχω index,δεν αρκει αυτο?.
Παντως παρατηρησα τελικα κατι.Ξεμενω απο μνημη.Οταν ανοιγω τη βαση μενω με γυρω στα 2ΜΒ φυσικης μνημης.Εχω 1 Giga και τη θεωρουσα αρκετη.Μηπως απο εκει προερχονται τα προβληματα.Παρόλη την εληψη μνημης ομως ολα λειτουργουν,σετω και αργα, και τιποτε δεν κρασαρει.
Αν ειναι ετσι ποση μνημη θα ηταν ιδανικη?.

Άβαταρ μέλους
georiege
Δημοσιεύσεις: 79
Εγγραφή: 09 Ιούλ 2007 11:29
Επικοινωνία:

File size limit

Δημοσίευση από georiege » 13 Νοέμ 2007 20:45

Όσο μνήμη και να βάλεις σε μηχάνημα που τρέχει SQL server θα την γεμίσει το πολύ σε 1-2 μέρες λειτουργίας. Ο SQL έχει την τάση να cach-άρει τα πάντα, οπότε όση μνήμη και να προσθέσεις στο PC , ο SQL θα την γεμίσει όλη για να cach-άρει τα αποτελέσματα από τα queries.
Πάντως πιστεύω ότι με το μέγεθος της database σου , μάλλον θα χρειαζόσουνα 2GB μνήμη :)
I do this for Aiur

http://www.aspx.gr

Απάντηση

Επιστροφή στο “MS Access”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης