Loading ...
Sorry, an error occurred while loading the content.
 

Res: [riojug] Ajuda com Arquivos Gigantes

Expand Messages
  • Marco Antonio Maciel
    Não tem como precisar o tamanho. Para vc ter uma idéia. O programa ficou percorrendo o BufferedReader por mais 25 minutos. Andava um tanto e parava... e
    Message 1 of 5 , Dec 15, 2008
      Não tem como precisar o tamanho.

      Para vc ter uma idéia. O programa ficou percorrendo o BufferedReader por mais 25 minutos. Andava um tanto e parava... e ficou nessa. Não aguentei e parei o processo. Isso em um registro.
      Esses arquivos podem ter poucas informações, e serem pequenos (10kb), mas também podem ser grandes como esse que eu falei, que enquanto estava lendo já estava com quase 1MB.
      Estou preocupado com a performance, pois tenho que ler 50.000 registros e se for a essa velocidade não vai dar.

      Se precisar de mais algum detalhe pode falar.

      Abs.


      De: Cattapan <cattapan@...>
      Para: riojug@yahoogroups.com
      Enviadas: Segunda-feira, 15 de Dezembro de 2008 17:22:45
      Assunto: Re: [riojug] Ajuda com Arquivos Gigantes

      Qual o tamanho do arquivo?

      Bernardo Cattapan


      2008/12/15 Marco Antonio Maciel <maciel3000@yahoo. com.br>

      Oi amigos.
      Estou com um problema e preciso da ajuda de vcs.
      Tenho que ler alguns dados históricos de informações de vários arquivos XML num banco de dados, mas o problema é que os arquivos XMLs foram armazenados inteiros no BD num campo text (SyBase). A documentação do Sybase diz que o tipo Text deve ser associado ao String do Java. Tentei Clob e Blob e não rola.
      O maior problema é que esses arquivos armazenados são gigantescos e quando leio oregistro para recuperar o arquivo até que vai rápido, mas a leitura do campo em si é MUITO demorada.

      Tentei jogar o valor do campo em uma String usando rs.getString( nomeDoCampo) mas essa leitura ficou MUITO lenta.
      Depois tentei usar um BufferedReader com o comando rs.getCharacterStre am(nomeDoCampo). Ficou rápido de carregar no objeto BufferedReader, mas a leitura usando readLine() ficou MUITO lenta também. Nas primeiras linhas até vai rápido, mas como o arquivo é grande tem um momento que ele para.
      Estou usando  -Xms512m -Xmx750m, mas não melhorou em nada a performance.

      Será que existe um outro meio de ler esse arquivo de maneira mais eficiente?

      Estou ficando sem idéias. Preciso muito de ajuda.
      Qualquer idéia serve.

      Abraços, Marco.


      Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes



      Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes
    • Cattapan
      Cara, aquivo de 1MB está muito longe de ser sequer grande. Voce tem algum problema ai na comunicacao com Sybase. o getString era para funcionar a contento. O
      Message 2 of 5 , Dec 15, 2008
        Cara, aquivo de 1MB está muito longe de ser sequer grande.
        Voce tem algum problema ai na comunicacao com Sybase. o getString era para funcionar a contento.

        O seu bottleneck aí muito provavelmente será a rede.
        Uma coisa que você pode dar uma olhada é na documentacao do driver jdbc pro Sybase. de repente tem alguma informação interessante lá sobre isso.

        Em relação a performance, se você tem que ler 50 mil registros, cada registro com um mega, realmente você tem um problema, cara. Pode melhorar a performance que a sua memória vai estourar. Sua estratégia de consulta deve ser revista. Você nao deve trazer esses campos todos para memória de uma vez.

        Bernardo Cattapan


        2008/12/15 Marco Antonio Maciel <maciel3000@...>

        Não tem como precisar o tamanho.

        Para vc ter uma idéia. O programa ficou percorrendo o BufferedReader por mais 25 minutos. Andava um tanto e parava... e ficou nessa. Não aguentei e parei o processo. Isso em um registro.
        Esses arquivos podem ter poucas informações, e serem pequenos (10kb), mas também podem ser grandes como esse que eu falei, que enquanto estava lendo já estava com quase 1MB.
        Estou preocupado com a performance, pois tenho que ler 50.000 registros e se for a essa velocidade não vai dar.

        Se precisar de mais algum detalhe pode falar.

        Abs.


        De: Cattapan <cattapan@...>
        Para: riojug@yahoogroups.com
        Enviadas: Segunda-feira, 15 de Dezembro de 2008 17:22:45
        Assunto: Re: [riojug] Ajuda com Arquivos Gigantes

        Qual o tamanho do arquivo?

        Bernardo Cattapan


        2008/12/15 Marco Antonio Maciel <maciel3000@yahoo. com.br>

        Oi amigos.
        Estou com um problema e preciso da ajuda de vcs.
        Tenho que ler alguns dados históricos de informações de vários arquivos XML num banco de dados, mas o problema é que os arquivos XMLs foram armazenados inteiros no BD num campo text (SyBase). A documentação do Sybase diz que o tipo Text deve ser associado ao String do Java. Tentei Clob e Blob e não rola.
        O maior problema é que esses arquivos armazenados são gigantescos e quando leio oregistro para recuperar o arquivo até que vai rápido, mas a leitura do campo em si é MUITO demorada.

        Tentei jogar o valor do campo em uma String usando rs.getString( nomeDoCampo) mas essa leitura ficou MUITO lenta.
        Depois tentei usar um BufferedReader com o comando rs.getCharacterStre am(nomeDoCampo). Ficou rápido de carregar no objeto BufferedReader, mas a leitura usando readLine() ficou MUITO lenta também. Nas primeiras linhas até vai rápido, mas como o arquivo é grande tem um momento que ele para.

        Estou usando  -Xms512m -Xmx750m, mas não melhorou em nada a performance.

        Será que existe um outro meio de ler esse arquivo de maneira mais eficiente?

        Estou ficando sem idéias. Preciso muito de ajuda.
        Qualquer idéia serve.

        Abraços, Marco.


        Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes



        Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes

      • Marco Antonio Maciel
        Eu já pesquisei na documentação do JDBC, mas não achei nada sobre isso. Estou até usando outro driver de outro fornecedor e o problema é o mesmo. Eu sei
        Message 3 of 5 , Dec 15, 2008
          Eu já pesquisei na documentação do JDBC, mas não achei nada sobre isso. Estou até usando outro driver de outro fornecedor e o problema é o mesmo.
          Eu sei que 50.000 é muita coisa. Minha idéia é consultar usando intervalos, mas mesmo assim, do jeito que está não vai ficar legal.

          Vou dar uma olhada melhor na doc do jdbc. De repente alguma coisa passou batido.

          Valeu.


          De: Cattapan <cattapan@...>
          Para: riojug@yahoogroups.com
          Enviadas: Segunda-feira, 15 de Dezembro de 2008 18:07:04
          Assunto: Re: [riojug] Ajuda com Arquivos Gigantes

          Cara, aquivo de 1MB está muito longe de ser sequer grande.
          Voce tem algum problema ai na comunicacao com Sybase. o getString era para funcionar a contento.

          O seu bottleneck aí muito provavelmente será a rede.
          Uma coisa que você pode dar uma olhada é na documentacao do driver jdbc pro Sybase. de repente tem alguma informação interessante lá sobre isso.

          Em relação a performance, se você tem que ler 50 mil registros, cada registro com um mega, realmente você tem um problema, cara. Pode melhorar a performance que a sua memória vai estourar. Sua estratégia de consulta deve ser revista. Você nao deve trazer esses campos todos para memória de uma vez.

          Bernardo Cattapan


          2008/12/15 Marco Antonio Maciel <maciel3000@yahoo. com.br>

          Não tem como precisar o tamanho.

          Para vc ter uma idéia. O programa ficou percorrendo o BufferedReader por mais 25 minutos. Andava um tanto e parava... e ficou nessa. Não aguentei e parei o processo. Isso em um registro.
          Esses arquivos podem ter poucas informações, e serem pequenos (10kb), mas também podem ser grandes como esse que eu falei, que enquanto estava lendo já estava com quase 1MB.
          Estou preocupado com a performance, pois tenho que ler 50.000 registros e se for a essa velocidade não vai dar.

          Se precisar de mais algum detalhe pode falar.

          Abs.


          De: Cattapan <cattapan@gmail. com>
          Para: riojug@yahoogroups. com
          Enviadas: Segunda-feira, 15 de Dezembro de 2008 17:22:45
          Assunto: Re: [riojug] Ajuda com Arquivos Gigantes

          Qual o tamanho do arquivo?

          Bernardo Cattapan


          2008/12/15 Marco Antonio Maciel <maciel3000@yahoo. com.br>

          Oi amigos.
          Estou com um problema e preciso da ajuda de vcs.
          Tenho que ler alguns dados históricos de informações de vários arquivos XML num banco de dados, mas o problema é que os arquivos XMLs foram armazenados inteiros no BD num campo text (SyBase). A documentação do Sybase diz que o tipo Text deve ser associado ao String do Java. Tentei Clob e Blob e não rola.
          O maior problema é que esses arquivos armazenados são gigantescos e quando leio oregistro para recuperar o arquivo até que vai rápido, mas a leitura do campo em si é MUITO demorada.

          Tentei jogar o valor do campo em uma String usando rs.getString( nomeDoCampo) mas essa leitura ficou MUITO lenta.
          Depois tentei usar um BufferedReader com o comando rs.getCharacterStre am(nomeDoCampo). Ficou rápido de carregar no objeto BufferedReader, mas a leitura usando readLine() ficou MUITO lenta também. Nas primeiras linhas até vai rápido, mas como o arquivo é grande tem um momento que ele para.

          Estou usando  -Xms512m -Xmx750m, mas não melhorou em nada a performance.

          Será que existe um outro meio de ler esse arquivo de maneira mais eficiente?

          Estou ficando sem idéias. Preciso muito de ajuda.
          Qualquer idéia serve.

          Abraços, Marco.


          Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes



          Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes



          Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes
        • bruno.borges@gmail.com
          Eu recomendo você utilizar uma função do Sybase para jogar o conteúdo para um arquivo local em disco. Depois, processar o XML normalmente, usando SAX ou
          Message 4 of 5 , Dec 15, 2008
            Eu recomendo você utilizar uma função do Sybase para jogar o conteúdo para um arquivo local em disco.

            Depois, processar o XML normalmente, usando SAX ou DOM. Se o XML eh realmente grande, então use SAX.

            []'s
            Bruno

            On Dec 15, 2008 5:45pm, Marco Antonio Maciel <maciel3000@...> wrote:
            >
            >
            >
            >
            >
            >
            >
            >
            >
            > Não tem como precisar o tamanho.
            >
            > Para vc ter uma idéia. O programa ficou percorrendo o
            > BufferedReader por mais 25 minutos. Andava um tanto e parava... e ficou
            > nessa. Não aguentei e parei o processo. Isso em um registro.
            > Esses arquivos podem ter poucas informações, e
            > serem pequenos (10kb), mas também podem ser grandes como esse que eu falei, que enquanto estava lendo já estava com quase 1MB.
            > Estou preocupado com a performance, pois tenho que ler 50.000 registros e se for a essa velocidade não vai dar.
            >
            > Se precisar de mais algum detalhe pode falar.
            >
            > Abs.
            >
            > De: Cattapan cattapan@...>
            > Para: riojug@yahoogroups.com
            > Enviadas: Segunda-feira, 15 de Dezembro de 2008 17:22:45
            > Assunto: Re: [riojug] Ajuda com Arquivos Gigantes
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            > Qual o tamanho do arquivo?
            > Bernardo Cattapan
            >
            >
            >
            > 2008/12/15 Marco Antonio Maciel maciel3000@yahoo. com.br>
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            > Oi amigos.
            > Estou com um problema e preciso da ajuda de vcs.
            > Tenho que ler alguns dados históricos de informações de vários arquivos XML num banco de dados, mas o problema é que os arquivos XMLs foram armazenados inteiros no BD num campo text (SyBase). A documentação do Sybase diz que o tipo Text deve ser associado ao String do Java. Tentei Clob e Blob e não rola.
            >
            > O maior problema é que esses arquivos armazenados são gigantescos e quando leio oregistro para recuperar o arquivo até que vai rápido, mas a leitura do campo em si é MUITO demorada.
            >
            > Tentei jogar o valor do campo em uma String usando rs.getString( nomeDoCampo) mas essa leitura ficou MUITO lenta.
            >
            > Depois tentei usar um BufferedReader com o comando
            > rs.getCharacterStre am(nomeDoCampo). Ficou rápido de carregar no objeto BufferedReader, mas a leitura usando readLine() ficou MUITO lenta também. Nas primeiras linhas até vai rápido, mas como o arquivo é grande tem um momento que ele para.
            >
            > Estou usando  -Xms512m -Xmx750m, mas não melhorou em nada a performance.
            >
            > Será que existe um outro meio de ler esse arquivo de maneira mais eficiente?
            >
            > Estou ficando sem idéias. Preciso muito de ajuda.
            >
            > Qualquer idéia serve.
            >
            > Abraços, Marco.
            >
            >
            >
            >
            >
            >
            > Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            > Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes
            >
            >
            >
            >
            >
            >
            >
            >
          • Jorge Robert
            Boa noite   Estou com uma seria dificuldade para implementar os mapeamentos pai e filho para gravar simultaneamente . E quero pedir a ajuda dos expert em
            Message 5 of 5 , Dec 16, 2008
              Boa noite
               
              Estou com uma seria dificuldade para implementar os mapeamentos pai e filho para gravar "simultaneamente". E quero pedir a ajuda dos "expert" em Hibernate. 
               
              Me explico:
               
              Se uma tabela C tem dois pais, A e B
               
              TabA    TabB
              ---> TabC
               
              Consigo fazer many-to-many e o H. grava diretinho em C, mesmo tendo a PK de A só em tempo de execução. Mas ele se vira, sabe que tem que calcular uma nova chave para A e depois usar essa chave, mais a de B para gravar os N;N registros em C. Ficou muito legal !  Do lado de B também funciona bem ...
               
              Até ai, sem problemas, a questão está quando só tem um pai, digamos
               
              TabA
              ---> id (pk)  autoincremento no mapa de Hibernate
              ----> descricao
               
              e TabB
              ----> id  (pk)
              ---> id_tabA (pk) ( FK)
              só ...
               
              Todos os exemplos que achei de mapeamentos ONE-TO-MANY , e que implementei para testar funcionam do mesmo jeito:
              Salvam primeiro o Pai e depois os filhos ... simples mapeamentos por tabelas concretas e ponto , o resto é com o analista. 
               
              Mas eu quero saber se tem uma forma de, como no caso N:N, de mapear de tal forma que o Hibernate faça tudo, sozinho ...
               
              Por exemplo cadastrar/lançar uma Nota Fiscal e seus itens ... obviamente  no momento de cadastrar não se conhece o número (id) da nota, porém sabemos que ele deve fazer parde do item ( chave natural ou não ! )
               
              É isso, simples como isso, qualquer ajuda neste sentido será muito bembinda !
               
              Obrigado a todos !

              Atenciosamente,

              Jorge Robert


              Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes
            Your message has been successfully submitted and would be delivered to recipients shortly.