Простейшим подходом было бы выдать запрос, который делает декартово произведение вашей самой большой таблицы само по себе несколько раз.Это довольно быстро уничтожит ваше табличное пространство TEMP
и вызовет ошибки для других сеансов, которые необходимо отсортировать.Вы можете уменьшить это, предоставив ограниченные квоты на TEMP
(что может быть сложно, если это учетная запись приложения, которая используется несколькими людьми одновременно, а не индивидуально идентифицируемой учетной записью) или с помощью диспетчера ресурсов для завершения сеансов, которые тоже запускаются слишкомlong или использующие слишком много ресурсов ЦП или В / В.
Даже без явного PARALLEL
подсказки возможно, что Oracle будет использовать параллелизм автоматически.В зависимости от версии Oracle и того, как вы настроили параллелизм, включите автоматическую параллельную настройку, чтобы в любое время ограничить общее количество параллельных рабочих.Конечно, это не мешает пользователю, доступному только для чтения, создавать дюжину сеансов, каждый из которых порождает пару параллельных рабочих, которые перекрывают другие сеансы, которые вы на самом деле хотите запускать больше параллельных рабочих.Вы можете использовать Resource Manager для настройки приоритетов для различных типов рабочей нагрузки, если и когда система становится загруженной ЦП.
И если вы разрешите анонимный блок PL / SQL, есть больше способов, например, создать хаос, например.создание вложенной таблицы, которая заполняется миллиардами строк, пока ваша PGA не будет исчерпана.