I have a query that performs joins on multiple tables. I have non-clustered index on the foreign keys of the tables and clustered index on primary keys. On analyzing the query plan, I figured that the query optimizer was choosing clustered index scan on all the tables or in some cases combination of non-clustered index scan and key look-up to fetch other non-key columns. To fix this I INCLUDED (covered) the non-key columns that were required in this query in the non-clustered indexes. As a result of this, I could see non-clustered index seeks / scans being performed as expected.
Now my question is, if I've other queries that require many other non-key columns to be a part of result set, then I might end up adding (INCLUDING) all columns to the non-clustered index to improve performance of all queries. Would this be a good idea?
Thanks.