|
Home >> FAQs/Tutorials >> SQL Server FAQ
SQL Server FAQ - "ALTER INDEX ... REBUILD" - Defragmenting Indexes
By: FYIcenter.com
(Continued from previous topic...)
How To Rebuild Indexes with ALTER INDEX ... REBUILD?
When an index is defragmented to a large percentage, like > 30%,
you can use the "ALTER INDEX ... REBUILD" statement to rebuild the index.
Here is a tutorial exercise on rebuilding indexes:
USE FyiCenterData;
GO
UPDATE fyi_links_indexed SET url = REVERSE(url)
WHERE id <=50000;
GO
(50000 row(s) affected)
SELECT i.index_id, i.name, s.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (
DB_ID(N'FyiCenterData'),
OBJECT_ID(N'fyi_links_indexed'),
DEFAULT, DEFAULT, DEFAULT) s, sys.indexes i
WHERE s.object_id = i.object_id
AND s.index_id = i.index_id;
GO
0 NULL 0.574712643678161
2 fyi_links_url 85.0142045454545
3 fyi_links_counts 0.448430493273543
ALTER INDEX fyi_links_url ON fyi_links_indexed REBUILD;
GO
SELECT i.index_id, i.name, s.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (
DB_ID(N'FyiCenterData'),
OBJECT_ID(N'fyi_links_indexed'),
DEFAULT, DEFAULT, DEFAULT) s, sys.indexes i
WHERE s.object_id = i.object_id
AND s.index_id = i.index_id;
GO
0 NULL 0.574712643678161
2 fyi_links_url 0
3 fyi_links_counts 0.448430493273543
Rebuilding an index brings the fragmentation level to 0% in this case.
(Continued on next topic...)
- What Are Indexes?
- How To Create an Index on an Existing Table?
- How To View Existing Indexes on an Given Table using SP_HELP?
- How To View Existing Indexes on an Given Table using sys.indexes?
- How To Drop Existing Indexes?
- Is the PRIMARY KEY Column of a Table an Index?
- Does the UNIQUE Constraint Create an Index?
- What Is the Difference Between Clustered and Non-Clustered Indexes?
- How To Create a Clustered Index?
- How To Create an Index for Multiple Columns?
- How To Create a Large Table with Random Data for Index Testing?
- How To Measure Performance of INSERT Statements?
- Does Index Slows Down INSERT Statements?
- Does Index Speed Up SELECT Statements?
- What Happens If You Add a New Index to Large Table?
- What Is the Impact on Other User Sessions When Creating Indexes?
- What Is Index Fragmentation?
- What Causes Index Fragmentation?
- How To Defragment Table Indexes?
- How To Defragment Indexes with ALTER INDEX ... REORGANIZE?
- How To Rebuild Indexes with ALTER INDEX ... REBUILD?
- How To Rebuild All Indexes on a Single Table?
- How To Recreate an Existing Index?
|