У нас есть довольно широкая таблица BaseData с 33 миллионами строк.Затем у нас есть запрос на обновление, который соединяет его с несколькими другими таблицами, содержащими все виды параметров, некоторые функции применяются, существует группа по исходному идентификатору, а затем результаты записываются обратно в таблицу BaseData в несколько столбцов.
Этот процесс очень медленный, поэтому я ищу способы ускорить его.У меня большая часть опыта работы с SQLServer, поэтому я не знаю всех этих типов внутренних компонентов Oracle.
Одна вещь, которую я подозреваю, состоит в том, что во время обновления Oracle создает версии каждой строки, чтобы любой другой читатель мог прочитать эту незатронутую строку.Это, однако, требует значительных ресурсов.Есть ли способ заставить обновление взять блокировку записи на таблицу, чтобы не создавать версии каждой строки?
Есть ли у вас какие-либо другие советы для больших обновлений?Мы уже разбили его на партии.Каждый пакет находится в отдельном разделе таблицы, а затем несколько обновлений запускаются параллельно.Но все еще слишком медленно.