ACC2000: Βελτιστοποίηση για επιδόσεις προγράμματος-πελάτη/διακομιστή

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 208858 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Αυτό το άρθρο, στο παρελθόν ήταν δημοσιευμένο με αριθμό GR208858
Για προχωρημένους: Απαιτεί ειδικές γνώσεις κωδικοποίησης, διαλειτουργικότητας και περιβάλλοντος για πολλούς χρήστες.

Αυτό το άρθρο αφορά μόνο βάσεις δεδομένων της Microsoft Access (.mdb).

Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο περιέχει συμβουλές για τη βελτιστοποίηση των επιδόσεων των αρχείων προέλευσης δεδομένων Open Database Connectivity (ODBC) στη Microsoft Access.

ΣΗΜΕΙΩΣΗ: Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με περιβάλλοντα και αρχιτεκτονικές προγράμματος-πελάτη/διακομιστή.

Περισσότερες πληροφορίες

Μέθοδοι πρόσβασης σε δεδομένα

Για να αποκτήσετε πρόσβαση σε δεδομένα διακομιστή με μια εφαρμογή πελάτη/διακομιστή, μπορείτε να χρησιμοποιήσετε μία ή περισσότερες από τις ακόλουθες μεθόδους:

  • Συνδεδεμένοι πίνακες και προβολές
  • Ερωτήματα διαβίβασης SQL για την αποστολή προτάσεων SQL απευθείας στο διακομιστή
  • Έργο της Access

Συνδεδεμένοι πίνακες και προβολές

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

ΣΗΜΕΙΩΣΗ: Εάν κάνετε αλλαγές σε πεδία ή ευρετήρια στο διακομιστή, πρέπει να επανασυνδέσετε τους απομακρυσμένους πίνακες στην Access.

Εκτέλεση ερωτημάτων διαβίβασης SQL

Σε πολλές εφαρμογές, μπορείτε να δημιουργήσετε ερωτήματα της Microsoft Access με βάση απομακρυσμένους πίνακες και μπορείτε επίσης να δημιουργήσετε ερωτήματα διαβίβασης SQL. Τα ερωτήματα διαβίβασης προσφέρουν τα εξής πλεονεκτήματα:
  • Η Microsoft Access δεν μεταγλωττίζει τα ερωτήματα διαβίβασης. Αποστέλλει το ερώτημα κατευθείαν στο διακομιστή ODBC. Αυτή η ενέργεια επιταχύνει την εφαρμογή.
  • Η Access αποστέλλει το ερώτημα διαβίβασης στο διακομιστή ακριβώς όπως το πληκτρολογήσατε. Επομένως, γίνεται περισσότερη επεξεργασία στο διακομιστή και ανταλλάσσονται λιγότερα δεδομένα μέσω δικτύου.
  • Οι φόρμες, οι εκθέσεις και τα ερωτήματα της Microsoft Access είναι δυνατό να βασιστούν σε ερωτήματα διαβίβασης με τη χρήση συνδεδεμένων πινάκων ODBC.
  • Μπορείτε να χρησιμοποιήσετε λειτουργίες του SQL Server (όπως αποθηκευμένες διαδικασίες και εγγενείς λειτουργίες που βασίζονται σε διακομιστή) που δεν έχουν ισοδύναμες σε κώδικα.
  • Τα ερωτήματα ενέργειας διαβίβασης για ενημέρωση, διαγραφή και προσάρτηση είναι πολύ ταχύτερα από τα ερωτήματα ενέργειας που βασίζονται σε συνδεδεμένους απομακρυσμένους πίνακες, ιδίως όταν επηρεάζονται πολλές εγγραφές.
Τα ερωτήματα διαβίβασης έχουν τα εξής μειονεκτήματα:
  • Ένα ερώτημα διαβίβασης SQL επιστρέφει πάντοτε ένα στιγμιότυπο το οποίο δεν είναι δυνατό να ενημερωθεί. Ένα ερώτημα της Microsoft Access επιστρέφει συνήθως ένα δυναμοσύνολο (dynaset) που απεικονίζει τις αλλαγές των άλλων χρηστών και το οποίο είναι δυνατό να ενημερωθεί.
  • Απαιτείται να πληκτρολογήσετε τις εντολές κατευθείαν στο παράθυρο ερωτήματος διαβίβασης SQL, με τη σύνταξη που απαιτεί ο διακομιστής σας. Δεν μπορείτε να σχεδιάσετε ερωτήματα διαβίβασης στο πλέγμα σχεδίασης ερωτήματος.
  • Εάν απαιτείται μια παράμετρος για ένα ερώτημα διαβίβασης, πρέπει να εκτελέσετε το ερώτημα σε κώδικα και να τροποποιήσετε την ιδιότητα SQL του ερωτήματος. Για πρόσθετες πληροφορίες και ένα παράδειγμα του τρόπου τροποποίησης της ιδιότητας SQL, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
    232493 ACC2000: Τρόπος προσομοίωσης παραμέτρων σε ερώτημα διαβίβασης SQL

Αίτηση λιγότερων δεδομένων από το διακομιστή

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

Μειώστε τον αριθμό των συνδεδεμένων στοιχείων ελέγχου, όπως τα πλαίσια κειμένου, τα σύνθετα πλαίσια, τα πλαίσια λίστας και τις δευτερεύουσες φόρμες. Όταν ανοίγει μια φόρμα, κάθε ένα από αυτά τα στοιχεία ελέγχου αποστέλλει ένα ξεχωριστό ερώτημα στο διακομιστή.

Εάν οι συνδεδεμένοι πίνακες ODBC έχουν πεδία τύπου "Υπόμνημα" (Memo) ή "Αντικείμενο OLE" (OLE object), μπορείτε να ορίσετε την ιδιότητα Ορατό (Visible) των πεδίων στην επιλογή Όχι (No) και να προσθέσετε ένα κουμπί εναλλαγής για να ορίσετε την ιδιότητα Ορατό (Visible) στην επιλογή Ναι (Yes) έτσι, ώστε οι χρήστες να μπορούν να επιλέξουν να το προβάλουν.

Ορισμένοι συνδεδεμένοι πίνακες δεν αλλάζουν συχνά. Για παράδειγμα, ένας πίνακας που περιέχει τα ονόματα και τις συντμήσεις των 50 Πολιτειών της Αμερικής δεν αλλάζει συχνά. Μπορείτε να επιταχύνετε τη φόρτωση φορμών και να μειώσετε το φόρτο εργασίας του διακομιστή αποθηκεύοντας ένα τοπικό αντίγραφο αυτών των πινάκων. Μπορείτε επίσης να παράσχετε έναν τρόπο για την ενημέρωση του τοπικού αντιγράφου με πιο πρόσφατα δεδομένα από το διακομιστή.

Βελτιστοποίηση ερωτημάτων

Η κύρια μέθοδος για τη βελτιστοποίηση των ερωτημάτων (μετά την προσθήκη κατάλληλων ευρετηρίων στο διακομιστή) είναι να εξασφαλίσετε ότι η επεξεργασία θα γίνεται στο διακομιστή. Θα πρέπει να αποφύγετε λειτουργικότητα που δεν υποστηρίζεται από το διακομιστή, όπως λειτουργίες της Microsoft Access ή λειτουργίες που ορίζονται από το χρήστη. Για λεπτομερείς πληροφορίες σχετικά με τα στοιχεία των οποίων η επεξεργασία πρέπει να γίνεται τοπικά, ανατρέξτε στη λευκή βίβλο Jet Database Engine ODBC Connectivity (για περισσότερες πληροφορίες σχετικά με αυτήν τη λευκή βίβλο, ανατρέξτε στην ενότητα "Λευκή βίβλος Jet Database Engine ODBC Connectivity" παρακάτω σε αυτό το άρθρο).

Για να δείτε τη δήλωση Select που αποστέλλεται στο διακομιστή, μπορείτε να ορίσετε τη ρύθμιση TraceSQLMode. Για να ορίσετε αυτήν τη ρύθμιση, ακολουθήστε τα εξής βήματα:
  1. Κάντε κλικ στο μενού Έναρξη (Start) και στη συνέχεια κάντε κλικ στην επιλογή Εκτέλεση (Run).
  2. Στο πλαίσιο Άνοιγμα (Open), πληκτρολογήστε Regedit.
  3. Αναπτύξτε το δευτερεύον δέντρο HKEY_LOCAL_MACHINE ώσπου να εντοπίσετε το δευτερεύον κλειδί SOFTWARE\Microsoft\Jet\4.0\Engines.
  4. Κάντε κλικ στο στοιχείο Engines.
  5. Εάν η τιμή TraceSQLMode δεν εμφανίζεται στο δεξιό τμήμα παραθύρου, κάντε κλικ στην εντολή Δημιουργία (New) από το μενού Επεξεργασία (Edit) και κατόπιν κάντε κλικ στην εντολή Τιμή DWORD (DWORD Value).
  6. Στην περιοχή "Όνομα" (Name) στο δεξιό τμήμα παραθύρου, πληκτρολογήστε TraceSQLMode για τη νέα τιμή.
  7. Με τη νέα τιμή επιλεγμένη, κάντε κλικ στην εντολή Τροποποίηση (Modify) από το μενού Επεξεργασία (Edit).
  8. Στην περιοχή Βάση (Base), επιλέξτε το στοιχείο Δεκαδικός (Decimal). Στο πλαίσιο Δεδομένα τιμής (Value data), πληκτρολογήστε 1 και κατόπιν κάντε κλικ στο κουμπί OK.
Για περισσότερες πληροφορίες σχετικά με τη ρύθμιση TraceSQLMode, κάντε κλικ στην εντολή "Βοήθεια για τη Microsoft Access" (Microsoft Access Help) από το μενού "Βοήθεια" (Help), πληκτρολογήστε τη λέξη "TraceSQLMode" στην καρτέλα "Αναζήτηση" της Βοήθειας (Office Assistant ή καρτέλα Answer Wizard) και κατόπιν κάντε κλικ στο κουμπί "Λίστα θεμάτων" (Search) για να προβάλετε το θέμα.

Ρύθμιση TryJetAuth

Η ρύθμιση TryJetAuth ελέγχει αν η Microsoft Access θα προσπαθεί πρώτα να συνδεθεί στο διακομιστή σας χρησιμοποιώντας το αναγνωριστικό σύνδεσης και τον κωδικό πρόσβασης της Microsoft Access. (Από προεπιλογή, το αναγνωριστικό σύνδεσης της Microsoft Access είναι "admin" και ο κωδικός πρόσβασης είναι κενός). Εάν αυτή η προσπάθεια αποτύχει, η Microsoft Access σας ζητά αναγνωριστικό σύνδεσης και κωδικό πρόσβασης. Εάν δεν έχει ρυθμίσει τη Microsoft Access να χρησιμοποιεί το ίδιο αναγνωριστικό σύνδεσης και κωδικό πρόσβασης με το διακομιστή ODBC, προσθέστε τη γραμμή "TryJetAuth=0" στο κλειδί HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth του μητρώου. Αυτό αποτρέπει την προσπάθεια της Microsoft Access να συνδεθεί με εσφαλμένο αναγνωριστικό. Για να εκτελέσετε αυτήν την ενέργεια, ακολουθήστε τα εξής βήματα:
  1. Κάντε κλικ στο μενού Έναρξη (Start) και, στη συνέχεια, κάντε κλικ στην επιλογή Εκτέλεση (Run).
  2. Στο πλαίσιο Άνοιγμα (Open), πληκτρολογήστε Regedit.
  3. Εντοπίστε το δευτερεύον δέντρο HKEY_LOCAL_MACHINE.
  4. Αναπτύξτε το δευτερεύον δέντρο HKEY_LOCAL_MACHINE ώσπου να εντοπίσετε το ακόλουθο δευτερεύον κλειδί:
    SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth
  5. Κάντε κλικ στο στοιχείο Engines.
  6. Εάν η τιμή TryJetAuth δεν υπάρχει, κάντε κλικ στην εντολή Δημιουργία (New) από το μενού Επεξεργασία (Edit) και κατόπιν κάντε κλικ στην εντολή Τιμή DWORD (DWORD Value).
  7. Στην περιοχή "Όνομα" (Name) στο δεξιό τμήμα παραθύρου, πληκτρολογήστε TryJetAuth για τη νέα τιμή.
  8. Με τη νέα τιμή επιλεγμένη, κάντε κλικ στην εντολή Τροποποίηση (Modify) από το μενού Επεξεργασία (Edit).
  9. Στην περιοχή Βάση (Base), επιλέξτε το στοιχείο Δεκαδικός (Decimal). Στο πλαίσιο Δεδομένα τιμής (Value data), πληκτρολογήστε 1 και κατόπιν κάντε κλικ στο κουμπί OK.

Σημάνσεις χρόνου

Σε διακομιστές που τα υποστηρίζουν, όπως ο Microsoft SQL Server, τα πεδία σήμανσης χρόνου (timestamp) κάνουν πιο αποτελεσματική την ενημέρωση των εγγραφών. Τα πεδία σήμανσης χρόνου διατηρούνται από το διακομιστή και ενημερώνονται κάθε φορά που ενημερώνεται η εγγραφή.

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

Συναλλαγές

Εάν χρησιμοποιείτε τις συναλλαγές της Visual Basic for Applications (VBA) όταν ενημερώνετε ή εισάγετε εγγραφές σε συνδεδεμένους πίνακες, μπορείτε να βελτιώσετε τις επιδόσεις. Οι συναλλαγές δίνουν τη δυνατότητα στο μηχανισμό διαχείρισης βάσεων δεδομένων Jet να συγκεντρώνει πολλές ενημερωμένες εκδόσεις και να τις εγγράφει μαζικά. Με τον Microsoft SQL Server, περιορίστε τη διάρκεια των συναλλαγών, επειδή δημιουργούν κλειδώματα τα οποία δεν επιτρέπουν στους άλλους χρήστες να διαβάσουν δεδομένα που επηρεάζονται από την τρέχουσα συναλλαγή. Αν και μπορείτε να πραγματοποιήσετε ένθετες συναλλαγές με τη VBA, οι περισσότεροι διακομιστές δεν υποστηρίζουν τις ένθετες συναλλαγές. Η Microsoft Access αποστέλλει μόνο τη συναλλαγή πρώτου επιπέδου στο διακομιστή.

Βελτιστοποίηση ομάδων εγγραφών και κώδικα

Μπορείτε να αποθηκεύσετε όλα ή μέρος από τα δεδομένα που περιέχονται στα αντικείμενα Recordset του τύπου Dynaset στην τοπική μνήμη, ρυθμίζοντας τις ιδιότητες CacheSize και CacheStart.

Το μέγεθος της μνήμης cache μπορεί να είναι μεταξύ 5 και 1200 εγγραφών. Εάν το μέγεθος της μνήμης cache υπερβαίνει τη διαθέσιμη μνήμη, οι επιπλέον εγγραφές διοχετεύονται σε ένα προσωρινό αρχείο δίσκου. Η εφαρμογή της μεθόδου FillCache συμπληρώνει τη μνήμη cache με δεδομένα διακομιστή. Για να ανακτήσετε τη μνήμη cache, ορίστε την τιμή της ιδιότητας CacheSize σε μηδέν.

Με τις μεταβλητές Recordset, υλοποιήστε μόνο τη λειτουργικότητα που χρειάζεστε. Για παράδειγμα, προσθέστε την επιλογή dbAppendOnly με τη μέθοδο OpenRecordset, αν θέλετε μόνο να προσθέσετε νέες εγγραφές σε μια ομάδα εγγραφών. Εάν δεν είναι απαραίτητο να έχετε δυνατότητα επεξεργασίας ή ενημέρωσης, βασίστε τις ομάδες εγγραφών σας σε ερωτήματα διαβίβασης SQL. Η ταχύτερη μέθοδος για να εισαγάγετε και να ενημερώσετε εγγραφές είναι να χρησιμοποιήσετε ερωτήματα διαβίβασης SQL σε κώδικα.

Πίνακας MSysConf

Μπορείτε να δημιουργήσετε έναν πίνακα με το όνομα MSysConf στο διακομιστή σας, για να ελέγχετε τη μεταφορά εγγραφών στο παρασκήνιο (το ρυθμό με τον οποίο η Microsoft Access κάνει ανάγνωση εγγραφών από το διακομιστή κατά το χρόνο αδράνειας της σύνδεσης). Με αυτόν τον πίνακα, μπορείτε να ορίσετε τον αριθμό των γραμμών δεδομένων που θα ανακτώνται τη φορά και τον αριθμό των δευτερολέπτων καθυστέρησης ανάμεσα σε κάθε ανάκτηση. Εάν αντιμετωπίσετε παρά πολλά κλειδώματα ανάγνωσης στο διακομιστή, μπορείτε να προσαρμόσετε τις ρυθμίσεις του πίνακα για να αυξήσετε την ταχύτητα της μεταφοράς εγγραφών στο παρασκήνιο. Εάν δημιουργηθεί υπερβολική κίνηση στο δίκτυο με τη μεταφορά εγγραφών στο παρασκήνιο, μπορείτε να αλλάξετε τις ρυθμίσεις έτσι ώστε να την επιβραδύνετε. Για περισσότερες πληροφορίες σχετικά με τη δημιουργία και τη διαμόρφωση ενός πίνακα MSysConf, ανατρέξτε στο ακόλουθο θέμα στην τοποθεσία Web του Microsoft Developer Network (MSDN) (στα αγγλικά):
http://msdn.microsoft.com/library/default.asp?url=/archive/en-us/accessdev/html/ODC_ServerApplicationDevelopment.asp
http:// msdn.microsoft.com / library / en-us / off2000 / html / achowMsysconfTableAttachedSqlDatabasesS.asp

Λευκή βίβλος Microsoft Jet Database Engine ODBC Connectivity

Μια σημαντική πηγή για πρόσθετες πληροφορίες είναι η λευκή βίβλος Jet Database Engine ODBC Connectivity. Αυτό το έγγραφο συντάχθηκε για το Jet 3.0. Ωστόσο, αυτές οι πληροφορίες ισχύουν επίσης για το Jet 4.0. Αυτό το έγγραφο εξετάζει το μηχανισμό διαχείρισης βάσεων δεδομένων Microsoft Jet 3.0 και τον τρόπο με τον οποίο χρησιμοποιεί το ODBC. Μπορείτε να κάνετε λήψη της λευκής βίβλου από την ακόλουθη τοποθεσία της Microsoft στο Web (στα αγγλικά):
http://download.microsoft.com/download/access95/whitep5/1/W98/EN-US/Rjwpv3.exe

Έργο της Access

Ένα έργο της Access χρησιμοποιεί το OLEDB για σύνδεση στον Microsoft SQL Server 6.5 ή 7.0. Εάν όλοι οι πίνακες στη βάση δεδομένων της Access είναι συνδεδεμένοι με τον SQL Server, μπορείτε να δημιουργήσετε ένα έργο της Access για να βελτιώσετε τις επιδόσεις. Ωστόσο, εάν η βάση δεδομένων περιέχει πίνακες της Access, αυτή η ενέργεια δεν είναι δυνατή.

Ιδιότητες

Αναγν. άρθρου: 208858 - Τελευταία αναθεώρηση: Τρίτη, 20 Μαρτίου 2007 - Αναθεώρηση: 3.2
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Access 2000 Standard Edition
Λέξεις-κλειδιά: 
kbdownload kbhowto kbusage KB208858

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com