Home >> FAQs/Tutorials >> SQL Server FAQ
SQL Server FAQ - CREATE INDEX - Impact on Other User Sessions
(Continued from previous topic...)
What Is the Impact on Other User Sessions When Creating Indexes?
If you are creating a new index on a table with existing data, all existing rows
will be indexed as part of the CREATE INDEX statement.
If the table is large, the indexing process could take some time.
The impact of this indexing process on other user sessions is based
whether SQL server is using the Offline mode or Online mode.
Be default, SQL Server performs indexing operations in Offline mode,
where table locks are applied for the duration of the index operation.
An offline index operation that creates, rebuilds, or drops a clustered index,
or rebuilds or drops a nonclustered index, acquires a Schema modification (Sch-M)
lock on the table. This prevents all user access to the underlying table
for the duration of the operation. An offline index operation that creates
a nonclustered index acquires a Shared (S) lock on the table.
This prevents updates to the underlying table but allows read operations,
such as SELECT statements.
SQL Server Enterprise Edition supports indexing operations in Online mode,
where other user sessions will not be impacted.
However, SQL Server Express Edition does no support the Online mode.
If you try it, you will get an error as shown below:
CREATE INDEX fyi_links_url ON fyi_links_indexed (url)
WITH (ONLINE = ON);
Online index operations can only be performed in Enterprise
edition of SQL Server.
(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?