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?
Delphi - Salvando arquivos de campos BLOB.
- stcoutinho
- 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
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
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes