1. Essayez d'utiliser le traitement des transactions pour mettre à jour la base de données
Le traitement des transactions VB comprend plusieurs instructions d'opération de base de données commençant par BeginTrans et se terminant par CommitTrans ou Rollback. En plus de garantir l'intégrité de la base de données, le traitement des transactions peut également améliorer considérablement l'efficacité des mises à jour par lots de la base de données. En effet, si l'opération de mise à jour de la base de données n'utilise pas le traitement des transactions, chaque opération de mise à jour entraînera l'écriture de la base de données sur le disque une seule fois. Après avoir utilisé le traitement des transactions, les mises à jour sont effectuées uniquement dans la mémoire tampon et toutes les modifications sont réécrites sur le disque en même temps lorsque CommitTrans est exécuté. Il y a quelques points à noter lors de l'utilisation du traitement des transactions :
(1) Le traitement des transactions doit disposer d'un mécanisme complet de vérification des erreurs ;
(2) Étant donné que VB utilise des verrous de page sur la base de données avant la fin de la transaction, dans un environnement multi-utilisateurs, si la transaction est suspendue, les autres utilisateurs ne pourront pas accéder aux données verrouillées.
2. Essayez d'utiliser la décomposition de code pour les opérations de récupération Select
L'utilisation de Select pour les opérations de base de données est simple et facile à utiliser, mais si certaines opérations de récupération sont décomposées en codes de récupération manuelle équivalents, la vitesse de récupération de la base de données sera considérablement accélérée. La méthode de décomposition de base consiste à indexer les champs clés de récupération et à les utiliser. Rechercher Une fois la méthode localisée, en fonction des caractéristiques triées de la base de données indexée, Recherche par parcours de lignes. Lorsque la plage de parcours n'est pas très large, cette méthode peut améliorer la vitesse d'accès à la base de données des dizaines de fois. Par exemple : Select*frompersonwherevol='123'andbirth=#11-02-73# est décomposé en les opérations suivantes. , la vitesse d'accès peut être grandement améliorée :
Table.Index=volTable.Seek=, 123ifnottable.nomatchthen
tandis quenottable.eof
iftable(vol)=123alors
table.movelast
elseiftable(Naissance)=#11-02-73#puis
'Trouver un enregistrement
fin
table.movenext
wendendif
3. Utilisez attach pour lier la table de base de données
Lorsque vous utilisez ODBC pour vous connecter à des serveurs de base de données tels que MSSQLServer, Oracle et Sysbase, nous pouvons lier les tables du serveur à la base de données MSAcess via la fonction d'attache de MSAcess, car la base de données MSAcess peut mettre en cache la structure de la table sur le serveur de base de données. Lorsque nous accédons à la source de données ODBC, nous pouvons améliorer les performances d'accès au système.
4. Utilisez l'option dbSQLPassThrough
Lors de la connexion aux serveurs de bases de données MSSQLServer, Oracle et Sysbase, utilisez l'option dbSQLPassThrough pour envoyer des commandes directement au serveur de base de données, réduisant ainsi l'inspection et l'interprétation des commandes par le middleware et améliorant les performances d'accès à la base de données. L'exemple suivant utilise une procédure stockée pour créer Dynaset :
dimmydbasdatabasedimmydsasdynasetsetmydb=opendatabase(..........)'Ouvrez la base de données setmyds=mydb.openrecordset(name, dbOpendynaset, dbSQLPassThrough,...)
L'inconvénient de l'utilisation de dbSQLPassThrough est que le jeu d'enregistrements renvoyé est en lecture seule.
5. Utilisez correctement la table des objets d'accès à la base de données.
Prend en charge les commandes et les index SEEK. La combinaison des deux permet de trouver les enregistrements le plus rapidement. L'auteur a déjà effectué un test de comparaison de vitesse, et il a fallu 3,5 secondes à Table pour récupérer 100 000 enregistrements, 9 secondes pour Dynaset et 10 secondes pour les supports d'instantanés. opérations de lecture et d'écriture. Non Prend en charge SORT et FILTER, qui doivent être remplacés par Index Correspondant à la table physique dans la base de données, l'ajout, la suppression et la modification affecteront directement la table de la base de données.
Dynaset. L'objet de base de données le plus flexible. Il prend en charge les opérations de lecture et d'écriture et constitue un sous-ensemble dynamique d'enregistrements. Dans ODBC, les opérations d'écriture nécessitent la définition d'un index unique. Lorsque vous utilisez la commande JOIN pour associer plusieurs tables. ne peut utiliser que Dynaset.
Instantané. Peut uniquement lire mais pas écrire, ne peut pas verrouiller. Ne prend pas en charge le traitement des transactions. Ne prend pas en charge les méthodes Edit, Addnew et Update.
->