none
gravar imagens em muitos registros RRS feed

  • Pergunta

  • Boa Tarde caros colegas, já fiz uma pergunta semelhante aqui no fórum, mas parei com meu projeto e agora estou retornando.

      Questionei a respeito de armazenamento de imagens no banco e alguém me respondeu que se as imagens tivessem menos de 1MB poderia gravar diretamente no banco sem usar filestream.

      Porém fiquei pensando o seguinte: minhas imagens terão tamanho de aprox . 500KB, mas serão muitos registros. Isso é para um cadastro de pessoas, então cada pessoa terá sua foto gravada.

      Como disse, cada foto tem até 500KB, mas se o eu tiver 1 milhão de pessoas por exemplo, não ficaria incoveniente demais? Não seria melhor usar filestream?

    Grata!!!

    terça-feira, 29 de agosto de 2017 19:28

Respostas

  • Deleted
    • Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 30 de agosto de 2017 12:33
    • Marcado como Resposta LaraW quarta-feira, 30 de agosto de 2017 17:08
    • Não Marcado como Resposta LaraW quarta-feira, 30 de agosto de 2017 17:28
    • Marcado como Resposta LaraW quinta-feira, 31 de agosto de 2017 20:23
    terça-feira, 29 de agosto de 2017 20:57
  • Então ,pense  seguinte caso ,se vc tiver uma rotina que recupere 1 milhão de pessoas, carregando as fotos de todos , vai pesar mesmo.

    Obs:

    todas as rotinas que tenho , e limitado para devolver até 100 registros,  exceto as de relatórios, mas como não tenho relatório que mostre os nome das pessoas com suas fotos ,não é um problema.

    pesquisando sobre o assunto essa frase chamou a atenção 

    "Tenha em atenção que não há "melhor" caminho universalmente, mas apenas o que mais se adequa à sua necessidade específica."

    https://stackoverflow.com/questions/17199907/best-practice-for-saving-images-in-sql-server

    um ponto a ser observado é que  dependendo do volume de dados , vc pode armazenar apenas o caminho da imagem, assim o banco devolve aonde a imagem está e a aplicação a recupera 

    exemplo :

    https://www.codeproject.com/Articles/21208/Store-or-Save-images-in-SQL-Server

    Considerações :

    http://www.dofactory.com/topic/1379/best-practice-store-images-in-db-or-on-file-system.aspx

    https://dba.stackexchange.com/questions/131448/best-way-to-store-images-in-sql-server-2014

    https://stackoverflow.com/questions/5613898/storing-images-in-sql-server

    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"





    Wesley Neves

    • Marcado como Resposta LaraW quinta-feira, 31 de agosto de 2017 20:24
    quinta-feira, 31 de agosto de 2017 19:19

Todas as Respostas

  • Deleted
    • Marcado como Resposta LaraW terça-feira, 29 de agosto de 2017 20:22
    • Não Marcado como Resposta LaraW terça-feira, 29 de agosto de 2017 20:23
    terça-feira, 29 de agosto de 2017 19:37
  •    Sql Server 2012 com planos de mudar para o SQL 2014. Então  vai ser configururado no 2012 ou 2014.

      Não utiliza replicacao.

       Toda vez que consultar os dados da pessoa, vai exibir a foto dela na tela também.

    Grata

    terça-feira, 29 de agosto de 2017 19:44
  • Deleted
    • Marcado como Resposta LaraW terça-feira, 29 de agosto de 2017 20:22
    • Não Marcado como Resposta LaraW terça-feira, 29 de agosto de 2017 20:23
    terça-feira, 29 de agosto de 2017 20:15
  •   Tem alguma alguma opinião se é melhor usar filestream ou não?

    Grata

    terça-feira, 29 de agosto de 2017 20:17
  • Deleted
    • Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 30 de agosto de 2017 12:33
    • Marcado como Resposta LaraW quarta-feira, 30 de agosto de 2017 17:08
    • Não Marcado como Resposta LaraW quarta-feira, 30 de agosto de 2017 17:28
    • Marcado como Resposta LaraW quinta-feira, 31 de agosto de 2017 20:23
    terça-feira, 29 de agosto de 2017 20:57
  •      OK. E a quantidade de registros não tem influência?

    Grata

    quarta-feira, 30 de agosto de 2017 17:09
  • Bom dia Laraw , por que não utilizar o tipo  [varbinary] ??

    toda vez  que for buscar as pessoas , as imagens serão carregadas ??

    tem pergunto isso , para identificar uma estrategia de só carregar a imagem da pessoa quando for necessário.

    exemplo do que tenho no ambiente de produção .

    1) tenho uma busca de pessoa que carregam os campos da tabela, e uma flag para identificar se vou carregar a foto do usuário.

    2) uma outra busca que só me trás o ID,Nome e a foto .



    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"





    Wesley Neves

    quinta-feira, 31 de agosto de 2017 14:43
  •    Quanto a foto ser carregada ou não todas as vezes estamos analisando, mas supondo que fosse assim como você tem em seu ambiente(carregar só quando necessário), volto na questão da quantidade de registros. Mesmo sendo uma foto de 500KB por exemplo, mas se tratando de muitos registros, poderia armazenar em varbinary mesmo( sem usar filestream) ? 

       Eu sei que no final das contas terei que testar as duas situações, mas como a documentação já dá uma direçao em relação ao tamanho da foto, queria entender melhor sobre isso.

    Grata!!!

    quinta-feira, 31 de agosto de 2017 17:23
  • Então ,pense  seguinte caso ,se vc tiver uma rotina que recupere 1 milhão de pessoas, carregando as fotos de todos , vai pesar mesmo.

    Obs:

    todas as rotinas que tenho , e limitado para devolver até 100 registros,  exceto as de relatórios, mas como não tenho relatório que mostre os nome das pessoas com suas fotos ,não é um problema.

    pesquisando sobre o assunto essa frase chamou a atenção 

    "Tenha em atenção que não há "melhor" caminho universalmente, mas apenas o que mais se adequa à sua necessidade específica."

    https://stackoverflow.com/questions/17199907/best-practice-for-saving-images-in-sql-server

    um ponto a ser observado é que  dependendo do volume de dados , vc pode armazenar apenas o caminho da imagem, assim o banco devolve aonde a imagem está e a aplicação a recupera 

    exemplo :

    https://www.codeproject.com/Articles/21208/Store-or-Save-images-in-SQL-Server

    Considerações :

    http://www.dofactory.com/topic/1379/best-practice-store-images-in-db-or-on-file-system.aspx

    https://dba.stackexchange.com/questions/131448/best-way-to-store-images-in-sql-server-2014

    https://stackoverflow.com/questions/5613898/storing-images-in-sql-server

    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"





    Wesley Neves

    • Marcado como Resposta LaraW quinta-feira, 31 de agosto de 2017 20:24
    quinta-feira, 31 de agosto de 2017 19:19
  • Deleted
    quinta-feira, 31 de agosto de 2017 20:09
  •    Obrigada a todos pelas respostas. Vou analisar cada uma.

    Grata!!!

    quinta-feira, 31 de agosto de 2017 20:23