Tag Archive: index seek

Key/RID lookup – co to jest?

KeyRidLookup_sqlserver_00

Jednym z najprostszych do rozwiązania problemów wydajnościowych w SQL Server są tzw. lookupy o którym chciałbym opowiedzieć w niniejszym artykule – zapraszam do lektury. Jak wiecie optymalizator SQL Server może zdecydować się na użycie indeksu jeżeli tylko będzie to dla niego w odpowiednim stopniu optymalne. Sam indeks może być odpytywany operacją pełnego skanowania (Index Scan) lub też operacjami odszukania (Index Seek) – mechanizmy te opisałem tutaj. Napiszmy proste zapytanie, które przeszuka tabelę operatorem Index Seek (za przykład posłuży nam tabela DimCustomer z bazy AdventureWorksDW2014):

Jak widać użyty został operator Index Seek na indeksie o nazwie IX_LastName. Przyjrzyjmy się bliżej…
Read more

Operacje Table/Index Scan oraz Index Seek

Niejednokrotnie byłem świadkiem sytuacji gdy specjaliści IT mniej lub bardziej związani z bazami danych na pytanie o optymalizację zapytań często odpowiadali w stylu “trzeba zrobić tak, żeby był seek”. Stwierdzenie to w niektórych aspektach jest oczywiście prawdziwe, ale generalizowanie w tej sytuacji jest nie tylko niewłaściwe, ale według mnie  nieakceptowalne. Temat jest nieco bardziej złożony niż niektórym może się wydawać. Ponadto można się zastanowić jaki byłby cel implementacji operatora Scan skoro jest oni taki zły? Na te pytania nie ma jednoznacznej odpowiedzi i w związku z tym postanowiłem napisać parę słów na temat Seek, Scan oraz pojęcia zwanego Tipping Point…
Read more