Підказка щодо індексу доступна лише для серверів баз даних Microsoft Dynamics. Для традиційного SQL Server фільтри, які ви визначаєте у своєму пункті "Де", повинні переконувати механізм використовувати будь-які відповідні індекси ... За умови, що план виконання двигуна може ефективно визначити, як читати інформацію (будь то повне сканування таблиці чи індексоване сканування) ) - він повинен порівняти ці два перед виконанням власне оператора, як частину вбудованого оптимізатора продуктивності.
Однак ви можете змусити оптимізатор сканувати, використовуючи щось на зразок
Select *
From [yourtable] With (Index(0))
Where ...
Або шукати певний індекс, використовуючи щось на зразок
Select *
From [yourtable] With (Index(1))
Where ...
Вибір за вами. Подивіться на властивості індексу таблиці на панелі об’єктів, щоб отримати уявлення про те, який індекс ви хочете використовувати. Він повинен відповідати вашим фільтрам.
Для найкращих результатів перелічіть фільтри, які спочатку повернуть найменшу кількість результатів. Я не знаю, чи правильно я кажу, але здається, що фільтри запитів є послідовними; якщо ви правильно зробили послідовність, оптимізатору не потрібно робити це за вас, порівнюючи всі комбінації, або, принаймні, не починати порівняння з більш дорогими запитами.