June 02, 2008

Rebuild all indexes of all tables in SQL 2005

In order to rebuild all index on your table, use the DBCC DBREINDEX. DBCC DBREINDEX rebuilds one or more indexes for a table in the specified database.

The syntax for DBCC DBREINDEX is as follows:

[ , 'index_name' [ , fillfactor ] ]

where table_name is the table for which the indexes are to rebuild, index_name is the index to be rebuild and fillfactor is % of space on each index page which will be used to store data when the index is rebuilt.

QUERY to rebuild all indexes

EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)"

Note: DBCC DBREINDEX has been deprecated in SQL 2005. Microsoft says "This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use ALTER INDEX instead."

About The Author

Suprotim Agarwal, ASP.NET Architecture MVP works as an Architect Consultant and provides consultancy on how to design and develop Web applications.

Suprotim is also the founder and primary contributor to DevCurry, DotNetCurry and SQLServerCurry. He has also written an EBook 51 Recipes using jQuery with ASP.NET Controls.

Follow him on twitter @suprotimagarwal

1 comment:

Anonymous said...

It is deprecated. And you will have better performance with ALTER INDEX