0

I have a database called TestDB which is in simple recovery model. I performed index rebuild on my Test Server which has no other user transactions except me. Before an online index rebuild the sizes of mdf and ldf files were as below:

         total size          used             free
mdf       13261 MB         13261 MB             0 MB
ldf        9697 MB            25 MB          9672 MB

After rebuilding of the largest index only with fragmentation percentage equivalent to 91% (size of index was approx 5858 MB) mdf and ldf files became as below:

         total size           used             free
mdf       16854 MB          10061 MB         6792 MB
ldf        9697 MB            363 MB         9334 MB

The question is, if the size of the largest index was 5858 MB, and according to some books and resources on the internet which state that total size needed for rebuilding an index is equivalent to approx 120% of the largest index or maybe double size, then total size of mdf file after rebuilding should be just over 20000 MB, shouldn't it?

I calculated that like 5858*120%=7029 MB, and finally as we do not have space in mdf file then autogrowth will happen and final size of mdf will be 13261 MB + 7029 MB = 20.29 GB.

Here I use Ola's script for rebuilding an index:

EXECUTE dbo.IndexOptimize
@DATABASES = 'TestDB',
@FragmentationLow = NULL,                                                                           
@FragmentationMedium = 'INDEX_REORGANIZE',
@FragmentationHigh = 'INDEX_REBUILD_ONLINE',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30,
@Indexes = 'ALL_INDEXES',
@MinNumberOfPages = 1000;

The index which is rebuilt is clustered index and key column is of INT data type.

Learning_DBAdmin
  • 3,924
  • 19
  • 39
Rauf Asadov
  • 1,313
  • 14
  • 36

0 Answers0