| A seguir, o fragmento de código: '***************************************************** **************************************************** **************************************************** **************************************************** **************************************************** **************, ********************** '** Este nome do programa: Programa de paginação "Infinite Stream" '** Autor: Arbiter (AASX) '** Versão: Million Level '** '** QQ: 22222XX '** E -mail: [email protected] '** http://www.images.org/ '***************************************************** **************************************************** **************************************************** **************************************************** **************************************************** **************, ********************** '** '** [palavras do autor] '** '** Programa de paginação é, sem dúvida, uma coisa mais problemática entre muitas funções do programa de rede '** A maioria das pessoas ainda usa o método de paginação tradicional (rs.pagesize = xx) para entender '** Operações de banco de dados sabem que esse método tradicional tem uma desvantagem: quando a página é aberta pela primeira vez, '** Ele lerá todos os conjuntos de registros. '** As páginas também serão muito lentas, ocupando recursos. Para dados de mais de 100.000 ou mais '** Biblioteca Este método de paginação tradicional tornou -se muito fraco, muito menos um milhão de níveis (eu não posso foder um '** fazer). Por esse motivo, me levou a fazer esse programa. '** '** [Função do programa] '** '** Operação de paginação para grandes bancos de dados, o volume ideal de registro de dados operacionais é de 2 milhões ‘** (Max Level Edition limitará inúmeras quantidades, e não importa o tamanho do banco de dados, a velocidade de giro da página é '** inalterado), este é o programa de paginação da versão de um milhão em Saiyang 1G, Memory 512, Win2K Ring '** Dados de teste no reino: '** '** SQLSERVER 2K 100.000 Registros mostram 20 peças por página: '** Página média de volta à velocidade: 45ms '** SQLSERVER 2K 1 milhão de registros exibem 20 peças por página: '** Página média de volta à velocidade: 350ms '** '** '** [Princípio do pagling] '** '** Este programa não usa mais o método Rs.Pagesize para páginas, e o tipo de cursor que conecta o banco de dados '** não está usando Conn, 1, X, mas Conn, 0,1, que deve ser o tipo de cursor mais rápido, não '** Pense que isso complicou o programa. '** Deve ser o meu estilo de programação. O centro da paginação de '** "fluxo infinito" é: Leia apenas os registros que precisam ser exibidos por página, não mais como a tradição '** Programa de pagling lê todos os dados pré-leitura, que é a maior vantagem desse programa-ocupar menos recursos, o mesmo '** A velocidade racional também foi bastante aprimorada, especialmente quando a quantidade de dados é maior, sua vantagem de velocidade '** Mais óbvio (apenas cerca de 350ms). '** Quando o programa é executado, o primeiro registro exibido por Curcorbegin e Curcorend '** registro e o valor de identificação do último registro, como a marca da próxima página, e depois use o Top XX para receber '** Os dados necessários mostram e, em seguida, registra o valor do ID. '** '** [Conclusão] '** '** Este programa é uma versão compartilhada, fornecida a vários amantes do programa para estudar e usar, reimprimir, espalhar, reparar '** Altere ou seja usado para outros propósitos, respeite o trabalho duro do autor e indique a fonte. '** Se houver desvantagens como erro e otimização neste programa, vá para o desenvolvimento da web de www.csdn.net/ '** A coluna ASP emitiu uma discussão, para o desenvolvimento da indústria de software da China, por favor, não fique sozinho :) '** '***************************************************** **************************************************** **************************************************** **************************************************** **************************************************** **************, ************************ Opção explícita 'Response.flush Dim BeginTime, Endtime BEGINTIME = TIMER Dim Conn, SQLSTR, RS, Defrecordnum, Cursorbegin, Mursorend, Curpagenum, Hav, Hav Defrecordnum = 20 '-------------- Obtenha parâmetros relevantes ---------------------------------- ----------------------- Se solicitar ("cursorbegin") = "então cursorbegin = 0 else cursorbegin = request (" cursorbegin ")) Se request ("cursorend") = "o cursorend = 0 else cursorend = request (" cursorend ") Se solicitar ("curpagenum") <> Curpagenum = clng (request ("curpagenum") Ifurpagenum <= 0 então capagenum = 1 Outro Curpagenum = 1 Final se Hav = request ("hav") Se hav = "" então hav = "a seguir" '--------------------------------------------------- ------------------------------------------------------ ----------------------------------- '------------ 显示翻页内容函数 -------- Função turnpagefs (disprecordnum) Dim n Enquanto não (rs.eof) e n <disprecordnum n = n 1 Response.Write "<er>" & _ "<td bgcolor = 'efefef'>" & rs (0) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (1) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (2) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (3) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (4) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (5) & "</td>" & _ "</tr>" "" Se n = 1 o cursorbegin = rs (0) Se n = DEFRECORDNUM ou Rs.EOF, então cursorend = Rs (0) Rs.movenext Wend Função final '--------------------------------------------------- -------------------------- Definir Conn = Server.CreateObject ("Adodb.Connection") 'Sqlstr = "provider = microsoft.jet.oledb.4.0; dados de dados =" & server.mappath ("mlodata.mdb"))) Sqlstr = "driver = {sql server}; server = arbiter; uid = arbiter; pwd = 123456; database = mldata" "" " Conn.Open sqlstr '--------- Estatísticas Total Registros/Total de Páginas --------------------------------- '-PS: contagem recomendada (ID), ID é número e índice automáticos, caso contrário, a velocidade pode ser bastante descontada '-PS: Esta estatística faz parte dos recursos mais consumidos neste programa. Dim TotalRcords, TotalPages SQLSTR = "Selecione Count (ID) como Recornsum da ABC" Set rs = const.execute (sqlstr, 0,1) TotalRecords = RS ("Recordsum") TotalPages = ABS (int (TotalRecords/Defrecordnum*(-1))) Rs.close Definir rs = nada '-------- Selecione as seqüências SQL correspondentes com base em hav ------ Selecione Case (HAV) Caso "volta" Cursorend = cursorbegin SQLSTR = "Selecione Top" e DeFalecordNum & "_ Id, título, nome do arquivo, k, imgsize, nomes _ De ABC onde id <"& cursorbegin & _ "E id in (selecione Top" e Defrecordnum_ & "ID de ABC onde id <" & cursorbegin_ & "Order by id des Descr) Ordem por id" Caso "Próximo" SQLSTR = "Selecione Top" e Defrecordnum_ & "ID, título, nome do arquivo, k, imgsize, nomes de abc onde id>" & cursorend & _ "Ordem por id" Final Selecione Set rs = const.execute (sqlstr, 0,1) %>
|