none
Plano de manutenção, Rotina de otimização SQL 2000 RRS feed

  • Pergunta

  • Bom dia pessoal,
    Tenho uma base com aproximandamente 20gb, quando executo o plano de matuntençao - Otimização a base no minimo dobra de tamnho, só o TRN fica maior que o proprio arquivo de dados.
    Alguem sabe como posso configurar a otiminazação de forma que isso não acontece? ou algum script que eu possa ver no query analyzer onde esta o problema? Pois sempre tenho que cancelar a rotina, se não corro o risco de travar a base por falta de espaço em disco....

    Alex
    sábado, 16 de maio de 2009 11:49

Respostas

  • Olá Alex-x,

    Algumas atividades com o SHRINK e o Reindex envolvem muitas movimentações de dados e isso acaba sendo Full Logged, ou seja, todos os registros envolvidos são logados. Se isso "incomoda" há duas alternativas:

    Mudar o Recovery Model para Bulk Logged
    Nesse Recovery Model algumas operações serão Minimal Logged (Bulk Operations) e o log não irá crescer tanto. Em contrapartida prepare-se, pois, o backup de log irá aumentar por conta das páginas afetadas. No Full o TRN fica grande e o backup de log do mesmo tamanho. No Bulk Logged o TRN fica pequeno mas o backup de log fica bem maior

    Adotar a estratégia do backup diferencial
    Se o backup de log é imprescindível, opte por colocar o banco em Recovery Model Simple durante a "otimização" e após a mesma mude o Recovery Model para Full. Logo após a mudança tire um backup diferencial para que você possa prosseguir com os logs a partir dali. O problema é que se for necessário voltar em algum ponto durante a otimização não será possível

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como validar e-mails no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!569.entry
    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Alex-x terça-feira, 19 de maio de 2009 14:29
    segunda-feira, 18 de maio de 2009 14:38

Todas as Respostas

  • Olá Alex,

    Se o Log enche além do desejável você terá que optar. Caso você não faça backups de log ou não tenha a necessidade de restaurar o banco em um momento específico (que o full e o diferencial não resolvam), simplesmente coloque o RECOVERY MODEL como SIMPLE e o tamanho do log ficará bem mais administrável. Se você necessita realmente de fazer o backup de log não há outra opção senão providenciar mais recursos de disco para que ele não incomode ou então quebrar suas rotinas de manutenção em rotinas menores e fazer o backup de log entre a execução delas.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como validar e-mails no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!569.entry
    Classifique as respostas. O seu feedback é imprescindível
    sábado, 16 de maio de 2009 20:37
  • Olá Maia,

    Só não entendo porque o log cresce tanto quando executdo a rotina de otimização, não deveria otimizar a base ao inves de crescer?

    Já pensei até em não executar mais a rotina de otimização, assim a base fica sempre pequena, os bkps de TRNs não posso parar de fazer.

    O que achas?


    Abraço,
    Alex
    segunda-feira, 18 de maio de 2009 12:43
  • Olá Alex-x,

    Algumas atividades com o SHRINK e o Reindex envolvem muitas movimentações de dados e isso acaba sendo Full Logged, ou seja, todos os registros envolvidos são logados. Se isso "incomoda" há duas alternativas:

    Mudar o Recovery Model para Bulk Logged
    Nesse Recovery Model algumas operações serão Minimal Logged (Bulk Operations) e o log não irá crescer tanto. Em contrapartida prepare-se, pois, o backup de log irá aumentar por conta das páginas afetadas. No Full o TRN fica grande e o backup de log do mesmo tamanho. No Bulk Logged o TRN fica pequeno mas o backup de log fica bem maior

    Adotar a estratégia do backup diferencial
    Se o backup de log é imprescindível, opte por colocar o banco em Recovery Model Simple durante a "otimização" e após a mesma mude o Recovery Model para Full. Logo após a mudança tire um backup diferencial para que você possa prosseguir com os logs a partir dali. O problema é que se for necessário voltar em algum ponto durante a otimização não será possível

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como validar e-mails no SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!569.entry
    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta Alex-x terça-feira, 19 de maio de 2009 14:29
    segunda-feira, 18 de maio de 2009 14:38