I have a really large SQL SERVER table with only non clustered indices for several columns , while querying the table the execution plan shows RID Lookups , i expected to see this kind of lookup because the columns in the select list are not part of a covering index or included in another index .
The non-clustered indices were created on several columns because each one of these columns is a part of a different query with different select lists and search conditions.
Due to size and storage issues creating a covering index or a new index with included columns while keeping the current non-clustered indices is not feasible.
Now the question is :
- Can i replace the non-clustered indices with one covering index ?
- If not, is there any way to get rid of RID Lookup rather than a covering index ?
- Does each query require a different covering index depending on the columns in the select list and the search conditions ?
- I have no clustered indexes in the table , does adding a unique column and setting it as a primary key helps in getting rid of RID Lookups ?
- Any notes or comments to solve such problems are welcome ..