Tag

Index

SQL Server

Indeksy pokrywające

Na temat indeksów pokrywających napisano już wiele ale niekiedy warto zrobić sobie małą powtórkę wiedzy.

Tak więc, indeks pokrywając to nic innego jak pokrycie zapytania indeksem który zawiera wszystkie kolumny (w tym część tylko dołączona) z żądania. Przy takim podejściu unikamy operacji wyszukiwania w indeksie klastrowym bądź stercie. Jest to duża zaleta ale nie główna.

Taka metoda dostępu do danych jest efektywna przede wszystkim z względu na mniejszy rozmiar wiersza. Zakładając, że w indeksie klastrowym na jednej stronie jesteśmy wstanie upakować 80 wierszy (w uproszczonym ujęciu zakładając, że jeden wiersz to 100bajtów = 0,1kb * 80 = 8kb), to przy indeksie pokrywającym np. przy połowie mniejszej ilości kolumn otrzymamy 160 wierszy. Teoretyczne zapytanie pobierające 10000 wierszy musi przeskanować o połowę mniejszą ilość stron na poziomie liści indeksu nieklastrowego. Read more

PowerShell, SQL Server

[PowerShell + SQL] Masowy zrzut T-SQL dla indeksów

W trakcie optymalizacji baz danych pod kątem indeksów należałoby się pozbyć nieużywanych,  kosztowych bądź zduplikowanych indeksów (postaram się o tym napisać więcej w kolejnym wpisie) Przy tego typu zmianach niezbędne jest pozostawienie sobie możliwości wycofania zmian, ja to wykonuję poprzez zrzut skryptu T-SQL dla indeksu.

Przy większej ilości indeksów nie chciałbym robić tego pojedynczo, dlatego posługuję się skryptem których chciałbym się podzieli.

Read more