I have an existing table with millions of rows in it where I have a column which is the SMALLMONEY data type and I want to ALTER it to be MONEY. To make things a bit more complicated it has an index on it which which INCLUDE (s) that column so I need to remove that prior to the ALTER and then add it in again after the ALTER.
I have been running through my test deployment and each of these operations (index removal, table alter and index addition) takes about 4 - 6 minutes each.
I really need to come up with some way to do this faster.
This table is constantly being inserted into and so the shorter the duration the better.
Any pointers would be appreciated.
I am using SQL Server 2008 Enterprise.

index removal ... takes 4-6 minutes. Non clustered index removal is basically instantaneous. The fact that it takes 4-6 minutes indicates that it has to wait 4-6 until it acquires the necessary locks, which in turn implies that you have reads lingering for 4-6 minutes, blocking the DDL. Which questions whether not everything is blocked by these slow reads. – Remus Rusanu Dec 11 '12 at 15:03