none
Srink Database RRS feed

  • Pergunta

  • Estou  usando sql server express 2012

    ele está com 2 gigas de mdf, excluimos uma tabela que não precisávamos mais

    fiz o srink database e o  mdf foi para 600 megas

    o que fiz está correto?

    • Tipo Alterado Eduardo.Romero segunda-feira, 20 de abril de 2015 12:42 Discussão
    • Tipo Alterado Durval RamosModerator segunda-feira, 25 de maio de 2015 18:47 Motivo: Existe uma resposta objetiva para este Thread
    sexta-feira, 17 de abril de 2015 13:53

Respostas

  • Jceoms,

    Seguindo a mesma linha de raciocínio dos amigos, eu aconselharia a utilizar um Plano de Manutenção para seus bancos de dados, configurando algumas atividades como:

    Eu procuro respeitar a própria sequência de atividades apresentandas pelo Maintenance Plan Wizard, mas cabe a você analisar a melhor estratégia.


    Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 17 de abril de 2015 14:47
  • jceoms,

    O SHRINK não é desaconselhável. Apenas o que você tem que pensar é se o espaço que foi liberado será ocupado rapidamente. 

    Exemplo: você liberou esses 1,4 GB só que sua base cresce, por semana, 1 GB. 

    Aí você libera, faz o Shrink hoje e o SQL terá que "sofrer" pra ficar crescendo o arquivo físico para ter esse 1 GB na semana.

    Se sua base não cresce rapidamente, efetuar o shrink é uma boa prática sim. Sem problemas. 

    Siga as recomendações do Durval e do Junior.



    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    sexta-feira, 17 de abril de 2015 14:56
  • o que voce quis dizer com a manutenção dos índices?

    existe uma rotina especifica para isto?

    Jceoms,

    Quero dizer que normalmente é necessário criar um "Plano de Manutenção" adequado às necessidades de utilização de sua instância SQL. Criando rotinas para "reconstruir" ou "reorganizar" os dados de acordo com o quanto os índices de seu banco de dados estão fragmentados.

    Veja abaixo que você poderá criar este "Plano de Manutenção" no SSMS,

    clicando em "Management" -> "Maintenance Plan" -> botão direito -> "new Maintenance Plan...":

    Não vou entrar em mais detalhes para não fugir deste "tópico", posteriormente se desejar você pode abrir um novo tópico sobre este assunto.

    --------------------------------------------------------

    tem que ser feito depois que fizer o srink?

    Sim. Para manter seu banco de dados "organizado" e com uma boa performance.

    Não esqueça de marcar como resposta todos os posts que ajudaram na solução !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    sexta-feira, 17 de abril de 2015 17:42
    Moderador
  • Jceoms,

    O ideal seria a realização de um BACKUP FULL antes deste procedimento (apenas por segurança) e também em um horário "alternativo", isso porque o servidor poderá sofrer com perda de desempenho ou bloqueio de outras operações e também parte de seu banco de dados poderá ser fragmentado.

    Quando o objetivo é liberar o "espaço desocupado" para o armazenamento, então utilizar o SHRINK é uma boa opção. Procure agendar uma manutenção em seus índices para evitar impactos na performance da manipulação dos dados.

    Para maiores informações veja:

    https://msdn.microsoft.com/pt-br/library/ms189035.aspx

    https://msdn.microsoft.com/pt-br/library/ms190488.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"


    sexta-feira, 17 de abril de 2015 14:40
    Moderador

Todas as Respostas

  • Olá,

    A ideia é essa mesmo, o shrink libera o espaço que está "resevado" pelo banco de dados mas que não contém arquivos de registros, dessa forma, as vezes o ganho de espaço é bem considerável.

    Att,

    Wasley Portes

    • Sugerido como Resposta Wasley Portes sexta-feira, 17 de abril de 2015 13:56
    sexta-feira, 17 de abril de 2015 13:56
  • mas porque tem opiniões nos fóruns que nã é aconselhavel usar o srink?
    sexta-feira, 17 de abril de 2015 13:58
  • Até onde eu sei o impacto do shrink em uma database é a fragmentação. http://blog.sqlauthority.com/2011/01/19/sql-server-shrinking-database-is-bad-increases-fragmentation-reduces-performance/

    Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves

    sexta-feira, 17 de abril de 2015 14:11
  • Jceoms,

    O ideal seria a realização de um BACKUP FULL antes deste procedimento (apenas por segurança) e também em um horário "alternativo", isso porque o servidor poderá sofrer com perda de desempenho ou bloqueio de outras operações e também parte de seu banco de dados poderá ser fragmentado.

    Quando o objetivo é liberar o "espaço desocupado" para o armazenamento, então utilizar o SHRINK é uma boa opção. Procure agendar uma manutenção em seus índices para evitar impactos na performance da manipulação dos dados.

    Para maiores informações veja:

    https://msdn.microsoft.com/pt-br/library/ms189035.aspx

    https://msdn.microsoft.com/pt-br/library/ms190488.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"


    sexta-feira, 17 de abril de 2015 14:40
    Moderador
  • o que voce quis dizer com a manutenção dos índices?

    existe uma rotina especifica para isto?

    tem que ser feito depois que fizer o srink?

    sexta-feira, 17 de abril de 2015 14:44
  • Jceoms,

    Seguindo a mesma linha de raciocínio dos amigos, eu aconselharia a utilizar um Plano de Manutenção para seus bancos de dados, configurando algumas atividades como:

    Eu procuro respeitar a própria sequência de atividades apresentandas pelo Maintenance Plan Wizard, mas cabe a você analisar a melhor estratégia.


    Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 17 de abril de 2015 14:47
  • Sim o ideal é vc ter rotina que faz rebuild dos seus índices diariamente (lembrando que essa rotina deve executada em horário alternativo).

    http://www.mssqltips.com/sqlservertip/1367/sql-server-script-to-rebuild-all-indexes-for-all-tables-and-all-databases/


    Se a resposta foi útil por favor classifique. Tiago Neves - @tiagolneves

    sexta-feira, 17 de abril de 2015 14:50
  • jceoms,

    O SHRINK não é desaconselhável. Apenas o que você tem que pensar é se o espaço que foi liberado será ocupado rapidamente. 

    Exemplo: você liberou esses 1,4 GB só que sua base cresce, por semana, 1 GB. 

    Aí você libera, faz o Shrink hoje e o SQL terá que "sofrer" pra ficar crescendo o arquivo físico para ter esse 1 GB na semana.

    Se sua base não cresce rapidamente, efetuar o shrink é uma boa prática sim. Sem problemas. 

    Siga as recomendações do Durval e do Junior.



    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    sexta-feira, 17 de abril de 2015 14:56
  • o que voce quis dizer com a manutenção dos índices?

    existe uma rotina especifica para isto?

    Jceoms,

    Quero dizer que normalmente é necessário criar um "Plano de Manutenção" adequado às necessidades de utilização de sua instância SQL. Criando rotinas para "reconstruir" ou "reorganizar" os dados de acordo com o quanto os índices de seu banco de dados estão fragmentados.

    Veja abaixo que você poderá criar este "Plano de Manutenção" no SSMS,

    clicando em "Management" -> "Maintenance Plan" -> botão direito -> "new Maintenance Plan...":

    Não vou entrar em mais detalhes para não fugir deste "tópico", posteriormente se desejar você pode abrir um novo tópico sobre este assunto.

    --------------------------------------------------------

    tem que ser feito depois que fizer o srink?

    Sim. Para manter seu banco de dados "organizado" e com uma boa performance.

    Não esqueça de marcar como resposta todos os posts que ajudaram na solução !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    sexta-feira, 17 de abril de 2015 17:42
    Moderador