beerfroth (œuvre originale)
J'ai écrit un livre d'or simple en utilisant le serveur SQL et asp. Grâce à des tentatives constantes, j'ai découvert qu'il existe des différences dans les méthodes d'exécution et le temps d'affichage des messages dans les pages.
Jetons un coup d'œil à la comparaison temporelle de plusieurs méthodes par comparaison.
Tout d'abord, utilisez des procédures stockées pour la pagination. Cette situation est divisée en deux méthodes :
La première consiste à utiliser l'objet de commande, comme suit :
Set Cmd=server.CreateObject("Adodb.Command").
Cmd.ActiveConnection=conn
Cmd.CommandText="ycuu_gb_getmsg"
Cmd.CommandType=4'adCmdStoredProc
cmd.prepared=true'
set param=Cmd.CreateParameter("@iPageNo",adInteger,1,2,Page)
Cmd.Parameters.Append param
set param=Cmd.CreateParameter("@iPageSize",adInteger,1,2,PageSizeConst)
Cmd.Parameters.Append param
définir rs = Cmd.execute
La deuxième méthode consiste à exécuter directement en utilisant la méthode d'exécution de l'objet de connexion, comme suit :
set rs=conn.execute ("execute ycuu_gb_getmsg "&page&", "&pagesizeConst)
Deuxièmement, n'utilisez pas de procédures stockées, utilisez directement la fonction de ADODB.RecordSet pour la pagination, le code spécifique est le suivant :
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "Sélectionner * FROM Livre d'or Ordre par date et heure Desc"
rs.open sql, conn, 1,1
rs.pagesize = 150'Le nombre de messages affichés sur chaque page,
total = rs.RecordCount
ma taille de page = rs.pagesize
rs.absolutepage = page
Afin d'afficher la vitesse plus clairement, j'ai augmenté le nombre de messages affichés sur chaque page à 150 (en fait, bien sûr, je ne définirais pas une valeur aussi grande). Quant à la configuration de ma machine, je vais l'omettre car elle sert principalement à comparer la vitesse.
Il a été constaté que les temps d'exécution sont les suivants :
Le premier type : stable entre 0,1953125 secondes et 0,2109375 secondes, la valeur moyenne est d'environ : 0,20 secondes
Le deuxième type : stable entre 0,1716875 secondes et 0,1857 secondes, la valeur moyenne est d'environ : 0,177
Le troisième typede secondes
: stable entre 0,4375 seconde et 0,4632 seconde, la valeur moyenne est d'environ : 0,45 seconde
Cependant, lorsque le nombre d'enregistrements lus est de 20, les résultats sont les suivants :
Il a été constaté que les temps d'exécution sont les suivants :
Le premier type : stable entre 0,0390625 secondes et 0,0546875 secondes, la valeur moyenne est d'environ : 0,045 secondes
Le deuxième type : stable entre 0,046875 secondes et 0,0546875 secondes, la valeur moyenne est d'environ 0,046875 secondes. environ Oui : 0,050 seconde.
Le troisième type : stable entre 0,09375 seconde et 0,1015625 seconde. La valeur moyenne est d'environ : 0,97 seconde.
De ce point de vue, il ne semble pas y avoir beaucoup de différence entre les deux méthodes conn.execute et. commande.exécuter.
La méthode d’appel de la première semble plus simple.
Dans le même temps, on peut voir ici que la vitesse de la procédure stockée de pagination est en effet beaucoup plus rapide que la vitesse de pagination du jeu d'enregistrements.
PS : C'est la première fois que je publie un article, wow wow, j'ai vraiment du mal à écrire un bon article, je vais travailler dur à l'avenir. J'espère que tout le monde me pardonnera cette fois-ci ma mauvaise écriture. À propos, je veux aussi vous demander, héros, laquelle des deux méthodes conn.execute et command.execute est la meilleure, haha, car tout ce que j'ai trouvé sur Internet est cette dernière méthode d'exécution de procédures stockées. Je ne sais pas pourquoi je n’utilise pas le simple comme avant.