Oracle Query не выполняется для большого тома без сбора статистики, даже если план хорош - PullRequest
1 голос
/ 22 мая 2019

Я обрабатываю большой объем с помощью пакетного процесса, пакет зависает при выполнении определенного запроса, который включает таблицу (таблица является постоянной, но используется для временного хранения данных, после обработки данные таблицы удаляются). План запроса был хорош, а стоимость очень меньше , Если я собрал таблицу и проиндексировал статистику с данными и заблокировал ее, запрос выполняется за считанные секунды. Но Query снова застревает, когда приходит другая природа данных. Есть ли какой-либо вариант, кроме сбора статистики, чтобы решить это.

1 Ответ

0 голосов
/ 29 мая 2019

возможно, вы можете попытаться использовать динамическую выборку (или динамическую статистику, поскольку функция помечена начиная с версии 12): https://blogs.oracle.com/optimizer/dynamic-sampling-and-its-impact-on-the-optimizer. Это позволит вам собирать статистику для каждого выполнения, используя подсказку dynamic_sampling в вашем вызове.

...