MS SQL Server Concepts and Programming Question:

What Happens If You Add a New Index to Large Table?

Tweet Share WhatsApp

Answer:

An index can be added when you create a new table. New rows will be indexed as they are inserted into the table. But you can also add a new index to an existing table with the same CREATE INDEX statement. The existing rows will be indexed as part of the CREATE INDEX statement.

If you add a new index to an existing table with a large number of rows. The CREATE INDEX statement could take some time to finish. See the tutorial exercise below:

USE GlobalGuideLineDatabase
GO

-- Drop indexes if needed
DROP INDEX ggl_links_indexed.ggl_links_url;
DROP INDEX ggl_links_indexed.ggl_links_counts;
GO

SELECT COUNT(*) FROM ggl_links_indexed;
GO
100000

-- Create two indexes
DECLARE @start_time DATETIME, @end_time DATETIME;
SET @start_time = GETDATE();
CREATE INDEX ggl_links_url ON ggl_links_indexed (url);
CREATE INDEX ggl_links_counts ON ggl_links_indexed (counts);
SET @end_time = GETDATE();
PRINT 'Milliseconds used: '+CONVERT(VARCHAR(20),
DATEDIFF(MILLISECOND,@start_time,@end_time));
GO

-- First time
Milliseconds used: 12626

-- Second time
Milliseconds used: 11763

-- Third time
Milliseconds used: 13890

You can see creating two indexes on a table of 100000 rows costs about 12 seconds.

Download MS SQL Server PDF Read All 394 MS SQL Server Questions
Previous QuestionNext Question
Does Index Speed Up SELECT Statements?What Is the Impact on Other User Sessions When Creating Indexes?