Скорость запросов Oracle резко меняется с новыми подключениями - PullRequest
0 голосов
/ 24 октября 2019

У меня есть запрос БД с 3 объединениями на 2 таблицы (2 самостоятельных объединения) и заказ в конце. Сервер базы данных находится на другом сервере базы данных, Oracle11g. У нас есть инструмент, который выполняет этот внутренний запрос, который работает медленно (11 часов вместо 1 часа максимум).

Я взял этот запрос из логов и запустил его в Toad 11.5, сначала он занимает 10 секунд (утром - нетронутый дб за ночь). Затем я перехожу на сервер базы данных и запускаю инструмент, убиваю его или позволяю ему закончить, затем я возвращаюсь в Toad и запускаю этот запрос, выполнение которого занимает около 2-3 часов, тот же запрос без каких-либо изменений.

Пожалуйста, помогите мне решить эту странную проблему. Кроме того, когда запрос занимает 10 секунд, при удалении заказа на, это занимает около 500 мили секунд, если эта информация помогает в любом случае.

1 Ответ

1 голос
/ 24 октября 2019

жаба обманула вас. Он вернул первые 500 (или какие) строк, но не весь набор данных. Попробуйте перейти к концу набора данных (Ctrl + End), вы увидите, сколько это займет (читай: возраст ).

Два варианта, которые я могу придумать:

  • используйте driving_site подсказку, которая заставит выполнение на сервере базы данных, а не на компьютере, к которому вы в данный момент подключены
  • , переместите процедуру на сам сервер базы данных и вызовите ее с локального компьютера. соединение
...