Defragging Indexes For Beginners
Why we need to defrag indexes Fragmented indexes are ineffective Ineffective indexes are slooooooow
Over to the code…. We are going to: Create a database Create a table Load some data Add an index Fragment the index Fix the index
Which option is best? > 5% and < = 30% fragmentation ALTER INDEX REORGANIZE > 30% fragmentation ALTER INDEX REBUILD WITH (ONLINE = ON)
Keep your indexes sweet Perform regular maintenance on your database, include index checks/defrags as part of the maintenance task. A tool such as Idera’s SQL Defrag Manager could be useful, but it is pricey. Write a script and set up a scheduled task to automate your index maintenance.
Conclusion Reorganize Index −Performed online −Does not lock for long periods −Does not block updates or other queries −Best option for fragmentation between 5% and 30%. Rebuild Index −Drops and recreates the index −Will give the best defragmentation results −Can be performed online or offline −Best option for fragmentation greater than 30% Maintenance −Monitor your index fragmentation −Fix fragmented indexes before they become a problem
Resources Click on the Word icon to the right to access the SQL code and notes used in the practical element of this session. Download AdventureWorks2008 DBs for free here: More info on fill factors over at the MSDN site: Detailed information on Reorganize and Rebuild: Great information on Indexes from Brad McGehee Maintenance Options:
Website: Mailing list: Blog: