Przeważnie wszystko, co robię, to po prostu uruchomić kwerendę i dowiedzieć się, jak wykonuje się ona w stosunku do rzeczywistych danych. Jeśli jest problem, sprawdzam plany wykonania.
Jeśli chodzi o plany wykonania, Brad McGehee ma ciekawy artykuł na ten temat.
W nim mówi:
Jeśli w planie wykonania zobaczysz którekolwiek z poniższych elementów, powinieneś rozważyć ich znaki ostrzegawcze i zbadać je pod kątem potencjalnych problemów z wydajnością. Każdy z nich jest mniej niż idealny z punktu widzenia wydajności.
* Index or table scans: May indicate a need for better or additional indexes.
* Bookmark Lookups: Consider changing the current clustered index, consider using a covering index, limit the number of columns in the SELECT statement.
* Filter: Remove any functions in the WHERE clause, don’t include wiews[sic] in your Transact-SQL code, may need additional indexes.
* Sort: Does the data really need to be sorted? Can an index be used to avoid sorting? Can sorting be done at the client more efficiently?
Nie zawsze można ich uniknąć, ale im więcej można ich uniknąć, tym większa będzie wydajność kwerendy.