| Termin | Definicja |
|---|---|
| Indeks na tabeli tymczasowej | Indeks na tabeli tymczasowej to struktura przyspieszająca dostęp do danych przechowywanych chwilowo w bazie tempdb. Rola indeksu na tabeli tymczasowej w SQL ServerIndeks na tabeli tymczasowej jest strukturą przechowywaną w bazie Indeks może być klastrowany albo nieklastrowany. Indeks klastrowany określa fizyczne uporządkowanie wierszy tabeli, natomiast indeks nieklastrowany zawiera osobną strukturę z kluczem indeksu oraz odwołaniem do wiersza. Tabela tymczasowa może mieć również klucz główny albo ograniczenie Tworzenie indeksu przed załadowaniem danychIndeks na tabeli tymczasowej można zdefiniować już podczas jej tworzenia albo dodać później poleceniem Utworzenie indeksu przed wstawieniem dużej liczby rekordów upraszcza sytuację, w której tabela jest wielokrotnie zasilana i od razu odczytywana. Każda operacja Indeks klastrowany, nieklastrowany i kolumny dołączoneIndeks klastrowany może być użyteczny, gdy tabela tymczasowa jest później przeszukiwana po kluczu zakresowym, na przykład po identyfikatorze albo dacie, oraz gdy wynik wymaga uporządkowania zgodnego z kluczem. Ponieważ tabela może mieć tylko jeden indeks klastrowany, jego klucz trzeba dobrać z uwzględnieniem najważniejszych zapytań. W przypadku tabeli tymczasowej z kluczem głównym SQL Server może utworzyć indeks klastrowany, jeśli nie określono innego typu indeksu. Indeks nieklastrowany może obejmować kilka kolumn. Ich kolejność ma znaczenie: pierwsza kolumna klucza jest najważniejsza dla wyszukiwania z predykatem zgodnym z początkiem klucza. Na przykład indeks na Indeks może również wymuszać unikatowość, ale nie należy używać właściwości Wpływ statystyk i planu wykonaniaSam fakt istnienia indeksu nie gwarantuje jego wykorzystania. SQL Server może wybrać skan tabeli, jeżeli uzna go za tańszy od wyszukiwania indeksowego, szczególnie przy niewielkiej liczbie danych albo gdy zapytanie zwraca znaczną część tabeli. Istotne są także predykaty nienadające się do efektywnego wyszukiwania, niezgodności typów danych oraz funkcje zastosowane bezpośrednio na indeksowanej kolumnie. Weryfikacja powinna obejmować rzeczywisty plan wykonania, operator odczytu oraz liczbę logicznych odczytów. SQL Server może tworzyć i aktualizować statystyki związane z tabelą tymczasową, co pomaga optymalizatorowi oszacować rozkład danych. Jeżeli tabela jest zapełniana etapami, a następnie używana w złożonych połączeniach, plan przygotowany przed znaczną zmianą liczby wierszy może być mniej trafny. W analizie warto porównać wykonanie zapytania z indeksem i bez niego, mierząc czas, logiczne odczyty oraz koszt ładowania danych. Należy również sprawdzić, czy zapytanie nie powoduje blokowania, nadmiernego wzrostu Diagnostyka problemu z tabelą tymczasową obejmuje sprawdzenie definicji tabeli, kluczy indeksów, typów kolumn oraz kolejności operacji. Pomocne są polecenia |