2010-03-12 9 views
7

Potrzebuję dodać nową instrukcję SELECT, której warunek wyszukiwania obejmuje coś w rodzaju leagueCode LIKE 'nba%'.Jaki jest wpływ nadchodzący z symbolu wieloznacznego%

Chciałbym wiedzieć, czy indeks w stosunku do lidCode jest nadal możliwy do wykorzystania lub wprowadzić jakiekolwiek obciążenie, gdy% znajdzie się w kolumnie docelowej.

+0

Czy masz na myśli: 'ligCode like 'nba%''? W przeciwnym razie nie robisz wyszukiwania ze znakami wieloznacznymi, szukasz literału nba [procent znaku] ' – nocache

Odpowiedz

4

To zależy w 100% od pozycji symbolu wieloznacznego.

  • Na początku: brak indeksu. Niektóre serwery mają indeksy odwrotne (zaczynające się na końcu łańcucha) i będą z nich korzystać - SQL Server tego nie robi.
  • W środku: Indeks częściowy (część początkowa), a następnie szukanie w tym zakresie.
  • na końcu: Indeks (w analizatorze zapytań wyświetlane jest INDEX SEEK).

Koszty ogólne? Oczywiście - ale nie jest to dokładnie wysoka (brak skanowania tabeli) i nie ma dokładnie sposobu obejścia tego.

3

Tak, indeks nadal może być używany, ponieważ w tym przypadku mamy stały prefiks (nba).

Powiązane problemy