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!
- Avoiding Issues: Monitoring Query Pushdowns in Databricks Federated Queries - October 27, 2024
- Microsoft Fabric: Using Workspace Identity for Authentication - September 25, 2024
- Executing SQL queries from Azure DevOps using Service Connection credentials - August 28, 2024
Czy sesja ta została nagrana? Prezentacja o indeksach bardzo przejrzysta i dobrze poukładana 🙂
Owszem została nagrana – muszę tylko znaleźć czas aby ją obrobić i opublikować. Polecam śćiągnąć prezentację gdyż SlideShare nie ukazuje animacji 🙂
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.
Nie, nie zrozumieliśmy się. Ponieważ nie pisałem tego zapytania w oparciu o jakąś realną tabelę, wiec chciałem w miejsce nazw zastosować składnię z nawiasami ostrymi (nie kwadratowymi), takimi jakie są wykorzystane przy opisywaniu definicji jakiś obiektów w T-SQL, np
tutaj https://msdn.microsoft.com/pl-pl/library/ms188783(v=sql.110).aspx
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”.
Acha, rozumiem. Dzięki za wyjaśnienie.
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.
Teraz rozumiem. Dzięki za wyjaśnienie.