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.

Eample use:

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

Or

Exec sp_dba_DefragIndexes @Table = Null

Author: Robert Davis


Download Script:
sp_dba_DefragIndexes.sql


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... Disclaimer Continued


Back to Database Journal Home








The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers