beerfroth (trabalho original)
Escrevi um livro de visitas simples usando sql server e asp. Através de constantes tentativas, descobri que existem algumas diferenças nos métodos de execução e no tempo de exibição de mensagens nas páginas.
Vamos dar uma olhada na comparação temporal de vários métodos por meio de comparação.
Primeiro, use procedimentos armazenados para paginação. Esta situação é dividida em dois métodos:
O primeiro é usar o objeto de comando, como segue:
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,Página)
Parâmetro Cmd.Parameters.Append
definir param=Cmd.CreateParameter("@iPageSize",adInteger,1,2,PageSizeConst)
Parâmetro Cmd.Parameters.Append
definir rs = Cmd.execute
O segundo método é executar diretamente usando o método de execução do objeto de conexão, como segue:
set rs=conn.execute ("execute ycuu_gb_getmsg "&page&", "&pagesizeConst)
Em segundo lugar, não use procedimentos armazenados, use diretamente a função ADODB.RecordSet para paginação, o código específico é o seguinte:
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "Selecione * FROM Livro de Visitas Ordenar por data e hora Descrição"
rs.open sql,conn,1,1
rs.pagesize = 150'O número de mensagens exibidas em cada página,
total = rs.RecordCount
meupagesize = rs.pagesize
rs.absolutepage = page
Para mostrar a velocidade com mais clareza, aumentei o número de mensagens exibidas em cada página para 150 (na verdade, é claro que eu não definiria um valor tão grande). Quanto à configuração da minha máquina, vou omiti-la porque serve principalmente para comparação de velocidade.
Verificou-se que os tempos de execução são os seguintes:
O primeiro tipo: estável entre 0,1953125 segundos e 0,2109375 segundos, o valor médio é aproximadamente: 0,20 segundos
O segundo tipo: estável entre 0,1716875 segundos e 0,1857 segundos, o valor médio é aproximadamente: 0,177
O terceiro tipode segundos
: estável entre 0,4375 segundos e 0,4632 segundos, o valor médio é de cerca de: 0,45 segundos
Porém, quando o número de registros lidos é 20, os resultados são os seguintes:
Verificou-se que os tempos de execução são os seguintes:
O primeiro tipo: estável entre 0,0390625 segundos e 0,0546875 segundos, o valor médio é de cerca de: 0,045 segundos
O segundo tipo: estável entre 0,046875 segundos e 0,0546875 segundos, o valor médio é sobre Sim: 0,050 segundos.
O terceiro tipo: estável entre 0,09375 segundos e 0,1015625 segundos O valor médio é de cerca de: 0,97 segundos
, parece que não há muita diferença entre os dois métodos conn.execute e. comando.executar.
O método de chamada do primeiro parece ser mais simples.
Ao mesmo tempo, pode-se ver aqui que a velocidade do procedimento armazenado de paginação é de fato muito mais rápida do que a velocidade de paginação do conjunto de registros.
PS: É a primeira vez que publico um artigo, nossa, acho muito difícil escrever um bom artigo, vou trabalhar muito no futuro. Espero que todos me perdoem pela minha má escrita desta vez. A propósito, também quero perguntar a vocês, heróis, qual dos dois métodos conn.execute e command.execute é melhor, haha, porque tudo que encontrei na Internet é o último método de execução de procedimentos armazenados. Não sei por que não uso o simples como antes.