olá pessoal
não sei se estou postando no local certo, portanto podem mover a vontade
seguinte:
eu criei um sistema com banco de dados access, porem a ultima vez que alterei o banco, ele estava com 4,2MB....
depois de um mes mais ou menos, quando fui baixar o banco para minha máquina, percebi que ele estava com quase 6mb!! e neste intervalo de tempo, não fiz absolutamente nada com ele, nem insert, nem update....
minha pergunta é: o access vai inflando quando o site é muito visitado??
PS - o site todo roda encima do banco, com vários select nas páginas
Usando Access
Started By
abc2
, 09/02/2005, 22:58
6 replies to this topic
#1
Posted 09/02/2005, 22:58
#2
Posted 10/02/2005, 00:34
Existe um recurso do Access que seria a Verificação de Erros e Compactação.
O arquivo do Access é todo o sistema de dados, quando ele faz pesquisas ele cria tabelas temporarias, e essas tabelas ficam armazenadas no próprio arquivo... por isto o sistema infla, se vc afimar que não ocorrem operações de insert e update, esse arquivo não vai crescer muito mais do que isto, porém, para agilizar o envio, vc pode efetuar a compactação, que, na verdade, seria a eliminação dessas áreas temporárias, claro que, num futuro próximo, o arquivo voltará a ter o mesmo tamanho.
O arquivo do Access é todo o sistema de dados, quando ele faz pesquisas ele cria tabelas temporarias, e essas tabelas ficam armazenadas no próprio arquivo... por isto o sistema infla, se vc afimar que não ocorrem operações de insert e update, esse arquivo não vai crescer muito mais do que isto, porém, para agilizar o envio, vc pode efetuar a compactação, que, na verdade, seria a eliminação dessas áreas temporárias, claro que, num futuro próximo, o arquivo voltará a ter o mesmo tamanho.
------
Mero mortal!
Mero mortal!
#3
Posted 12/02/2005, 01:23
um..dessa nao sabia..
é velho, intao nao tem escapatoria s etodos bds tem isso...
mas com certeza com um mysql ou sql server ficaria masi rapido se o problema fosse lentidao, mas creio q nao..
de qualquer modo..
é velho, intao nao tem escapatoria s etodos bds tem isso...
mas com certeza com um mysql ou sql server ficaria masi rapido se o problema fosse lentidao, mas creio q nao..
de qualquer modo..
> Busca On-line - A Busca que faltava na Internet! - Cadastre-se!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!
#4
Posted 12/02/2005, 02:30
Acho que este tópico deveria estar em BD...
Há um tempo atras, peguei um sistema para expandir que usava access (e não poderia ser trocado), que passaria a ser acessado por inúmeras pessoas, mesmo depois de normatizar as tabelas, otimizar queries e levar o access ao limite de otimização dele (peelo menos para o meu conheecimento sobre a criança ), não tive opção a não ser criar uma rotina que fizesse a compactação do BD de tempos em tempos, caso contrário ele explodia em função dos múltiplos acessos.
Realmente ele cresce e muito, rapidamente.
Abraço.
Há um tempo atras, peguei um sistema para expandir que usava access (e não poderia ser trocado), que passaria a ser acessado por inúmeras pessoas, mesmo depois de normatizar as tabelas, otimizar queries e levar o access ao limite de otimização dele (peelo menos para o meu conheecimento sobre a criança ), não tive opção a não ser criar uma rotina que fizesse a compactação do BD de tempos em tempos, caso contrário ele explodia em função dos múltiplos acessos.
Realmente ele cresce e muito, rapidamente.
Abraço.
Contra-baixo - Tablaturas, dicas e ferramentas para baixistas - Hospedagem Grátis - MUBR
Projetos
• Bruno Alves • WebLugar.net •
Fórums
• Ajuda Linux • BrClube • Forum cPanel • webforum • WMS •
Projetos
• Bruno Alves • WebLugar.net •
Fórums
• Ajuda Linux • BrClube • Forum cPanel • webforum • WMS •
#5
Posted 12/02/2005, 08:32
hmm valeu pelas dicas pessoal
ele está trabalhando normal, ainda não está lento (por enquanto), mas creio que daqui a um tempinho com certeza vai ficar...
vou compactar o banco e ver no que dá....
caso contrario, vou tentar convencer o pão duro do meu cliente a mudar o plano dele pra sql server, eh bem melhor...
obrigado a todos
ele está trabalhando normal, ainda não está lento (por enquanto), mas creio que daqui a um tempinho com certeza vai ficar...
vou compactar o banco e ver no que dá....
caso contrario, vou tentar convencer o pão duro do meu cliente a mudar o plano dele pra sql server, eh bem melhor...
obrigado a todos
#6
Posted 12/02/2005, 16:27
hehe. ou se nao pega um plano com asp/php q tem mysql q creio q ficaria mais barato q sql server..
mas muito bo aa dica do chará..
de todo modo tb, creio q o assunto é pr aBanco de Dados msm.
to movendo ...
mas muito bo aa dica do chará..
de todo modo tb, creio q o assunto é pr aBanco de Dados msm.
to movendo ...
> Busca On-line - A Busca que faltava na Internet! - Cadastre-se!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!
#7
Posted 15/03/2005, 13:44
Pra facilitar sua vida um pouco vc pode ta fazendo o seguinte, no access vai em Ferramentas > Opcoes > Geral > e marca a opção Compactar ao fechar
Tenho aki tb uma rotina em Delphi q pode ser util para quem trabalha com Delphi e está com o mesmo problema:
procedure TFCompacta.CompactaMDB(Sender: TObject);
var db: OleVariant;
PathDb: string;
begin
PathDb := 'c:\scej\dados\' + FPrincipio.TEmpresaAlias.Value + '.mdb';
db := GetADOObject('JRO.JetEngine');
db.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + PathDb + ';Jet OLEDB:Database Password="";',
'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + ExtractFilePath(PathDb) + 'novobd.mdb' +
';Jet OLEDB:Database Password=""' +
';Jet OLEDB:Engine Type=5'); // 4 se for Access 97
if not DeleteFile(PathDb) then
// file://deleta bd antigo
begin
ShowMessage('Ocorreram problemas renomeando os arquivos temporários!'
+ #13 + 'A operação foi cancelada.');
DeleteFile(ExtractFilePath(PathDb) + 'novobd.mdb');
// file://deleta arquivos temporarios
exit;
end;
RenameFile(ExtractFilePath(PathDb) + 'novoBD.mdb', PathDb);
//file://renomeia bd compactado
DeleteFile(ExtractFilePath(PathDb) + 'novobd.mdb');
//file://deleta arquivos temporarios
// ShowMessage('Processo Concluído com sucesso!');
{ except
on e: Exception do
ShowMessage(E.Message);
end;
finally
db := unassigned;
// file://limpa variaveis de objetos
end;}
end; function TFCompacta.GetADOObject(ADOClass: string): OLEVariant;
var o: OLEVariant;
begin
try
o := CreateOLEObject(ADOClass);
except on EOleException do
o := unassigned
end;
Result := o;
end;
Tenho aki tb uma rotina em Delphi q pode ser util para quem trabalha com Delphi e está com o mesmo problema:
procedure TFCompacta.CompactaMDB(Sender: TObject);
var db: OleVariant;
PathDb: string;
begin
PathDb := 'c:\scej\dados\' + FPrincipio.TEmpresaAlias.Value + '.mdb';
db := GetADOObject('JRO.JetEngine');
db.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + PathDb + ';Jet OLEDB:Database Password="";',
'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + ExtractFilePath(PathDb) + 'novobd.mdb' +
';Jet OLEDB:Database Password=""' +
';Jet OLEDB:Engine Type=5'); // 4 se for Access 97
if not DeleteFile(PathDb) then
// file://deleta bd antigo
begin
ShowMessage('Ocorreram problemas renomeando os arquivos temporários!'
+ #13 + 'A operação foi cancelada.');
DeleteFile(ExtractFilePath(PathDb) + 'novobd.mdb');
// file://deleta arquivos temporarios
exit;
end;
RenameFile(ExtractFilePath(PathDb) + 'novoBD.mdb', PathDb);
//file://renomeia bd compactado
DeleteFile(ExtractFilePath(PathDb) + 'novobd.mdb');
//file://deleta arquivos temporarios
// ShowMessage('Processo Concluído com sucesso!');
{ except
on e: Exception do
ShowMessage(E.Message);
end;
finally
db := unassigned;
// file://limpa variaveis de objetos
end;}
end; function TFCompacta.GetADOObject(ADOClass: string): OLEVariant;
var o: OLEVariant;
begin
try
o := CreateOLEObject(ADOClass);
except on EOleException do
o := unassigned
end;
Result := o;
end;
Nesta guerra jah conquistamos grandes e pequenas batalhas, desde as mais faceis ateh akelas que para qualquer outro mortal seria dita como inalcansavel, mas então, pq continuar? Simples...
Pq o mais importante não eh vencer todas as batalhas, mas sim perpetuar a guerra. ;o)
Meu fotolog: http://www.pixlog.net/xleandro
Leandro Pretti
Pq o mais importante não eh vencer todas as batalhas, mas sim perpetuar a guerra. ;o)
Meu fotolog: http://www.pixlog.net/xleandro
Leandro Pretti
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)