none
Autogrow RRS feed

  • Pergunta

  • Boa tarde Galera,

    Tenho um Database com tamanho total de 700GB.

    O DataFile tem 450GB ocupados no disco fisicamente, o espaço livre interno é de 200GB para o autogrow.

    Problema:

    Todos os dias esse DataFile cresce fisicamente em disco mais 7GB e cresce internamente 4GB.

    Já que possuo 200GB de espaço livre interno o arquivo deveria crescer fisicamente? 

    OBS: O AutoGrow do datafile está para crescer 50MB.

    Obrigado,

    Marcos

    sexta-feira, 13 de janeiro de 2017 15:10

Todas as Respostas

  • Marcos,

    o autogrow, por padrão, na instalação do SQL vem definido em percentual (10%) você pode mudar para MB se quiser para facilitar o controle.

    você pode usar o sjrink para reduzir o tamanho se necessário, veja nesse artigo:

    https://support.microsoft.com/pt-br/kb/315512


    Marco Libretti – Achou útil a postagem? Marque e ajude a comunidade.

    • Sugerido como Resposta MarcoLibretti sexta-feira, 13 de janeiro de 2017 17:35
    sexta-feira, 13 de janeiro de 2017 17:35
  • Marco,

    Já está configurado para crescer em MB.


    sexta-feira, 13 de janeiro de 2017 17:39
  • Marco,

    De qual versão do SQL Server você esta se referindo? Por acaso seria 2012? Você já instalou o SP3?


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

    sexta-feira, 13 de janeiro de 2017 17:51
    Moderador
  • Olá Galvão,

    Estou com o SQL 2008R2 SP3.

    Obrigado,

    Marco.

    sexta-feira, 13 de janeiro de 2017 18:03
  • Marcos,
    bom dia.

    Os datafiles provavelmente estao fragmentados, e o SQL nao esta conseguindo utilizar os espacos aparentemente vazios dentro dos mesmos, desta forma ele precisa crescer pra gravar as informacoes.

    Apesar das contra-indicacoes, o que voce precisa fazer eh um processo de shrink, para liberar esses espacos vazios, e o arquivo voltar ao tamanho realmente utilizado.

    Eu sugiro fazer tambem uma reindexacao completa de todas as tabelas.

    Dependendo do caso, eh interessante fazer todo o processo 2 vezes (shrink + reindexacao + atualizacao de estatisticas).

    Abcs.

    Péricles Sevegnani
    periclessevegnani@gmail.com
    Vivo: +55(47)999-189-109
    Blog: http://blogsqlserver.blogspot.com.br


    terça-feira, 17 de janeiro de 2017 12:29
  • Pericles,

    Obrigado pela dica, foi testar.

    Mais uma coisa, sabe me dizer qual o critério de crescimento que o SQL utiliza para fazer o autogrow? 

    Por exemplo: Tenho um espaço interno de 100GB para crescer, irá ocorrer o autogrow quando o espaço livre estiver em quanto?


    Att,

    Marcos.

    terça-feira, 17 de janeiro de 2017 12:36
  • Marcos,

    O autogrow vai ocorrer sempre que o Database Engine identifica a necessidade de alocar mais espaço fisico para armazenar os dados, isso será repassado para o SQLOS que solicitará ao Storage Engine a alocação da área.

    Agora o quanto vai crescer isso vai depender da configuraçõa de File Growth aplicada para seus bancos de dados, sendo esta em megabytes, gigabytes ou percentagem.

    A alocação do espaço em um banco de dados formado por vários arquivos é totalmente diferente da alocação para um único arquivo, por padrão o SQL Server vai alocar espaço sempre nos arquivos que estão residentes no fiegroup primary de forma não uniforme mas também não pode ser considerada aleatória, ele vai distribuíndo de acordo com a área livre do atual arquivo em uso para posteriormente alocar e distribuir em um ou mais arquivos.


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

    • Sugerido como Resposta Dyego Rodrigues terça-feira, 17 de janeiro de 2017 14:43
    terça-feira, 17 de janeiro de 2017 13:43
    Moderador
  • Pericles,

    Fiz o shrink e o rebuild dos índices, porém quando o rebuild executou o arquivo de dados voltou a crescer novamente e agora eu tenho o datafile com 240GB de espaço interno.

    Att,

    Marcos


    • Editado Marcos Polart quarta-feira, 18 de janeiro de 2017 13:39
    quarta-feira, 18 de janeiro de 2017 11:57
  • Quantos datafiles tem esse database e quais os tamanhos de auto-crescimento definidos ?

    Péricles Sevegnani
    periclessevegnani@gmail.com
    Vivo: +55(47)999-189-109
    Blog: http://blogsqlserver.blogspot.com.br
    quarta-feira, 18 de janeiro de 2017 13:28
  • Este Database tem apenas um datafile com autogrow de 500MB.

    Marcos.

    quarta-feira, 18 de janeiro de 2017 13:40
  • Marcos,

    Todo e qualquer processo de manutenção deve ser feito com muito cuidado ainda mais shrinks de banco ou arquivos de dados.

    Neste caso, faça o seguinte, realize um backup do banco, altere o modelo de recuperação para simples, aplica o processo de shrink file ou database no seu banco, após isso altere para o modelo full.

    Se você executar um shrink ou reindexação com o modelo de recuperação completa com certeza o log vai crescer muito.


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

    quinta-feira, 19 de janeiro de 2017 15:15
    Moderador
  • Olá Galvão,

    Fiz o seu procedimento, mas não entendo, o datafile continua crescendo mesmo tendo espaço interno.

    Obrigado,

    marcos.

    segunda-feira, 23 de janeiro de 2017 13:08
  • Marcos,

    Mas qual é a configuração do fator de crescimento de banco de dados?

    Será que não existe algum índice que esteja apresentando um fill factor maior?

    Quando você realizou a rebuild qual foi a configuração de fill factor definida?


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

    terça-feira, 24 de janeiro de 2017 13:32
    Moderador
  • Galvão,

    Estou fazendo o rebuilt desta forma.

    ALTER INDEX [indice] ON [dbo].[tabela] REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80)

    Todos estão com o fill factor80.

    Marcos.


    • Editado Marcos Polart quinta-feira, 26 de janeiro de 2017 11:29
    quinta-feira, 26 de janeiro de 2017 11:29
  • Marcos,

    Você sabe qual era o fillfactor anterior?


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

    quinta-feira, 26 de janeiro de 2017 12:06
    Moderador
  • Galvão,

    O rebuilt sempre foi feito através do maintenance plan, que tem o fil factor 80 por padrão. 

    Marcos.

    quinta-feira, 26 de janeiro de 2017 12:17
  • Marcos,

    Ok, entendi!!!

    Por acaso, existe algum processo de importação/exportação de dados?

    Quando você faz uso do Maintenance Plan, é executado alguma rotina de atualização de estatítisca?


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

    quinta-feira, 26 de janeiro de 2017 12:23
    Moderador
  • Galvão,

    Este problema ocorre na base da aplicação do Mcafee, segundo o pessoal desta aplicação é armazena o log de tudo que é acessado na internet. 

    Também é realizado a atualização das estatísticas 

    Marcos.


    quinta-feira, 26 de janeiro de 2017 12:55
  • Marcos,

    Entendi, neste caso, você terá que analisar se realmente é necessário guardar todas estas informações.

    Você tem mesmo que utilizar o recovery model full?


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

    quinta-feira, 26 de janeiro de 2017 13:16
    Moderador
  • Galvão,

    O pessoal disseram que precisam do log.

    Mas não entendi se este é o comportamento normal do SQL que no tange o crescimento do Datafile, ele primeiramente não deveria utilizar o espaço interno, ou há exceções?

    Marcos.

    quinta-feira, 26 de janeiro de 2017 13:35
  • Marcos,

    Sim, mas isso vai depender muito de como os dados estão sendo transacionados e de como o SQL Server esta identificando a necessidade de crescer.


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

    quinta-feira, 26 de janeiro de 2017 14:32
    Moderador