SeeQuaLity #4 Indexes – How it works

Każdy z nas to wie, że czas mija bardzo szybko. Dopiero co zakładaliśmy ze Sławkiem niniejszego bloga, a już napisaliśmy ponad 70 postów w języku polskim i angielskim. Parę miesięcy temu postanowiliśmy również robić sesje na wybrany temat związany z platformą danych Microsoft. Sesje te przybrały formę regularnych spotkań społecznościowych – równo co dwa tygodnie spotykamy się aby omówić wybrane przez słuchaczy tematy. Moim zdaniem wszystko idzie ku lepszemu – sesje cieszą się coraz większą popularnością i mam nadzieję, że ten trend się utrzyma. Oczywiście cały czas chcemy rozwijać ten format i myślę, że w niedługim czasie będzie można uczestniczyć w sesjach online! Być może w przyszłości sesję będą również w języku angielskim tak aby poszerzyć potencjalne grono odbiorców. Póki co chciałbym opublikować slajdy z ostatniej prezentacji na temat indeksów – dziękuję wszystkim przybyłym za aktywne uczestnictwo i mam nadzieję, że wynieśliście parę użytecznych informacji. Następna sesja odbędzie się w niedługim czasie – oczywiście zostaniecie poinformowani mailowo. Dzięki!

 

 

11 Comments

  1. Owszem została nagrana – muszę tylko znaleźć czas aby ją obrobić i opublikować. Polecam śćiągnąć prezentację gdyż SlideShare nie ukazuje animacji 🙂

  2. Zastanowił mnie trzeci punkt na slajdzie nr 16. Napisałeś, aby tworzyć indeksy złożone, w kierunku od mniej do bardziej selektywnej kolumny. Czyli dla jakiejś tabeli zawierającej imiona i nazwiska, to polecenie miałoby postać
    CREATE INDEX ON (imie, nazwisko); Ale przecież zwykle nie rozpoczyna się szukania jakiejś konkretnej osoby poczynając od jej imienia, lecz od nazwiska, które jest bardziej charakterystyczne i od razu zawęża krąg poszukiwań. Czy w takim razie polecenie powinno wyglądać raczej tak: CREATE INDEX ON (nazwisko, imie); Czyli tworzyć indeksy w kierunku od bardziej do mniej selektywnej kolumny?

    • Popsuło mi składnię poleceń. Chciałem użyć nawiasów ostrych w miejsce nazw indeksów i tabel, a w trakcie wysyłania komentarza te nawiasy zostały usunięte. Dlatego składnia wygląda na niepoprawna, proszę wziąć na to poprawkę.

      • Co to znaczy? Nawiasy kwadratowe są obligatoryjnie przy definiowaniu nazw np. indeksu gdy zawiera ona słowa kluczowe lub spację. Normalnie jego nazwa nie zawiera tych nawiasów jest to jedynie wskazówka dla SQLa, że takowe, że nazwa zawiera takie a nie inne znaki.

    • Selektywana to znaczy taka, która ma największy współczynnik unikalności w stosunku do wszystkich wartości. W podanym przykładzie zapewne nazwisko będzie bardziej selektywne aniżeli imię 🙂 W prezentacji jest oczywiście “literówka”.

  3. Indeksy zwykle przedstawia się w postaci odwróconego drzewa. Poziom liści to wiersze albo wskaźniki do nich, w zależności od typu indeksu. To rozumiem. Ale co znajduje się w węzłach bliżej pnia, czyli w gałęziach? Rozumiem że tam są też te 8kb strony, ale co one zawierają? Jakie dane?

    • Na poziomach pośrednich znajdują się wskaźniki do poziomu niżej. Widać to na załączonej prezentacji na slajdzie nr. 10. Po prostu SQL Server przegląda Root i sprawdza, która strona pośrednia zawiera określoną wartość i przechodzi do niej, następnie na tej stronie sprawdza, który liść zawiera określoną wartość i do niego przechodzi.Na stronach wyższych niż poziom liścia znajdują się klucze indeksu zapisane właśnie na 8KB stronach.

Leave a Reply