Sunday, January 3, 2010

Difference between Clustered Index and Non clustered Index

Indexes-Indexing  is way to sort and search records in the table. It will improve the speed of locating and retrieval of records from the table.It can be compared with the index which we use in the book to search a particular record.

In Sql Server there are two types of Index
1) Clustered Index
2) Non Clustered Index

Clustered Index:- Clustered index physically stored the data of the table in the order of the keys values and the data is resorted every time whenever a new value is inserted or a value is updated in the column on which it is defined.

In a table only 1clustered index is possible.

In a clustered Index, the leaf node contains the actual data.

Non Clustered Index:- In case of Non clustered index it create a sperate list of key values (or created a table of pointers) which points towards the location of the data in the data pages.

In a table, we can create 249 Non clustered indexes in SQL 2005 and 999 Non clustered indexes in SQL Server 2008 and onward.

In a non clustered Index, the leaf node contains the pointer to the data rows of the table.


  1. This comment has been removed by the author.

  2. Vivek Ji it's good and simplest description of difference between Clustered Index and Non clustered Index. Thank You.

  3. Hi Vivek,
    If i have one clustered index and 10 non-clusterd index on a table.
    when i insert new data into table without disabling the indexes.
    do i need to re-build them after inserting the data?

  4. and how bad will be the performance if i insert the data in to a table with 10 indexes with out disabling them, compared to a table with no indexes and inserting the same data

  5. Nice article!! Now we can have 999 non clustered index per table.

  6. Yes Vimal and I have added this in my article too:-)

  7. Really Nice Information,Thank You Very Much For Sharing.
    Wordpress Development Company