Eu desenvolvi um banco de dados Access 2010.
Possui três tabelas principais:
HOUSES
id,
address,
number_stories,
garden,
parking,
imageAttachments (~1-4 per record),
etc...,
about 60 fields total
CONTACTS
id,
houses.id(fk),
contactType(owner, manager, etc),
contactEmail,
contactPhone
VISITS
id,
Contacts.id(fk),
Houses.id(fk),
visitDate,
visitNotes
Ele também tem um monte de pequenas tabelas de pesquisa para alguns dos campos na tabela de casas.
Neste momento tenho cerca de 100 casas listadas e apenas cerca de 5-10 contactos e visitas.
Espero que, no pico, esse banco de dados contenha de 300 a 500 casas, com 3 a 5 contatos e visitas para cada uma.
No momento, o tamanho do banco de dados é de cerca de 50 MB. Percebo que não o compactei / consertei enquanto o estava construindo ou preenchendo-o inicialmente, o que pode ser um problema. Parece correr muito devagar. Esse banco de dados cresceu muito? Este é um tamanho típico para um banco de dados deste escopo?
(Estou no Windows 7 com 8 GB de RAM, então não acho que meu próprio computador seja o problema)
Eu tive bancos de dados do Access de 1,5 GB (7 anos atrás em uma máquina muito mais fraca do que a que você descreveu) funcionando bem - para algumas consultas. Realmente depende do que você está consultando e como está indexado. Sem saber os detalhes das consultas e relatórios que você está executando, não posso dizer se é muito lento ou não (e você realmente não define lento: 10 segundos? 2 segundos? 3 horas?) . Eu sei que no passado o Access tinha um limite de tamanho de arquivo de 2 GB. Não sei se versões recentes mudaram isso.
50MB é muito pequeno. Eu não me preocuparia com o tamanho neste momento. O banco de dados pode crescer se você fizer muita codificação no banco de dados, atualizando designs de formulário, criar novas consultas armazenadas e coisas assim.
Se suas consultas forem lentas, não seria devido ao tamanho do banco de dados porque o Access tende a anexar alterações de dados em vez de manipular alterações de dados no local em muitos casos.
Gostaria de olhar para a indexação de todas as suas tabelas. Procure quaisquer consultas que você esteja fazendo que usam cláusulas WHERE cujas colunas não são indexadas. Você pode precisar considerar índices compostos para cláusulas WHERE com várias
colname=
combinações.O que me preocupa é o número de colunas na tabela HOUSES. 60 colunas? Isso é um monte de colunas. As alterações têm o comprimento de muitas das linhas que se estendem por mais tempo do que o Access gostaria. Buscar apenas uma única linha da tabela HOUSES provavelmente é uma operação cara. Você deve procurar desnormalizar a tabela HOUSES. Você pode simplesmente ir para a
Database Tools
guia e clicar emAnalyze Table
.Além disso, você pode simplesmente ir para a
Database Tools
guia e clicarAnalyze Performance
e começar a medir outros possíveis gargalos.Se o banco de dados começar a ficar muito grande (mais de 1 GB) ou se o seu banco de dados estiver frequentemente fazendo atualizações pesadas de linhas, você deve executar o Compact/Repair periodicamente. Você pode se surpreender com a quantidade de espaço que será recuperado ao fazer isso. Você pode fazê-lo de duas maneiras:
Exemplo
C:\Program Files\Microsoft Office\Office14
C:\LWDBA\RolandosDatabase.accdb
ARQUIVO DE LOTE
Em seguida, basta fazer com que uma tarefa do Windows inicie esse arquivo em lote no intervalo de sua escolha