Ao desenvolver SQL, descobriremos que às vezes a execução do asp é lenta. Podemos usar os seguintes métodos para melhorar a eficiência da execução.
[b]Método 1: tente usar SQL complexo em vez de um monte de SQL simples[/b]
Para a mesma transação, um SQL complexo pode ser concluído com mais eficiência do que um monte de SQL simples. Quando há várias consultas, você deve ser bom em usar JOIN.
oRs=oConn.Execute(Selecione *FROM Livros)
enquanto não ors.Eof
strSQL = Selecione * FROM Autores Onde AuthorID=&oRs(AuthorID) ors2=oConn.Execute(strSQL)
Response.write ors(Título)&>>&oRs2(Nome)&<br>
ous.MoveNext()
vamos
é mais lento que o seguinte código:
strSQL=Selecione Books.Title,Authors.Name FROM Books JOIN Authors ON Authors.AuthorID=Books.AuthorID
ors=oConn.Execute(strSQL)
enquanto não ors.Eof
Response.write ors(Título)&>>&oRs(Nome)&<br>
ous.MoveNext()
vamos
[b]Método 2: tente evitar o uso de Recordset atualizável[/b]
oRs = oConn.Execute (selecione * FROM autores onde AuthorID = 17,3,3)
ors(Nome)=HomemNegro
ors.Update()
é mais lento que o seguinte código:
strSQL = Atualizar Autores SET Name='DarkMan' Onde AuthorID=17
oConn.Execute strSQL
[b]Método 3: Ao atualizar o banco de dados, tente usar atualizações em lote[/b]
Forme todo o SQL em um grande lote de SQL e execute-o de uma vez. Isso é muito mais eficiente do que atualizar os dados um por um; Isso também atenderá melhor às suas necessidades de processamento de transações:
strSQL=
strSQL=strSQL&SET XACT_ABORT ON/n;
strSQL=strSQL&BEGIN TRANSACTION/n;
strSQL=strSQL&Inserir INTO pedidos(OrdID,CustID,OrdDat) VALUES('9999','1234',GETDATE())/n;
strSQL=strSQL&Inserir INTO orderRows(OrdID,OrdRow,Item,Qty) VALUES('9999','01','G4385',5)/n;
strSQL=strSQL&Inserir 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);
Entre eles, a instrução SET XACT_ABORT OFF informa ao SQL Server que se um erro for encontrado durante o processamento da transação seguinte, a transação concluída será cancelada.
[b]Método 4, índice de banco de dados[/b]
Para os campos que aparecerão na cláusula Where, você deve primeiro considerar a indexação dos campos que precisam ser classificados;
Como criar um índice no MS Access: Selecione a tabela que precisa ser indexada no Access, clique em Design e defina o índice do campo correspondente.
Como criar um índice no MS SQL Server: No SQL Server Manager, selecione a tabela correspondente, projete a tabela, clique com o botão direito, selecione Propriedades e selecione índices/chaves
[b]Método 5: evite deixar o campo Texto muito grande[/b]
Quando o tamanho do valor da string não é fixo, usar varchar é melhor do que usar char. Certa vez, vi um programa de exemplo em que o campo era definido como TEXT(255), mas seu valor geralmente tinha apenas 20 caracteres. Esta tabela de dados possui 50 mil registros, tornando esse banco de dados muito grande, e bancos de dados grandes tendem a ser mais lentos.