Здебільшого, все, що я роблю, - це просто запустити запит і дізнатись, як він виконує дані реальних даних. Якщо є проблема, то я погляну на плани виконання.
Щодо планів виконання, у Бреда Макгі є цікава стаття на цю тему.
У ньому він говорить:
Якщо в плані виконання ви побачите щось із зазначеного нижче, слід розглянути їх попереджувальні знаки та дослідити їх на предмет можливих проблем із виконанням. Кожна з них є менш ідеальною з точки зору продуктивності.
* 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?
Уникнути цих не завжди можливо, але чим більше ви можете їх уникнути, тим швидше буде виконання запитів.