Dynamic defrag of all indexes for a given table
January 22, 2007
>>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.
Use Northwind Go Exec sp_dba_DefragIndexes @Table = 'Customers'
Or if you want to run it for all tables in the database:
Use Northwind Go Exec sp_dba_DefragIndexes
Exec sp_dba_DefragIndexes @Table = Null
Author: Robert Davis
Disclaimer: 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...
Back to Database Journal Home