1. Tente usar o processamento de transações para atualizar o banco de dados
O processamento de transações VB inclui várias instruções de operação de banco de dados, começando com BeginTrans e terminando com CommitTrans ou Rollback. Além de garantir a integridade do banco de dados, o processamento de transações também pode melhorar significativamente a eficiência das atualizações em lote do banco de dados. Isso ocorre porque se a operação de atualização do banco de dados não usar processamento de transações, cada operação de atualização fará com que o banco de dados seja gravado no disco uma vez. Depois de usar o processamento de transações, as atualizações são executadas apenas no buffer de memória e todas as modificações são gravadas no disco de uma só vez quando o CommitTrans é executado. Existem alguns pontos a serem observados ao usar o processamento de transações:
(1) O processamento de transações deve ter um mecanismo completo de verificação de erros;
(2) Como o VB usa bloqueios de página no banco de dados antes do término da transação, em um ambiente multiusuário, se a transação for suspensa, outros usuários não poderão acessar os dados bloqueados.
2. Tente usar decomposição de código para operações de recuperação Select
Usar Select para operações de banco de dados é simples e fácil de usar, mas se algumas operações de recuperação forem decompostas em códigos de recuperação manuais equivalentes, a velocidade de recuperação do banco de dados será bastante acelerada. O método básico de decomposição é indexar os campos-chave de recuperação e usá-los. Buscar Depois que o método for localizado, com base nas características classificadas do banco de dados indexado, Pesquisa de passagem de linha Quando o intervalo de passagem não é muito amplo, este método pode melhorar a velocidade de acesso ao banco de dados dezenas de vezes. Por exemplo: Select*frompersonwherevol='123'andbirth=#11-02-73# é decomposto nas seguintes operações. , a velocidade de acesso pode ser bastante melhorada:
Tabela.Index=volTable.Seek=, 123ifnottable.nomatchthen
whilenottable.eof
iftable(vol)=123então
tabela.movelast
elseiftable(Nascimento)=#11-02-73#então
'Encontrar registro
final se
tabela.movenext
wendendif
3. Use anexar para vincular a tabela do banco de dados
Ao usar ODBC para conectar-se a servidores de banco de dados como MSSQLServer, Oracle e Sysbase, podemos vincular as tabelas do servidor ao banco de dados MSAcess por meio da função de anexação do MSAcess, porque o banco de dados MSAcess pode armazenar em cache a estrutura da tabela no servidor de banco de dados Quando acessamos a fonte de dados ODBC podemos melhorar o desempenho de acesso ao sistema.
4. Use a opção dbSQLPassThrough
Ao conectar-se aos servidores de banco de dados MSSQLServer, Oracle e Sysbase, use a opção dbSQLPassThrough para enviar comandos diretamente ao servidor de banco de dados, reduzindo assim a inspeção e interpretação de comandos do middleware e melhorando o desempenho de acesso ao banco de dados. O exemplo a seguir usa um procedimento armazenado para criar Dynaset:
dimmydbasdatabasedimmydsasdynasetsetmydb=opendatabase(..........)'Abra o banco de dados setmyds=mydb.openrecordset(nome, dbOpendynaset, dbSQLPassThrough,...)
A desvantagem de usar dbSQLPassThrough é que o conjunto de registros retornado é somente leitura.
5. Utilize corretamente a tabela de objetos de acesso ao banco de dados.
Suporta comandos e índices SEEK A combinação dos dois pode encontrar registros mais rapidamente. Uma vez, o autor fez um teste de comparação de velocidade e levou 3,5 segundos para o Table recuperar 100.000 registros, 9 segundos para Dynaset e 10 segundos para Snapshot. operações de leitura e gravação. Não Suporta SORT e FILTER, que devem ser substituídos por Index Correspondente à tabela física no banco de dados, adição, exclusão e modificação afetarão diretamente a tabela do banco de dados.
Dynaset. O objeto de banco de dados mais flexível. Ele suporta operações de leitura e gravação e é um subconjunto dinâmico de registros. Em ODBC, as operações de gravação exigem a configuração de um índice exclusivo. só pode usar Dynaset.
Instantâneo. Ele só pode ser lido, mas não gravado, e não pode ser bloqueado. Não oferece suporte ao processamento de transações. Não oferece suporte aos métodos Edit, Addnew e Update.
->