Słyszałem, że przechowywanie indeksów na innej grupie plików i dysku zwiększa wydajność w bazie danych, ponieważ dysk nie musi przechodzić między indeksem a danymi, do których odwołuje się indeks. Słyszałem również, że to mit.
Kiedy wskazane jest przechowywanie indeksów nieklastrowanych na osobnej grupie plików i dysku? Jakie dowody perfmon / profilera doprowadziłyby mnie do takiego wniosku? Czy sprzęt odgrywa rolę w podejmowaniu decyzji (czy RAID / SAN jest używany na jednym dysku)?
źródło
Z pewnością prawdą jest, że rozkładanie jednoczesnych wejść / wyjść między różnymi dyskami zwiększy wydajność - to nie mit. Mitem jest, że dwukrotne wykonanie tej czynności poprawi wydajność ponownie.
Jeśli to SAME , podzielenie tablicy na dwie partycje i umieszczenie indeksów na jednej, a tabel na drugiej, to strata czasu.
źródło
Oddzielanie indeksów od danych do oddzielnych aplikacjami = poprawa wydajności jest wysoce dyskusyjna. Poprawa wydajności „może” nastąpić, jeśli masz podstawowy sprzęt do jej obsługi, ale sam fakt, że rozdzielenie ich na różne grupy plików nie daje ci lepszego efektu. I z tego powodu NIE jest łatwo zmierzyć podbicie perf.
Ref: http://weblogs.sqlteam.com/dang/archive/2008/08/01/Are-you-a-DBA-Monkey.aspx
Najpierw powinieneś zadać pytanie. Dlaczego musisz to zrobić?
Spojrzałem na to zadanie, aby wesprzeć potrzebę # 5 z powyższej listy i wydaje mi się to dobrą propozycją, chociaż nie podjęliśmy jeszcze tego działania.
Pamiętaj, że ta decyzja NIE jest łatwa do podjęcia i musisz dowiedzieć się, co próbujesz zrobić, i upewnić się, że masz sprzęt do obsługi. Nie wprowadzaj takich zmian, chyba że dobrze przetestowałeś i zauważysz znaczny wzrost wydajności, w przeciwnym razie równie dobrze możesz porzucić ten pomysł. NIE jest tego warte, jeśli spodziewasz się udoskonalenia, po prostu dzieląc indeksy na osobne aplikacje.
źródło
Opowiem ci moje osobiste doświadczenia związane z tym przedmiotem. Indeksy nieklastrowane powinny być przechowywane w osobnej grupie plików, gdy bieżący dysk nie jest wystarczająco duży, aby pomieścić potrzebną przestrzeń :-). Możesz się z tego śmiać ... ale tak się dzieje.
Dlatego rozwiązaniem awaryjnym dla nas, gdy mieliśmy pozostać bez wolnego miejsca na dysku z danymi, było stworzenie ładnego skryptu do odtworzenia wszystkich indeksów nieklastrowanych online na nowej grupie plików na dysku z wolnym miejscem. Można by pomyśleć, że kupowanie nowego miejsca jest łatwe i szybkie ... ale tak naprawdę nie jest tak.
Jeśli chodzi o wydajność, nie widzieliśmy nic niezwykłego po przeprowadzce. Ale to duże pudełko do przechowywania SAN, w którym wszystko jest trzymane razem :-).
źródło
Ogólnie; podział danych i indeksów na osobne dyski o podobnej wydajności mogą zwiększyć wydajność znacznych operacji zapisu do tej tabeli lub dużych operacji odczytu wykorzystujących ten indeks. Metodologia podobna do niektórych innych operacji we / wy, takich jak tabela partycjonowana na wielu dyskach fizycznych.
Jest to jednak w dużej mierze zależne od pamięci . Na przykład; jeśli masz serwer z ładnym Fushion ioDrive (lub czymś podobnym), a także masz pojedyncze wirujące dyski. Korzystniejsze może być przechowywanie wszystkiego w ioDrive (chyba że przestrzeń jest ograniczona). Należy również wziąć pod uwagę inne rzeczy - konfigurację RAID, konfigurację pamięci sieciowej.
Wykonaj pewne oznaczenia na serwerze testowym z podobnym sprzętem lub (tylko jeśli serwer pomocniczy nie jest opcją) w godzinach poza szczytem z danymi tymczasowymi. Link DBA-Monkey Sankara powyżej jest dobrym jedzeniem do namysłu.
źródło