Q8 (без нумерации) Что означает следующий порядок при создании индекса SSMS, т. Е. Какой фильтр должен стоять первым?
Порядок создания индекса не имеет никакого отношения к тому, какой индекс будет использоваться. Созданные индексы просто располагаются рядом с табличными данными на страницах индексов, готовых к использованию, когда это подходит для запроса, в зависимости от того, что подходит лучше, чем тот, который был создан первым (в хронологическом порядке).
В 1. Какой из запросов работает быстрее?
Порядок предложений OR в запросе does not matter
. SQL Server проверит их все и использует любой индекс, чтобы все ваши первые 4 запроса использовали один и тот же план, поэтому same performance
.
Q 2. Влияет ли порядок индексированного столбца на производительность?
Не в запросе, но это происходит, если вы создаете составной индекс. Индекс на (A, B) будет полезен для запросов, которые включают A, не может (обычно) использоваться для запросов, которые включают только B. Индексируйте по (B, A) сначала группы по B, затем по A на страницах индекса, поэтому запрос, где A = 1, не может его использовать. Существуют некоторые особые случаи, например, когда запросу нужны только A и B в предложениях SELECT / JOIN / WHERE, поэтому он все равно может использовать индекс для (B, A), потому что его легче собрать, чем кластерный ключ.
В 3. Должны ли индексированные столбцы быть первыми для оптимизации запросов?
То же, что и ответ на 1.
Q 4. Каков порядок обработки запроса. Какой фильтр используется первым при обработке запроса? Он начинается с последнего фильтра и продолжается до первого фильтра?
То же, что и ответ на 1.
Для отредактированных вопросов 5-7
Q7 единственный, кто отличается. Другие включают прямое И, поэтому условие не зависит от порядка полей. Последний действительно имеет две группы условий (A и B) или (C), поэтому будет использоваться индекс как (A, B), так и / или индекс по (C), если они достаточно избирательны (отфильтрует данные в достаточно меньшее подмножество). Если оба индекса существуют, два результирующих потока могут быть собраны и сравнены (хеш / объединение) для получения окончательного результата.