I've inherited a very large and very messy database recently and need to clean it up. To give some idea of size, the primary database currently contains 3 big tables each with around 300 million rows and takes up about 225GB storage space. Over 5 million rows are added each day.
Because of a critical disk space shortage (predecessor did not archive old data or manage it's size at all), I was forced to delete about 280 million rows from the largest table. This process took over 25 hours to complete and the database needed to be cut off from customer-facing applications during that time.
Now, I need to reindex the table because selects and inserts take a very long time. However, I can't just take the database offline indefinitely, I need to be able to estimate the amount of time needed to perform the reindex. I have never reindexed a table so large before, so I don't really have any good reference points to draw upon.
The primary table includes a clustered, monotonically-increasing primary key, and a non-unique non-clustered key as well. I have plenty of disk space available to perform the reindex.
So my question is this: About how long do people thing this will take me? What is a good rule of thumb for estimating reindexing time?