Map.Entry
Эти встроенные классы являются опцией, также. Оба реализуют Map.Entry
интерфейс.
Учитывая данные 'abcdefg'
WHERE Column1 LIKE '%cde%' --can't use an index
WHERE Column1 LIKE 'abc%' --can use an index
WHERE Column1 Like '%defg' --can't use an index, but see note below
Примечание. Если у вас есть важные запросы, требующие '% defg', вы можете использовать постоянный вычисляемый столбец, в котором вы ОБРАТИТЕ () столбец, а затем индексируйте Это. Затем вы можете запросить:
WHERE Column1Reverse Like REVERSE('defg')+'%' --can use the persistent computed column's index
По моему опыту, первый знак% сделает любой индекс бесполезным, но один в конце будет использовать индекс.
Чтобы ответить на часть вашего вопроса, касающуюся показателей: Тип выполняемого сканирования / поиска индекса / таблицы является хорошим индикатором для определения того, используется ли индекс (правильно). Обычно он отображается вверху в анализаторе плана запроса.
Следующие типы сканирования / поиска отсортированы от худшего (вверху) к лучшему (внизу):
Как правило, вы обычно стараетесь получить поиск поверх сканирования, когда это возможно. Как всегда, есть исключения, зависящие от размера таблицы, запрашиваемых столбцов и т. Д. Я рекомендую выполнить поиск в StackOverflow по запросу «сканировать индекс поиска», и вы получите много полезной информации по этому вопросу.