Jump to content

Reduzir tamanho de BD


martim07
 Share

Recommended Posts

Olá a todos,

tenho uma base dados que já tem quase 3GB de tamanho e estou a usar o SQL Express 2005. Sabendo que tenho um máximo de 4GB para a bd como é que faço para reduzir o tamanho?

A bd tem muitos registos antigos que agora não são precisos, será que a única solução é apagar estes registos ou existe algum tipo de manutenção que se faz nestes casos?

Cumprimentos a todos.

Link to comment
Share on other sites

O Shrink reorganiza o espaço ocupado pela BD, funciona como uma desfragmentação, pega em todos os arquivos espalhados e junta-os, libertando assim espaço em disco. No entanto não é muito bom para os indexes, uma vez que ao mover as suas páginas de sitio, aumenta muito o seu nível de fragmentação deixando assim de ser úteis para a optimização de querys.

Estás com 3Gb de dados ou é o ficheiro Log que está a ocupar muito espaço?

Pedro Martins

Não respondo a duvidas por PM

Link to comment
Share on other sites

Sinceramente não sei o que te responder! Faço query normais, e as minhas tabelas têm chaves primárias. Agora optimizar query's com NON-Clustered não sei o que é isso!

Também já me disseram para optimizar as query's para ad-hoc mas no sql server 2005 express não consigo fazer isso.

Link to comment
Share on other sites

Estive a pesquisar e encontrei isto:

DBCC SHRINKDATABASE (NomeBanco, 10)

          –  Reduz o tamanho dos arquivos do banco de dados deixando 10% de espeço livre neles.

DBCC SHRINKDATABASE(NomeBanco, NOTRUNCATE)

        – A opção NOTRUNCATE na realidade só move as páginas de dados do final do arquivo para o começo e não devolve o espaço liberado para o sistema operacional. A impressão que dá é que nada foi feito com os arquivos de dados. Só aplicavel à arquivo de dados.

DBCC SHRINKDATABASE(NomeBanco, TRUNCATEONLY)

      – Libera todo espaço disponível no final do arquivo, mas não movimenta as páginas de dados. O arquivo de dados só é      reduzido até  o último extent alocado. Só aplicavel à arquivo de dados.

Para a minha situação qual será a mais indicada? Encontrei isto para sql server 2008, espero que seja o mesmo para sql server 2005.

Cumprimentos.

Link to comment
Share on other sites

Executa isto

EXEC sp_configure 'show advanced options',1
RECONFIGURE

EXEC sp_configure 'optimize for ad hoc workloads', 1
RECONFIGURE

Mas não é isto que de devolve espaço em disco, apenas optimiza o servidor.


Deves fazer a primeira, no entanto se fores pelo IDE(Seleciona a BD -> Tasks -> Shrink -> Database) ele sugere-te a percentagem máxima que pode ser libertada. Após isto deves desfragmentar os indexes.

Pedro Martins

Não respondo a duvidas por PM

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.