Lorsque nous développons SQL, nous constaterons que l'exécution d'asp est parfois lente. Nous pouvons utiliser les méthodes suivantes pour améliorer l'efficacité de l'exécution.
[b]Méthode 1 : Essayez d'utiliser du SQL complexe au lieu d'un tas de SQL simple[/b]
Pour la même transaction, un SQL complexe peut être complété plus efficacement qu'un ensemble de SQL simples. Lorsqu'il y a plusieurs requêtes, vous devez bien utiliser JOIN.
oRs=oConn.Execute(Sélectionner * FROM Livres)
bien que ce ne soit pas ors.Eof
strSQL = Sélectionnez * FROM Auteurs Où AuthorID=&oRs(AuthorID) ors2=oConn.Execute(strSQL)
Réponse.écrire ors(Titre)&>>&oRs2(Nom)&<br>
ors.MoveNext()
wend
est plus lent que le code suivant :
strSQL=Sélectionnez Books.Title,Authors.Name FROM Books JOIN Authors ON Authors.AuthorID=Books.AuthorID
ors=oConn.Execute(strSQL)
bien que ce ne soit pas ors.Eof
Réponse.écrire ors(Titre)&>>&oRs(Nom)&<br>
ors.MoveNext()
wend
[b]Méthode 2 : essayez d'éviter d'utiliser un jeu d'enregistrements pouvant être mis à jour[/b]
oRs=oConn.Execute(Sélectionnez * FROM Auteurs où AuthorID=17,3,3)
ors(Nom)=HommeSombre
ors.Update()
est plus lent que le code suivant :
strSQL = Mettre à jour les auteurs SET Name='DarkMan' Où AuthorID=17
oConn.Exécuter strSQL
[b]Méthode 3 : lors de la mise à jour de la base de données, essayez d'utiliser les mises à jour par lots[/b]
Formez tout le code SQL en un seul gros lot SQL et exécutez-le en même temps ; c'est beaucoup plus efficace que de mettre à jour les données une par une. Cela répondra également mieux à vos besoins en matière de traitement des transactions :
strSQL=
strSQL=strSQL&SET XACT_ABORT ON/n;
strSQL=strSQL&BEGIN TRANSACTION/n;
strSQL=strSQL&Insert INTO commandes(OrdID,CustID,OrdDat) VALUES('9999','1234',GETDATE())/n;
strSQL=strSQL&Insert INTO orderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','01','G4385',5)/n;
strSQL=strSQL&Insert INTO orderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','02','G4726',1)/n;
strSQL=strSQL&COMMIT TRANSACTION/n;
strSQL=strSQL&SET XACT_ABORT OFF/n;
oConn.Execute(strSQL);
Parmi eux, l'instruction SET XACT_ABORT OFF indique à SQL Server que si une erreur est rencontrée lors du traitement de la transaction suivante, la transaction terminée sera annulée.
[b]Méthode 4, index de base de données[/b]
Pour les champs qui apparaîtront dans la clause Where, vous devez d'abord envisager l'indexation ; les champs qui doivent être triés doivent également être pris en compte.
Comment créer un index dans MS Access : Sélectionnez la table qui doit être indexée dans Access, cliquez sur Conception, puis définissez l'index du champ correspondant.
Comment créer un index dans MS SQL Server : Dans SQL Server Manager, sélectionnez la table correspondante, puis concevez la table, cliquez avec le bouton droit, sélectionnez Propriétés et sélectionnez index/clés
[b]Méthode 5 : évitez de rendre le champ Texte trop grand[/b]
Lorsque la taille de la valeur de la chaîne n’est pas fixe, il est préférable d’utiliser varchar plutôt que char. J'ai vu une fois un exemple de programme dans lequel le champ était défini comme TEXT(255), mais sa valeur n'était souvent que de 20 caractères. Cette table de données contient 50 000 enregistrements, ce qui rend cette base de données très volumineuse, et les grandes bases de données seront forcément plus lentes.