There are few points that we should have to care for improving the performance:
1) Database design and normalization.
2) Indexes
3) DB Statistics
4) Use EXISTS instead of IN because the former stops processing once it has found a match.
5) Avoid scalar subqueries in the SELECT-list.
6) Use joins instead of subqueries, as it gives the optimizer more room to play around in.
7) Avoid implicit conversions of data types, especially in the WHERE clause
8) Avoid, whenever possible, comparison operators such as <>, NOT IN, NOT EXISTS, and LIKE without a leading '%' for indexed columns in predicates.
9) Avoid DISTINCT unless you have to use it.