Pergunta

This question already has an answer here:

We have a need to fit a database in 4GB in order to use SQL Server Express Edition. I started from a 7GB database, and found a lot of unneeded records, and deleted them. After shrinking, the database size is 4.6GB, and 748 MB is free (according to database properties).

However, when I execute exec sp_spaceused, I have interesting results:

DatabaseName    Database_size   unallocation space
xxxxxx          4726.50 MB      765.42 MB
Reserved        Data          index_size      unused
3899472 KB      1608776 KB    1448400 KB      842296 KB

Any ideas, how can I release at least some of this unused space? Also I know table, which occupied it.

Update: is it worth to trying to rebuild table indexes?

ALTER INDEX ALL ON Production.Product REBUILD
Foi útil?

Solução

After index recreation, using this command:

ALTER INDEX ALL ON Production.Product REBUILD

and than I run SHRINK command again - end up with 2.5G database.

Outras dicas

First set recovery mode to simple, make backup and shrink all files (data and logs) seprately; use 'move pages to start of database' (or how exactly that is named) option for shrinking.

Then you may consider index defragmenting, helped us in similar circumstances.

If you've already shrunk your database, then give DBCC SHRINKDATABASE TRUNCATEONLY a try.

Reference.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top