Preciso criar um script para executar o Shrink automatico
Movido Gustavo Maia Aguiar quinta-feira, 10 de setembro de 2009 01:10 (De:SQL Server - Desenvolvimento Geral)
quarta-feira, 9 de setembro de 2009 19:32
Você pode fazershrink automático colocando na propriedade do banco a opção AutoShrink = true
Faça assim: No Management Studio clique no banco com botão direito e em properties procure Options e por AutoShrink = true.
Não é uma prática recomendada, mas se precisa ...
Outro método é criar um plano de manutenção para fazer um Shrink no seu banco em um certo horário do dia. Mas isso não funciona no Management Studio Express.
quarta-feira, 9 de setembro de 2009 19:35
Apenas para enfatizar: você não deve fazer shrink a toda hora, a não ser que a sua análise realmente indique que deve fazê-lo.
Você pode explicar melhor o motivo de querer fazer shrink automático?
quarta-feira, 9 de setembro de 2009 19:44
Eu prefiro configurar um script e agendar a execução deste procedimento, concordo com as orientações do Robson e Roberto.
Você poderia nos explicar o que esta querendo?
quarta-feira, 9 de setembro de 2009 19:50
Com isso você quer dizer criar bacth que execute um scrpt de tempos em tempos?
quarta-feira, 9 de setembro de 2009 19:52
Sim posso...
Então como tenho um banco free ele tem limitações, faço expurgo de tabelas a cada 60 dias.
Opós isto preciso executar o shrink para ter melhor controle de como está o banco e o quanto de espaço ele limpou.
quarta-feira, 9 de setembro de 2009 20:02
Não há como criar um plano de manutenção no SQL Express e nem como agendar batches dentro do SQL express, você até consegue executar batches via Task Manager (ferramenta do windows).
É isso que faço.... agendo batch no windows
Deixe-me te perguntar outra coisa.
Estou restaurando um backup full e um diferencial, onde este diferencial está apendando informações de tempos em tempos..
Quando vou restaurar o diferencial ele me mostra que o que agendei por exemplo 4 arquivos em um pacotasso.
Mais não me permite restaurar, porque?
O express permite apenas um arquivo diferencial ou existe alguma outra maneira?
quarta-feira, 9 de setembro de 2009 20:07
Não atentei para o detalhe que nossa amiga esta utilizando o SQL Server Express!!!
O que poderiamos fazer é utilizar por exemplo o agendador de tarefas do windows para executar um batch rodando o sqlcmd e executar o script do shrink.
quarta-feira, 9 de setembro de 2009 20:08
Já faço rotinas de backup com batch..
o script para isso é: DBCC SHRINKDATABASE(N'banco' ) ?
ai crio o tal batch para executar este cara no tempo que desejar?
OBS* Pois é Junior o express não tem o agent.
quarta-feira, 9 de setembro de 2009 20:15
Eu pediria que as dúvidas sejam tratadas em posts diferentes. Como esse post foi aberto para tratar do SHRINK, as dúvidas de backup podem ser colocadas em um novo post para manter a organização (senão o post fica extenso e não fecha nunca).
Eu particularmente não utilizaria um SHRINK em uma base do SQL Server Express (muito menos automático). Primeiro porque ela é limitada a 4GB então não irá crescer indefinidamente. Segundo porque se você faz o expurgo, qual é o sentido de encolher o arquivo se posteriormente ele irá crescer ? Utilizar o SHRINK irá apenas gastar recursos para reduzir o banco, e posteriormente exigir recursos para aumentar o banco de dados. Isso sem contar a fragmentação em nível de arquivo que irá ser causada com tantas encolhidas e extensões.
Sugiro deixar o banco já com 4GB (isso cabe até em Pen Drive) e não utilizar o SHRINK em hipótese nenhuma. Se você deseja saber quanto dos 4GB realmente estão ocupados, pode utilizar a stored procedure sp_spaceused ou a função FILEPROPERTY para ver o tamanho "ocupado" do arquivo.