Мой запрос выглядит так:
SELECT *
FROM dbo.TestTable TT
JOIN dbo.fnListParseAndSplit('test,tt,zz,er,ts',',') L ON TT.Name like '%' + L.ListMember + '%'
Моя проблема заключается в том, что в плане выполнения я всегда получаю Индексный поиск для обоих случаев при присоединении:
T.Наименование как '%' + L.ListMember + '%'
T.Название как L.ListMember + '%'.
Я придерживался мнения, что они совершенно разные, и когда объединение похоже на «%» + L.ListMember + «%», я должен получить сканирование индекса.Я правильно понял план выполнения?Или SQL Server 2008 настолько умен, что может оптимизировать мой запрос?
Я приложил план выполнения.Знаете ли вы, почему у меня есть поиск индекса по столбцу Имя TestTabe?Столбец имени имеет уникальный индекс ... но в этом случае я ожидал бы сканирование вместо поиска.
http://softrun.ro/executionplan.png