Приложения содержат собственный код, используемый системным программным обеспечением и Database Engine. По этой причине они могут создавать проблемы производительности, если вы задали неправильное использование системных ресурсов. Большинство проблем производительности в программах приложений появляется в результате неправильного выбора операторов Transact-SQL и их последовательности в программах приложений.
В следующем списке даны некоторые способы, которые могут улучшить общую производительность, если вы измените код в приложении:
♦ использование кластерных индексов;
♦ исключить использование предиката not in.
Кластерные индексы обычно улучшают производительность. Производительность запроса для диапазона значений является наилучшей, если в фильтре вы используете столбец, для которого существует кластерный индекс. Если же вы отыскиваете только небольшое количество строк, то не существует разницы между использованием некластеризованного и кластеризованного индексов.
Предикат not in не является оптимизируемым, иными словами, оптимизатор запросов не может использовать его в качестве аргумента поиска (sarg;). Поэтому выражение с предикатом not in всегда приводит к последовательному сканированию таблицы.