Carregando ...
Desculpe, ocorreu um erro ao carregar o conteúdo.
 

tempo de pesquisa (upload / download) - imagem em arquivo ou em banco de dados

Expandir mensagens
  • Vitor Bueno
    Olá pessoal, estou com uma dúvida de processo e gostaria de uma ajuda de vocês referente ao seguinte caso na empresa: - fazemos escaneamento de documentos
    Mensagem 1 de 6 , 23 de nov de 2016
      Olá pessoal, 

      estou com uma dúvida de processo e gostaria de uma ajuda de vocês referente ao seguinte caso na empresa:

      - fazemos escaneamento de documentos para atendimentos médicos (prontuários, resultados de exames e afins) e disponibilizamos isto na web para o cliente baixar. Isto já funciona.

      Temos hoje 360 mil arquivos que ocupam 80GB em disco. Estou avaliando de melhorar este processo (inclusive backup).  


      Dúvidas:

      1. um insert desta imagem no banco de dados é melhor (ou mais rápido) ser feita direto no banco de dados ou em forma de arquivo mesmo?

      2. o download, por sua vez, fica melhor (mais veloz) buscar de um banco indexado ou procurar numa estrutura de arquivos?

      3. uma imagem salva em arquivo ocupa o mesmo tamanho de uma imagem em SQL - digo, salvando no banco de dados, 10mil imagens o banco aumentaria de tamanho os mesmos bytes que 10mil arquivos salvos em diretório?



      Alguém teria alguns pitacos para dar neste processo?

      Operamos com SQLServer 2012.


      Grato pela colaboração.

      Vitor
    • Paulo Palopoli
      Olá Vitor, todas as experiências que tive em sistemas que armazenavam a imagem em banco foram negativas, o procedimento para colocar e tirar a imagem do
      Mensagem 2 de 6 , 23 de nov de 2016
        Olá Vitor, todas as experiências que tive em sistemas que armazenavam a imagem em banco foram negativas, o procedimento para colocar e tirar a imagem do banco tornam a aplicação mais pesada, sem contar que o servidor web é otimizado para servir arquivos do disco, e isso é perdido.

        Minha recomendação é não faze-lo, e se está procurando performance, utilize discos SSD e habilite cache HTTP para o diretório de imagens (facilmente configurado via web.config/.htaccess) eles tornaram a aplicação mais rápida!

        Mesmo que o SQL Server tenha evoluído nos últimos anos, as técnicas para servir esta imagem não são "naturais" e cada ação a mais irá consumir recurso adicional, ou seja, não há como haver ganhos de performance.




        Em Quarta-feira, 23 de Novembro de 2016 9:16, "Vitor Bueno vycthor@... [mssql-l]" <mssql-l@...> escreveu:


         
        Olá pessoal, 

        estou com uma dúvida de processo e gostaria de uma ajuda de vocês referente ao seguinte caso na empresa:

        - fazemos escaneamento de documentos para atendimentos médicos (prontuários, resultados de exames e afins) e disponibilizamos isto na web para o cliente baixar. Isto já funciona.

        Temos hoje 360 mil arquivos que ocupam 80GB em disco. Estou avaliando de melhorar este processo (inclusive backup).  


        Dúvidas:

        1. um insert desta imagem no banco de dados é melhor (ou mais rápido) ser feita direto no banco de dados ou em forma de arquivo mesmo?

        2. o download, por sua vez, fica melhor (mais veloz) buscar de um banco indexado ou procurar numa estrutura de arquivos?

        3. uma imagem salva em arquivo ocupa o mesmo tamanho de uma imagem em SQL - digo, salvando no banco de dados, 10mil imagens o banco aumentaria de tamanho os mesmos bytes que 10mil arquivos salvos em diretório?



        Alguém teria alguns pitacos para dar neste processo?

        Operamos com SQLServer 2012.


        Grato pela colaboração.

        Vitor


      • Andre Luiz Reis Marques
        Olá Vitor, Ja trabalhei com armazenamento de imagens em três lugares. Em todos esses lugares, guardávamos a imagem em um storage e o que fica armazenado no
        Mensagem 3 de 6 , 23 de nov de 2016
          Olá Vitor,

          Ja trabalhei com armazenamento de imagens em três lugares.

          Em todos esses lugares, guardávamos a imagem em um storage e o que fica armazenado no banco é o caminho da mesma.

          A pratica mais aplicada é essa, ou seja o caso 2 é o mais praticado.
           

          Atenciosamente, 
          André Luiz R. Marques
          Administrador de Banco de Dados - SQL Server/Oracle
          Tel: (21) 99978-4564
           
          Evite imprimir. Colabore com o Meio Ambiente!
           
          "Embora ninguém possa voltar atrás e fazer um novo começo, qualquer um pode
          começar agora e fazer um novo fim."
                         Chico Xavier



          Em Quarta-feira, 23 de Novembro de 2016 9:16, "Vitor Bueno vycthor@... [mssql-l]" <mssql-l@...> escreveu:


           
          Olá pessoal, 

          estou com uma dúvida de processo e gostaria de uma ajuda de vocês referente ao seguinte caso na empresa:

          - fazemos escaneamento de documentos para atendimentos médicos (prontuários, resultados de exames e afins) e disponibilizamos isto na web para o cliente baixar. Isto já funciona.

          Temos hoje 360 mil arquivos que ocupam 80GB em disco. Estou avaliando de melhorar este processo (inclusive backup).  


          Dúvidas:

          1. um insert desta imagem no banco de dados é melhor (ou mais rápido) ser feita direto no banco de dados ou em forma de arquivo mesmo?

          2. o download, por sua vez, fica melhor (mais veloz) buscar de um banco indexado ou procurar numa estrutura de arquivos?

          3. uma imagem salva em arquivo ocupa o mesmo tamanho de uma imagem em SQL - digo, salvando no banco de dados, 10mil imagens o banco aumentaria de tamanho os mesmos bytes que 10mil arquivos salvos em diretório?



          Alguém teria alguns pitacos para dar neste processo?

          Operamos com SQLServer 2012.


          Grato pela colaboração.

          Vitor


        • Marcos Kirchner
          Olá Vitor, Se você estiver considerando gravar isso no banco de dados em um campo, formato BLOB, a opção de arquivos direto no FileSystem em geral é mais
          Mensagem 4 de 6 , 23 de nov de 2016

            Olá Vitor,

             

            Se você estiver considerando gravar isso no banco de dados em um campo, formato BLOB, a opção de arquivos direto no FileSystem em geral é mais rápida e eficiente. O espaço dentro do banco seria maior e o custo também.

            Porém no SQL Server você pode gravar campos blob no FileSystem, existe uma funcionalidade chamada FILESTREAM. Se não me engano existe desde o SQL Server 2008.

             

            Desta forma o arquivo em disco é parte integrante do teu banco de dados, é considerado nos backups e nas validações de consistência, mas ainda assim você pode ter as vantagens do formato de armazenamento e acesso via streaming com as APIs padrão de FileSystem.

             

            Faz uma pesquisa por “sql server filestream” que vai encontrar muito material.

             

             

             

            Att,

            Marcos

             

             

             

             

            De: mssql-l@... [mailto:mssql-l@...]
            Enviada em: quarta-feira, 23 de novembro de 2016 09:16
            Para: mssql-l@...
            Assunto: [mssql-l] tempo de pesquisa (upload / download) - imagem em arquivo ou em banco de dados

             

             

            Olá pessoal, 

             

            estou com uma dúvida de processo e gostaria de uma ajuda de vocês referente ao seguinte caso na empresa:

             

            - fazemos escaneamento de documentos para atendimentos médicos (prontuários, resultados de exames e afins) e disponibilizamos isto na web para o cliente baixar. Isto já funciona.

             

            Temos hoje 360 mil arquivos que ocupam 80GB em disco. Estou avaliando de melhorar este processo (inclusive backup).  

             

             

            Dúvidas:

             

            1. um insert desta imagem no banco de dados é melhor (ou mais rápido) ser feita direto no banco de dados ou em forma de arquivo mesmo?

             

            2. o download, por sua vez, fica melhor (mais veloz) buscar de um banco indexado ou procurar numa estrutura de arquivos?

             

            3. uma imagem salva em arquivo ocupa o mesmo tamanho de uma imagem em SQL - digo, salvando no banco de dados, 10mil imagens o banco aumentaria de tamanho os mesmos bytes que 10mil arquivos salvos em diretório?

             

             

             

            Alguém teria alguns pitacos para dar neste processo?

             

            Operamos com SQLServer 2012.

             

             

            Grato pela colaboração.

             

            Vitor

            -- 
            
            
            
            
            
            AVISO LEGAL:
            Esta mensagem da TOTVS, incluindo seus anexos, é destinada exclusivamente para a(s) pessoa(s) a quem é dirigida, podendo conter informação confidencial e/ou privilegiada. Se você não for destinatário desta mensagem, desde já fica notificado de abster-se a divulgar, copiar, distribuir, examinar ou, de qualquer forma, utilizar a informação contida nesta mensagem, por ser ilegal, sujeitando o infrator as penas da lei. Caso você tenha recebido esta mensagem por engano, pedimos que nos retorne este e-mail, eliminando o seu conteúdo de sua base de dados, registros ou sistema de controle. Informações transmitidas por e-mail podem ser alteradas por terceiros, não havendo garantia de que sua integridade foi mantida e que esteja livre de vírus, interceptação ou interferência, não podendo ser imputaa qualquer responsabilidade TOTVS com relação ao seu conteúdo.
            
            LEGAL NOTICE:
            This message from TOTVS, including its exhibits, is intended exclusively for the person(s) to whom it is addressed, and may contain confidential and/or privileged information. If you are not a recipient of this message, you are hereby notified to refrain from disclosing, copying, distributing, examining or, in any way, using the information contained in this message, as it is illegal, subjecting the infringer to the penalties of the law. If you have received this message in error, we ask you to return this email to us, by deleting its content from your database, records or control system. Information transmitted by e-mail may be changed by third parties, and there is no guarantee that its integrity has been maintained and that it is free of viruses, interception or interference, and no responsibility will be attributed to TOTVS in relation to its content.
            
            AVISO LEGAL:
            Este mensaje de TOTVS, Incluyendo sus documentos adjuntos, se destina exclusivamente a la(s) persona(s) a quien(es) se dirige, pudiendo contener información confidencial y/o privilegiada. Si no es el destinatario de este mensaje, queda notificado de abstenerse de divulgar, copiar, distribuir, examinar, o de cualquier forma, utilizar la información contenida en este mensaje, por ser ilegal, sujetándose el infractor a las penas de ley. Si recibió este mensaje por error, le pedimos que nos devuelva este e-mail, borrando el contenido de su base de datos, registros o sistema de control. La información transmitida por e-mail puede ser modificada por terceros, no habiendo garantía de que mantenga su integridad y que esté libre de virus, interceptación o interferencia, sin poder imputarse ninguna responsabilidad a TOTVS con relación a su contenido.
          • Vitor Bueno
            Agradeço todos que mandaram opiniões a respeito. Estivemos estudando o caso do filestream mas pelo tamanho das imagens, a própria literatura recomenda em
            Mensagem 5 de 6 , 5 de dez de 2016
              Agradeço todos que mandaram opiniões a respeito. 

              Estivemos estudando o caso do filestream mas pelo tamanho das imagens, a própria literatura recomenda em não salvar no banco (imagens pequenas).

              Vamos avaliar este cache do httpd e a migração para o SSD. 

              Grato.

              att



              2016-11-23 10:06 GMT-02:00 Paulo Palopoli ppalopoli@... [mssql-l] <mssql-l@...>:
               

              Olá Vitor, todas as experiências que tive em sistemas que armazenavam a imagem em banco foram negativas, o procedimento para colocar e tirar a imagem do banco tornam a aplicação mais pesada, sem contar que o servidor web é otimizado para servir arquivos do disco, e isso é perdido.

              Minha recomendação é não faze-lo, e se está procurando performance, utilize discos SSD e habilite cache HTTP para o diretório de imagens (facilmente configurado via web.config/.htaccess) eles tornaram a aplicação mais rápida!

              Mesmo que o SQL Server tenha evoluído nos últimos anos, as técnicas para servir esta imagem não são "naturais" e cada ação a mais irá consumir recurso adicional, ou seja, não há como haver ganhos de performance.




              Em Quarta-feira, 23 de Novembro de 2016 9:16, "Vitor Bueno vycthor@... [mssql-l]" <mssql-l@...> escreveu:


               
              Olá pessoal, 

              estou com uma dúvida de processo e gostaria de uma ajuda de vocês referente ao seguinte caso na empresa:

              - fazemos escaneamento de documentos para atendimentos médicos (prontuários, resultados de exames e afins) e disponibilizamos isto na web para o cliente baixar. Isto já funciona.

              Temos hoje 360 mil arquivos que ocupam 80GB em disco. Estou avaliando de melhorar este processo (inclusive backup).  


              Dúvidas:

              1. um insert desta imagem no banco de dados é melhor (ou mais rápido) ser feita direto no banco de dados ou em forma de arquivo mesmo?

              2. o download, por sua vez, fica melhor (mais veloz) buscar de um banco indexado ou procurar numa estrutura de arquivos?

              3. uma imagem salva em arquivo ocupa o mesmo tamanho de uma imagem em SQL - digo, salvando no banco de dados, 10mil imagens o banco aumentaria de tamanho os mesmos bytes que 10mil arquivos salvos em diretório?



              Alguém teria alguns pitacos para dar neste processo?

              Operamos com SQLServer 2012.


              Grato pela colaboração.

              Vitor



            • angelo
              Outra forma também poderia jogar essas imagens no Amazon (S3) e fazer referencia a ela, pelo banco de dados do que armazenar em blob Porque armazenar imagens
              Mensagem 6 de 6 , 6 de dez de 2016

                Outra forma também poderia jogar essas imagens no Amazon (S3) e fazer referencia a ela, pelo banco de dados do que armazenar em blob

                Porque armazenar imagens no local também sai caro.  E o pior, num backup de arquivos, as imagens (jpeg pelo menos) nao compactam... 

                []s angelo



                2016-12-05 10:32 GMT-02:00 Vitor Bueno vycthor@... [mssql-l] <mssql-l@...>:
                 

                Agradeço todos que mandaram opiniões a respeito. 

                Estivemos estudando o caso do filestream mas pelo tamanho das imagens, a própria literatura recomenda em não salvar no banco (imagens pequenas).

                Vamos avaliar este cache do httpd e a migração para o SSD. 

                Grato.

                att



                2016-11-23 10:06 GMT-02:00 Paulo Palopoli ppalopoli@... [mssql-l] <mssql-l@...>:
                 

                Olá Vitor, todas as experiências que tive em sistemas que armazenavam a imagem em banco foram negativas, o procedimento para colocar e tirar a imagem do banco tornam a aplicação mais pesada, sem contar que o servidor web é otimizado para servir arquivos do disco, e isso é perdido.

                Minha recomendação é não faze-lo, e se está procurando performance, utilize discos SSD e habilite cache HTTP para o diretório de imagens (facilmente configurado via web.config/.htaccess) eles tornaram a aplicação mais rápida!

                Mesmo que o SQL Server tenha evoluído nos últimos anos, as técnicas para servir esta imagem não são "naturais" e cada ação a mais irá consumir recurso adicional, ou seja, não há como haver ganhos de performance.




                Em Quarta-feira, 23 de Novembro de 2016 9:16, "Vitor Bueno vycthor@... [mssql-l]" <mssql-l@...> escreveu:


                 
                Olá pessoal, 

                estou com uma dúvida de processo e gostaria de uma ajuda de vocês referente ao seguinte caso na empresa:

                - fazemos escaneamento de documentos para atendimentos médicos (prontuários, resultados de exames e afins) e disponibilizamos isto na web para o cliente baixar. Isto já funciona.

                Temos hoje 360 mil arquivos que ocupam 80GB em disco. Estou avaliando de melhorar este processo (inclusive backup).  


                Dúvidas:

                1. um insert desta imagem no banco de dados é melhor (ou mais rápido) ser feita direto no banco de dados ou em forma de arquivo mesmo?

                2. o download, por sua vez, fica melhor (mais veloz) buscar de um banco indexado ou procurar numa estrutura de arquivos?

                3. uma imagem salva em arquivo ocupa o mesmo tamanho de uma imagem em SQL - digo, salvando no banco de dados, 10mil imagens o banco aumentaria de tamanho os mesmos bytes que 10mil arquivos salvos em diretório?



                Alguém teria alguns pitacos para dar neste processo?

                Operamos com SQLServer 2012.


                Grato pela colaboração.

                Vitor




              Sua mensagem foi enviada com êxito e será entregue aos destinatários em breve.