You are right! In SQL Server execution plans are different for "*" compared to explicit field names. You might not use Index Seek operator if you are using "*". And you might not use planned cache with "*".
I agree with HIC and I avoid using "*" in QlikView for the following reasons. Although, there will not be performance implications if you have same number of fields.
1. You will loose control over number of new fields added while you are using "*"
2. You will never know if the table schema is changed while you are using "*"
3. It becomes difficult when you are using QlikView Joins with "*" because of Join Predicate works on matching fields
4. QlikVIew implicit joins based on common field names and it becomes difficult to understand for unwanted joins
5. If you are using "*" and you wanted to perform transformation on a field then you are duplicating the field as a new field instead of transforming the same field
6. Last but not least - It looks like a lazy programmer/developer
thank you for taking the time to explain so thoroughly!
yeah, I had those reaons too in the back of my head, but wanted to know if anyone had experienced differences in the performance while using one or the other method, though, general consensus seems to think that it doesn't matter
thank you again Deepak!
First and foremost, the point stated above (from HIC & Deepak) is the best. What I would also add to that is a field might be blank and if you used * in your query, from DATA MODELLING point the field is redundant and of no use. So let us caltivate the ability of specifying fields needed.