Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
aakcse
Aged Yak Warrior
570 Posts |
Posted - 2009-06-15 : 10:02:47
|
Can any one explain me what is non covering index and RID( I guess Row id) in the below para.Regards,While a non-clustered index can be added to a heap to speed up some queries, when the non-clustered index is non-covering, the use of a RID bookmark lookup is required. A RID lookup means that once the record(s) to be returned by the query are identified in the non-clustered index, additional reads (the RID bookmark lookup) must be made of the related rows in the heap, so that all of the data requested by the query is returned. This is not very I/O efficient, especially if many rows are returned. At some point, it may be faster for SQL Server to do a table scan than it is to use a non-clustered index when returning many rows. On the other hand, if the non-clustered index is covering, then the non-clustered can be used to immediately return the data to the user without having to lookup anything in the heap |
|
GilaMonster
Master Smack Fu Yak Hacker
4507 Posts |
Posted - 2009-06-15 : 10:31:57
|
RID is a row identifier. It's only present if the table is a heap (no clustered index) and it's essentially the location of a row. It's an 8 byte combination of FileID, PageID and slot index.An index is said to be covering for a query if all the columns that the query requires are part of the index, either as key columns or include columns. If an index does not cover a query, it's a non-covering index (for that specific query)This may be of use - http://sqlinthewild.co.za/index.php/2009/01/27/a-bookmark-lookup-by-any-other-name/Does that help?--Gail ShawSQL Server MVP |
 |
|
aakcse
Aged Yak Warrior
570 Posts |
Posted - 2009-06-15 : 13:57:44
|
Gail Shaw, your reply very help full, sorry for delay in my reply. Regards,aak |
 |
|
|
|
|
|
|