Often when large updates are carried out against tables you may experience poor query performance in terms of response time. This requires rebuilding the indexes which can be done in either of the following two ways:
1. Create index...with drop existing
2. DBCC DBREINDEX (to rebuild all indexes)
Remember to choose the second choice since the first option does not drop primary key and unique constraints and you cannot drop and recreate indexes until you drop these constraints on the indexed columns (if any). DBCC DBREINDEX is much faster and more efficient. Do not use drop and then create index again. That's a time-consuming and inefficient approach.
Lance H. writes: "DBCC INDEXDEFRAG can be run online where dbreindex really requires offline processing time."
For More Information
- What do you think about this tip? E-mail the Editor at firstname.lastname@example.org with your feedback.
- The Best SQL Server Web Links: tips, tutorials, scripts, and more.
- Have an SQL Server tip to offer your fellow DBA's and developers? The best tips submitted will receive a cool prize--submit your tip today!
- Ask your technical SQL Server questions--or help out your peers by answering them--in our live discussion forums.
- Check out our Ask the Experts feature: Our SQL, Database Design, Oracle, SQL Server, DB2, metadata, and data warehousing gurus are waiting to answer your toughest questions.
This was first published in March 2002