E aí pessoal, estou fazendo uma carga de dados de arquivos XML para tabelas no Oracle e estou com um pequeno problema de performance dependendo do tamanho do arquivo XML.
Se o arquivo possui até uns 50 Kb, o procedimento é executado em menos de 1 minuto (Ok. Ótimo).
Arquivos com 200 Kb demoram em média 4 min. (Tempo aceitável).
Arquivos com 800 Kb demoram mais de 1 Hora. (Inaceitável).
Saberiam me dizer se o tamanho do arquivo XML é uma limitação no momento de extrair os dados ou se tenho problemas no meu código?
Até mais.
Estefan Macalli Alves
Analista de Sistemas
Psy Desenvolvimento de Sistemas Ltda.
Problemas de performance na extração de dados de Arquivo XML
-
- Rank: Estagiário Pleno
- Mensagens: 3
- Registrado em: Ter, 05 Ago 2008 5:08 pm
- Localização: Florianópolis - SC
-
- Rank: Estagiário Júnior
- Mensagens: 1
- Registrado em: Qua, 06 Ago 2008 2:38 pm
- Localização: Campinas
Fala ai brother, beleza?
De que forma você está fazendo a extração do XML?
Seria interessante você não extrair diretamente do arquivo e sim primeiramente armazená-lo em um tabela que contenha uma coluna XMLType para que você tenha todo o processamento no banco.
Abraços.
Grecco
De que forma você está fazendo a extração do XML?
Seria interessante você não extrair diretamente do arquivo e sim primeiramente armazená-lo em um tabela que contenha uma coluna XMLType para que você tenha todo o processamento no banco.
Abraços.
Grecco
-
- Rank: Estagiário Pleno
- Mensagens: 3
- Registrado em: Ter, 05 Ago 2008 5:08 pm
- Localização: Florianópolis - SC
Opa... descupe a demora,
Sim, já estou realizando este procedimento.
Primeiro armazeno em uma tabela com uma coluna XMLType. Depois vou extraindo as informações utilizando os índices através da função position(), segue exemplo:
Isso funciona bem, mas se o tamanho do arquivo contido na coluna XMLType aumenta um pouco, fica demorado demais.
Há outra forma de extrair os dados de uma coluna XMLType sem ser esta?
Sim, já estou realizando este procedimento.
Primeiro armazeno em uma tabela com uma coluna XMLType. Depois vou extraindo as informações utilizando os índices através da função position(), segue exemplo:
select extractValue(b.arquivo_xml,'/Linhas/Coluna[position() = '||v_count_coluna||']/@Nome'),
extractValue(b.arquivo_xml,'/Linhas/Coluna[position() = '||v_count_coluna||']/@Valor')
into v_nome_variavel,
v_valor_variavel
from tabela_xml b;
Há outra forma de extrair os dados de uma coluna XMLType sem ser esta?
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes