Delphi - Salvando arquivos de campos BLOB.

Este forum é destinado a perguntas relacionadas a Oracle, mas que não se enquadram nos forums acima. Aqui serão tratadas também sobre outras tecnologias da oracle, como o Workflow, BPEL, Spatial, OCS, etc.
Responder
Avatar do usuário
Marciel
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 158
Registrado em: Qui, 03 Mai 2007 10:12 am
Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.

Boa tarde,

Tenho um software de Gestão Eletrônica de Documentos, onde documentos digitalizados são salvos em uma tabela do banco de dados. Preciso desenvolver um recurso para salvar em disco um lote grande de documentos. Porém, esse recurso está extremamente lento! Já revi todo o código Delphi, testei diversas formas e componentes de acesso ao banco de dados, mas não obtive melhora significativa no desempenho. O gargalo está na leitura do campo BLOB do banco de dados.

A pergunta que tenho é meio vaga: existe alguma configuração do banco de dados que otimize a leitura de campos LOB?
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Marcel,

Desculpe, não sou programador DELPHI, mas dei uma pesquisada sobre o tema, e encontrei algumas informações que talvez lhe ajudem a detectar o que ocorre de errado.

Acredito que um campo BLOB sempre trará algum impacto ao ser lido, devido ao seu tamanho. Você precisa ver por exemplo qual o tamanho médio das informações que está sendo armazenado nesta coluna BLOB. Pelo que entendi, até 4000 bytes, o BLOB é armazenado inteiro na linha. Só que lembra-se que seu registro pode ocupar mais de um bloco, podendo resultar daí "migrações de linha" que podem "dificultar" a leitura.

- Neste link (http://forums.devart.com/viewtopic.php?t=5529) o forista esclarece que a performance de leitura de campos LOB pode ser significativamente melhorada se você utilizar o ORACLE DIRECT ACCESS (ODAC) ao invés do DBEXPRESS. Imagino que estes sejam métodos que permitem o DELPHI acessar uma base de dados ORACLE;

- Neste link (http://www.devrace.com/en/fibplus/articles/2161.php) o autor dá algumas dicas de como trabalhar com BLOBs no DELPHI. Entendo que você deve já saber como usar o DELPHI, mas me parece que tem uma ou outra dica de performance associada;

- Não sei se você tem o suporte de um DBA, mas existe uma série de notas técnicas ORACLE que podem dar uma sugestão de algum parâmetro que possa ser configurado para uma melhora de performance. Seguem alguns links:

http://serverfault.com/questions/345253 ... ately-slow
http://docs.oracle.com/cd/B28359_01/app ... rmance.htm

ARTIGO ORACLE SUPPORT : LOBS - Storage, Redo and Performance Issues [ID 66431.1]
ARTIGO ORACLE SUPPORT : LOB Performance Guideline [ID 268476.1]-

Abraços e boa sorte,

Sergio Coutinho
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes