Właśnie zaczynam się uczyć o użyciu pamięci na serwerze SQL. Podczas korzystania z zapytania w odpowiedzi na pytanie SQL Server 2008 R2 „Ghost Memory”? , Odkryłem, że pojedyncza baza danych zajmuje lwia część przestrzeni w puli buforów. Patrząc dalej, używając sys.allocation_units
i sys.indexes
potwierdziłem, że jest to prawdopodobnie spowodowane dużym wykorzystaniem indeksów w bazie danych. Większość indeksów jest zgrupowana.
Inny programista bazy danych uważa, że mamy problemy z pamięcią na serwerze - że zapytania zaczynają działać długo, ponieważ nie ma dostępnej pamięci.
Moje pytanie brzmi - czy użycie tych indeksów i ich istnienie w puli buforów zabiera pamięć dostępną dla innych procesów?
"Another database developer believes we are having memory issues on the server"
-- Na podstawie czego? Ile pamięci RAM ma serwer, jakie są ustawienia pamięci instancji i ile pamięci zajmuje pamięć podręczna procedur?Odpowiedzi:
Tak, strony danych używanego indeksu buforowane w puli buforów zajmują miejsce w pamięci podręcznej danych . Ale nie pozwól, aby to odwróciło cię od używania indeksów (po pierwsze, indeks klastrowany to rzeczywiste dane tabeli, więc miej to również na uwadze). Korzystanie z indeksów (oczywiście odpowiednio zaprojektowanych i wdrożonych) jest dobrą rzeczą.
Problemy z pamięcią najprawdopodobniej nie wynikają z posiadania indeksów na stołach . Zanurz się w problemach z pamięcią, jakie dokładnie są problemy? Czy masz niską oczekiwaną długość życia strony ? Jak twoja pamięć jest skonfigurowana na serwerze? Czy maksymalna pamięć serwera jest zbyt niska, ograniczając wielkość puli buforów?
Aby uzyskać podział stron indeksu w pamięci podręcznej danych, możesz uruchomić poniższe zapytanie:
Aby uzyskać te statystyki według bazy danych:
źródło
Indeksy zajmują miejsce w puli buforów, tak. To kolejny powód, dla którego powinieneś zadbać o swoją strategię indeksowania i zminimalizować duplikaty.
Pamiętaj, że indeks klastrowany to tabela . Jedyny narzut, jaki istnieje dla indeksu klastrowego ponad stertę (co jest na ogół niepożądane), dotyczy stron indeksowych niepozostawiających liści i włączenia klucza klastra do wszystkich indeksów nieklastrowanych dla tej tabeli. Dlatego preferowane są wąskie klucze klastra.
Artykuły Kimberley Tripp na temat klastrowych wyborów kluczowych są do tego doskonałym odniesieniem.
źródło