Skip to Content
0
Former Member
Mar 25, 2015 at 04:04 AM

Multiple Alter Table Statements in one batch

322 Views

Hi Team,

We have in one of our upcoming release two columns being added to a table that has over 20 million records and 14 indexes.

We needed to add two columns to the table both not null (bit). Because it was taking a while to add the columns, we thought that putting these two alter statements in one batch would speed up the operation significantly but to my surprise it did not.

Conclusion from my test: individual alter statements or batch alter statements take the same time

Here are me test and results - table Order1 and Order2 are exactly the same structure and data.

Test case 1:

===================

ALTER TABLE Order1

ADD OR_N BIT DEFAULT 0 NOT NULL

go

ALTER TABLE AccountTradeConfirmation_Alter1

ADD OR_S BIT DEFAULT 0 NOT NULL

Go

Elapsed Time: 2 hrs

-------------------------------

Mar 18 2015 5:56PM

(1 row affected)

Non-clustered index (index id = 3) is being rebuilt.

Non-clustered index (index id = 4) is being rebuilt.

Non-clustered index (index id = 5) is being rebuilt.

Non-clustered index (index id = 6) is being rebuilt.

Non-clustered index (index id = 7) is being rebuilt.

Non-clustered index (index id = 8) is being rebuilt.

Non-clustered index (index id = 9) is being rebuilt.

Non-clustered index (index id = 10) is being rebuilt.

Non-clustered index (index id = 11) is being rebuilt.

Non-clustered index (index id = 12) is being rebuilt.

Non-clustered index (index id = 13) is being rebuilt.

Non-clustered index (index id = 14) is being rebuilt.

(21777920 rows affected)

Non-clustered index (index id = 3) is being rebuilt.

Non-clustered index (index id = 4) is being rebuilt.

Non-clustered index (index id = 5) is being rebuilt.

Non-clustered index (index id = 6) is being rebuilt.

Non-clustered index (index id = 7) is being rebuilt.

Non-clustered index (index id = 8) is being rebuilt.

Non-clustered index (index id = 9) is being rebuilt.

Non-clustered index (index id = 10) is being rebuilt.

Non-clustered index (index id = 11) is being rebuilt.

Non-clustered index (index id = 12) is being rebuilt.

Non-clustered index (index id = 13) is being rebuilt.

Non-clustered index (index id = 14) is being rebuilt.

(21777920 rows affected)

-------------------------------

Mar 18 2015 7:52PM

Test case 2:

===================

ALTER TABLE Order2

ADD OR_N BIT DEFAULT 0 NOT NULL, OR_S BIT DEFAULT 0 NOT NULL

go

2 hrs elapsed time

-------------------------------

Mar 20 2015 11:10AM

(1 row affected)

Non-clustered index (index id = 3) is being rebuilt.

Non-clustered index (index id = 4) is being rebuilt.

Non-clustered index (index id = 5) is being rebuilt.

Non-clustered index (index id = 6) is being rebuilt.

Non-clustered index (index id = 7) is being rebuilt.

Non-clustered index (index id = 8) is being rebuilt.

Non-clustered index (index id = 9) is being rebuilt.

Non-clustered index (index id = 10) is being rebuilt.

Non-clustered index (index id = 11) is being rebuilt.

Non-clustered index (index id = 12) is being rebuilt.

Non-clustered index (index id = 13) is being rebuilt.

Non-clustered index (index id = 14) is being rebuilt.

(21777920 rows affected)

-------------------------------

Mar 20 2015 1:12PM