Dynamic defrag of all indexes for a given table

>>Script Language and Platform: SQL Server 2000

This is an new version of the Index Defrag script posted earlier. In this new version, if no table is specified, the script runs for all tables in the target database.

Running ‘DBCC INDEXDEFRAG’ on a table can be a big performance boost without the overhead of the full ‘DBCC DBREINDEX’ on high traffic databases. However ‘DBCC INDEXDEFRAG’ carries the overhead of having to specify each index by name or ID rather than just the table. This means your maintenance tasks must be updated if you delete old or add new indexes to a table.

sp_dba_DefragIndexes allows you to specify the table name and have all indexes automatically defragged for you. If you do not specify a table name, it will defrag all indexes on all tables in the database.

Create the procedure in the Master database and call from the target database.

Eample use:

Use Northwind
Exec sp_dba_DefragIndexes
@Table = ‘Customers’

Or if you want to run it for all tables in the database:

Use Northwind
Exec sp_dba_DefragIndexes


Exec sp_dba_DefragIndexes @Table = Null

Author: Robert Davis

Download Script:

We hope that the information on these script pages is
valuable to you. Your use of the information contained in these pages,
however, is at your sole risk. All information on these pages is provided
“as -is”, without any warranty, whether express or implied, of its accuracy,
completeness, or fitness for a particular purpose…

Disclaimer Continued

Back to Database Journal Home

Latest Articles