Ir para conteúdo
Fórum Script Brasil
  • 0

(resolvido)Lentidão ao abrir tabela c/ Fotos


schaukoski

Pergunta

Olá...

Estou com um sério problema..

eu tenho uma tabela de Cadastro com um campo Foto...

uso o MySQL como BD, e abro as tabelas através do componente simpledataset da paleta dbExpress.. tenho 5000( 5 Mil )registros

com fotos de 141K cada.

quando eu dou um Active True na tabela.. ele demora muito para abrir... depois que abre eu navego no dbgrid com facilidade, e rapidez.. mas ta muuuuito lento para abrir..

alguém tem alguma idieia de como agilizar este processo, SALVANDO a foto no Banco de Dados.. ?

uso o campo LongBlob...

abraços e obrigado

Editado por schaukoski
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
quando eu dou um Active True na tabela.. ele demora muito para abrir... depois que abre eu navego no dbgrid com facilidade, e rapidez.. mas ta muuuuito lento para abrir..

Um dos problemas é que voce esta carregando toda a tabela de uma vez, neste caso pode ajudar se carregar apenas parte dos registro que voce precisa, usando sql com parametros.

Outro problema é o chipset da placa mãe do seu micro, se for um da serie SIS 7000 pode esquecer ... eles são muito ruins ( deixa muito lento quando tem que manipular grandes quantidades de registros ) ...a solução neste caso seria trocar a sua placa mãe.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
uso o MySQL como BD, e abro as tabelas através do componente simpledataset da paleta dbExpress.. tenho 5000( 5 Mil )registros

com fotos de 141K cada.

...

uso o campo LongBlob...

schaukoski, pelo tamanho da imagem, ou você está gravando BMP ou é um JPG bastante grande mesmo.

Mas quanto ao tipo, você lembra deste post. Veja que se você está utilizando imagens relativamente pequenas, você poderia (deveria) utilizar um tipo BLOB menor -> MEDIUMBLOB (até 16MB).

Também observe que podem ser utilizados artifícios para minimizar isto. Como o colega Jhonas mencionou, possivelmente você está "trazendo toda a tabela de uma vez" (na verdade o fetch é feito, inicialmente, no número de registros a ser mostrados nas linhas visíveis do DBGrid), mas se você estiver mostrando a imagem para cada linha seletada no DBGrid, você pode deixar o campo imagem fora do seu select, e utilizar uma outra querie para trazer apenas a imagem do item selecionado. É conveniente também lembrar, preferencialmente não deve-se utilizar instruções SQL como "SELECT * FROM ...", devendo ser inclusos no select apenas os campos a serem efetivamente utilizados.

cara, não guarde a foto no banco. isso é uma bola de neve. você terá grandes problemas de performance, alis já esta tendo. grave somente o caminho da imagem no banco.
Pelo que vejo por aí, isto é algo meio relativo e pessoal.

Em ambas abordagens, há prós e contras.

Colocar a imagem no banco garante a integridade desta informação, mas deixá-la em um diretório já nem tanto (pode ser excluída ou renomeada e o vínculo fica inconsistente)

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Sim Intendi Micheus.

eu fiz o que você citou, de utilizar outra query , e abrir somente os campos que vou utilizar...

ai onAfterScroll da minha tabela principal, eu dava um select na outra com apenas o campo foto mas ficou muiiiito lento...

eu tenho 11mil cadastros com 11mil fotos de 100K...

e sim.. são fotos .BMP, de 10k à 1mb cada.. eu recortei todas para ficarem em 100k ou menor... mas não funcionou.

deixando na pasta ficou muito mais rápido.

bom.. é isso.... abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...