Недавно у нас были проблемы с блокировкой базы данных oracle по одному запросу, который мы знаем до сих пор.
Я расскажу о том, что происходит, но на самом деле не имею ничего общего с моим вопросом, но я открыт для предложений.
Периодически не сообщая, когда это произойдет, произошло 4 раза за последний месяц, пользователь нажимает на что-то в приложении. Что нажимает пользователь, пока неизвестно. Когда что-нибудь щелкнет, он запустит запрос к базе данных, который сгенерирует около 700 тыс. Строк.
Я проверил таблицу, к которой выполняется запрос, и индексы выглядят хорошо.
База данных 60 ГБ, на сервере 32 ГБ.
Из журналов на сервере базы данных я вижу высокий уровень ввода-вывода, но ЦП и ОЗУ остаются прежними.
На одном сервере приложений загрузка процессора достигает 75%. Я могу найти рабочий процесс, найти PID, однако, когда я убиваю PID, связанный с рабочим процессом, ЦПУ ненадолго отключится, а затем снова перейдет обратно.
Кроме того, повторное использование пула приложений и перезапуск IIS делают то же самое, процессор ненадолго отключается, а затем снова начинает работать.
Единственное, что можно сделать, чтобы вернуть сервер в рабочее состояние, это перезагрузить компьютер.
Поэтому я предлагаю, если этот запрос является причиной блокировок, можно ли увеличить объем памяти на коробке, чтобы база данных могла быть кэширована и исчерпана память. Я слышал это однажды, но я не уверен, правда ли это.
Хранилище представляет собой HP PAR 3 с 3 уровнями, а база данных в основном находится на уровне SSD.
Какой из них быстрее SSD или Memory?