SQL Server optimizer doesn't use and index seek for execution of your query although the quera is high selective?What is better, when and why: LIKE vs: SUBSTRING, IN vs. EXISTS, SUBQUERY vs. JOIN. Why you should not use the UPPER or LOWER functions? How to avoid non-SARG-able WHERE clauses?

In this section we will answer these questions and show how bad designed queries lead to poor execution plans. We will offer recommendations and tips how to avoid performance problems caused by poor query design (functions in WHERE clause, data type conversions…) and explain how local variables and parameters affect the generation of execution plan. We will discuss and compare different query approaches and operators (IN vs. EXISTS, EXISTS vs. COUNT(*), UNION vs. UNION ALL, IN vs. BETWEEN…)  and give appropriate recommendations. We’ll also cover database constraints from the performance point of view.