1. Versuchen Sie, die Datenbank mithilfe der Transaktionsverarbeitung zu aktualisieren
Die VB-Transaktionsverarbeitung umfasst mehrere Datenbankbetriebsanweisungen, beginnend mit BeginTrans und endend mit CommitTrans oder Rollback. Neben der Gewährleistung der Integrität der Datenbank kann die Transaktionsverarbeitung auch die Effizienz von Datenbank-Batch-Updates erheblich verbessern. Dies liegt daran, dass, wenn der Datenbankaktualisierungsvorgang keine Transaktionsverarbeitung verwendet, jeder Aktualisierungsvorgang dazu führt, dass die Datenbank einmal auf die Festplatte geschrieben wird. Nach Verwendung der Transaktionsverarbeitung werden Aktualisierungen nur im Speicherpuffer durchgeführt und alle Änderungen werden bei der Ausführung von CommitTrans auf einmal auf die Festplatte zurückgeschrieben. Bei der Verwendung der Transaktionsverarbeitung sind einige Punkte zu beachten:
(1) Die Transaktionsverarbeitung muss über einen vollständigen Fehlerprüfmechanismus verfügen.
(2) Da VB vor dem Ende der Transaktion Seitensperren für die Datenbank verwendet, können andere Benutzer in einer Mehrbenutzerumgebung bei einer Unterbrechung der Transaktion nicht auf die gesperrten Daten zugreifen.
2. Versuchen Sie, die Codezerlegung für Auswahlabrufvorgänge zu verwenden
Die Verwendung von Select für Datenbankvorgänge ist einfach und benutzerfreundlich. Wenn jedoch einige Abrufvorgänge in entsprechende manuelle Abrufcodes zerlegt werden, wird die Abrufgeschwindigkeit der Datenbank erheblich beschleunigt. Die grundlegende Methode der Zerlegung besteht darin, die Abrufschlüsselfelder zu indizieren und zu verwenden Suchen Sie nach der Methode, basierend auf den sortierten Merkmalen der indizierten Datenbank. Wenn der Durchlaufbereich nicht sehr groß ist, kann diese Methode die Datenbankzugriffsgeschwindigkeit um ein Vielfaches verbessern. Beispiel: Select*frompersonwherevol='123'andbirth=#11-02-73# wird in die folgenden Operationen zerlegt , kann die Zugriffsgeschwindigkeit erheblich verbessert werden:
Table.Index=volTable.Seek=, 123ifnottable.nomatchthen
whilenottable.eof
iftable(vol)=123then
table.movelast
elseiftable(Birth)=#11-02-73#then
„Datensatz finden.“
endif
table.movenext
Wendedif
3. Verwenden Sie „attach“, um die Datenbanktabelle zu binden
Wenn wir ODBC verwenden, um eine Verbindung zu Datenbankservern wie MSSQLServer, Oracle und Sysbase herzustellen, können wir die Tabellen auf dem Server über die Attach-Funktion von MSAcess an die MSAcess-Datenbank binden, da die MSAcess-Datenbank die Struktur der Tabelle auf dem Datenbankserver zwischenspeichern kann . Wenn wir auf die ODBC-Datenquelle zugreifen, kann die Zugriffsleistung des Systems verbessert werden.
4. Verwenden Sie die dbSQLPassThrough-Option
Wenn Sie eine Verbindung zu MSSQLServer-, Oracle- und Sysbase-Datenbankservern herstellen, verwenden Sie die Option dbSQLPassThrough, um Befehle direkt an den Datenbankserver zu senden, wodurch die Überprüfung und Interpretation von Befehlen durch die Middleware reduziert und die Leistung des Datenbankzugriffs verbessert wird. Im folgenden Beispiel wird eine gespeicherte Prozedur zum Erstellen von Dynaset verwendet:
dimmydbasdatabasedimmydsasdynasetsetmydb=opendatabase(..........)'Öffnen Sie die Datenbank setmyds=mydb.openrecordset(name, dbOpendynaset, dbSQLPassThrough,...)
Der Nachteil der Verwendung von dbSQLPassThrough besteht darin, dass das zurückgegebene Recordset schreibgeschützt ist.
5. Verwenden Sie die Datenbankzugriffsobjekttabelle korrekt.
Unterstützt SEEK-Befehle und Indizes, um Datensätze am schnellsten zu finden. Der Autor hat einmal einen Geschwindigkeitsvergleichstest durchgeführt, bei dem Table 100.000 Datensätze abgerufen hat, 9 Sekunden für Dynaset und 10 Sekunden für Snapshot Lese- und Schreibvorgänge. Unterstützt SORT und FILTER und muss stattdessen den Index verwenden. Entsprechend der physischen Tabelle in der Datenbank wirken sich Hinzufügungen, Löschungen und Änderungen direkt auf die Datenbanktabelle aus.
Dynaset. Es unterstützt Lese- und Schreibvorgänge und ist eine dynamische Teilmenge von Datensätzen. Bei Verwendung des JOIN-Befehls können Sie einen eindeutigen Index festlegen kann nur Dynaset verwenden.
Snapshot. Es kann nur gelesen, aber nicht geschrieben werden. Es unterstützt keine Transaktionsverarbeitung. Es unterstützt nicht die Methoden Edit, Addnew und Update.
->