Uruchamiasz SQL z pamięci szybciej niż SSD?

12

Ostatnio mamy problemy z blokowaniem bazy danych Oracle w jednym znanym nam zapytaniu.

Opiszę, co się stanie, ale tak naprawdę nie ma to zbyt wiele wspólnego z moim pytaniem, ale jestem otwarty na sugestie.

Niekiedy nie wiadomo, kiedy to się stanie, zdarzyło się 4 razy w ciągu ostatniego miesiąca, użytkownik kliknie coś w aplikacji. To, co użytkownik klika, jest nadal nieznane. Po kliknięciu uruchomione zostanie zapytanie do bazy danych, które wygeneruje około 700 tys. Wierszy.

Sprawdziłem tabelę, dla której zapytanie jest uruchamiane, a indeksy wyglądają dobrze.

Baza danych ma 60 GB, na serwerze jest 32 GB.

Z dzienników na serwerze bazy danych widzę wysokie operacje we / wy, ale procesor i pamięć RAM pozostają takie same.

Na jednym serwerze aplikacji procesor wzrasta do około 75%. Mogę znaleźć proces roboczy, znaleźć PID, jednak gdy zabiję PID związany z procesem roboczym, procesor na krótko spadnie, a następnie ponownie wróci.

Również recykling puli aplikacji i ponowne uruchomienie IIS robi to samo, procesor na krótko spadnie, a następnie ponownie wróci.

Jedyne, co można zrobić, aby przywrócić serwer do linii, to ponowne uruchomienie.

Więc moja sugestia JEŻELI to zapytanie powoduje zawieszanie się pamięci, można zwiększyć pamięć na pudełku, aby baza danych mogła zostać buforowana i zabrakło pamięci. Słyszałem to raz, ale nie jestem pewien, czy to prawda.

Pamięć masowa to HP PAR 3 z 3 warstwami, a baza danych prawie żyje w warstwie SSD.

Który jest szybszy SSD lub pamięć

Anthony Fornito
źródło

Odpowiedzi:

6

Który jest szybszy SSD lub pamięć

DRAM jest szybszy niż flash NAND. Dostęp do pamięci RAM jest rzędu 100 ns, a losowy dysk SSD odczytuje około 16 000 ns. Liczby opóźnień, które powinien znać każdy programista

Musisz przeprowadzić systematyczną analizę tego, co się dzieje i dlaczego. Nie zmieniaj rzeczy tylko dlatego, że słyszałeś coś z drugiej ręki o innym systemie. Znajdź problem w tym systemie.

Na szczęście systemy DBMS mają zwykle narzędzia wydajności. Oracle i inne RDBMS muszą EXPLAIN PLANpokazywać pełne skany i inne nieefektywności. Zapytania mogą wykonywać się strasznie, nawet przy indeksach. Istnieją również raporty wydajności systemu, takie jak Oracle AWR, aby znaleźć wąskie gardła. Jeśli chcesz dowiedzieć się więcej o wydajności DB, możesz również zapytać o naszą siostrzaną stronę, /dba//

John Mahowald
źródło