Hi all,

My database has 220GB, but there is 75Gb free space (in mdf) - we dropped one big table and the space won't be used soon.
How to do it without fragmenting indexes ? I have tried it with a copy of it, but DBCC SHRINKFILE defragments most of indexes , after reindex still a lot of them are much more fragmented then now.

It is OLTP, daily usage from 6 a.m. to 6 p.m., so it is possible to do it after working hours.

I have some ideas like
a) move tables to another filegroup, shrink the file and move back or
b) copy tables, then indexes and other structures to another database and rename after, but this is really a lot of work.

I always avioded shrinking database, but now i need it at the moment and there must be a way how to do that.