beerfroth (trabajo original)
Escribí un libro de visitas simple usando sql server y asp. A través de constantes intentos, descubrí que existen algunas diferencias en los métodos de ejecución y el tiempo al mostrar mensajes en las páginas.
Echemos un vistazo a la comparación de tiempo de varios métodos mediante comparación.
Primero, use procedimientos almacenados para paginación. Esta situación se divide en dos métodos:
el primero es usar el objeto de comando, de la siguiente manera:
Set Cmd=server.CreateObject("Adodb.Command")
Cmd.ActiveConnection=conexión
Cmd.CommandText="ycuu_gb_getmsg"
Cmd.CommandType=4'adCmdStoredProc
cmd.preparado=verdadero'
establecer parámetro=Cmd.CreateParameter("@iPageNo",adInteger,1,2,Página)
Cmd.Parameters.Agregar parámetro
establecer parámetro=Cmd.CreateParameter("@iPageSize",adInteger,1,2,PageSizeConst)
Cmd.Parameters.Agregar parámetro
establecer rs=Cmd.ejecutar
El segundo método es ejecutar directamente utilizando el método de ejecución del objeto de conexión, de la siguiente manera:
set rs=conn.execute ("execute ycuu_gb_getmsg "&page&", "&pagesizeConst)
En segundo lugar, no utilice procedimientos almacenados, utilice directamente la función de ADODB.RecordSet para paginación, el código específico es el siguiente:
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "Seleccionar * DESDE Libro de visitas Ordenar por fecha y hora Desc"
rs.open sql, conexión, 1,1
rs.pagesize = 150'El número de mensajes que se muestran en cada página,
total = rs.RecordCount
mitamañodepágina = rs.tamañodepágina
rs.absolutepage = page
Para mostrar la velocidad más claramente, aumenté el número de mensajes mostrados en cada página a 150 (de hecho, por supuesto, no establecería un valor tan grande). En cuanto a la configuración de mi máquina, la omitiré porque es principalmente para comparar velocidades.
Se encontró que los tiempos de ejecución son los siguientes:
El primer tipo: estable entre 0.1953125 segundos y 0.2109375 segundos, el valor promedio es aproximadamente: 0.20 segundos
El segundo tipo: estable entre 0.1716875 segundos y 0.1857 segundos, el valor promedio es aproximadamente: 0.177
El tercer tipode segundos
: estable entre 0,4375 segundos y 0,4632 segundos, el valor medio es de aproximadamente: 0,45 segundos.
Sin embargo, cuando el número de registros leídos es 20, los resultados son los siguientes:
Se encontró que los tiempos de ejecución son los siguientes:
El primer tipo: estable entre 0,0390625 segundos y 0,0546875 segundos, el valor promedio es aproximadamente: 0,045 segundos
El segundo tipo: estable entre 0,046875 segundos y 0,0546875 segundos, el valor promedio es aproximadamente Sí: 0,050 segundos
El tercer tipo: estable entre 0,09375 segundos y 0,1015625 segundos. El valor promedio es aproximadamente: 0,97 segundos.
Desde este punto de vista, parece que no hay mucha diferencia entre los dos métodos conn.execute. comando.ejecutar.
El método de llamada del primero parece ser más simple.
Al mismo tiempo, se puede ver aquí que la velocidad del procedimiento almacenado de paginación es de hecho mucho más rápida que la velocidad de paginación del conjunto de registros.
PD: Es la primera vez que publico un artículo, vaya, me resulta muy difícil escribir un buen artículo, trabajaré duro en el futuro. Espero que todos me perdonen por mi mala escritura esta vez. Por cierto, también quiero preguntarles héroes cuál de los dos métodos conn.execute y command.execute es mejor, jaja, porque todo lo que encontré en Internet es el último método para ejecutar procedimientos almacenados. No sé por qué no uso el simple como antes.