TGViewer
Oracle Developer👨🏻‍💻 Oracle Developer👨🏻‍💻 @oracle_dbd · 3.43K subscribers
Post #1424 1K
Решение задачи №1: Как ускорить INSERT миллионов и миллиардов строк в Oracle 🚀

Коллеги, всем привет! 👋 На связи Денис.

Сегодня обещал рассказать про методики ускорения массовой вставки данных. Выполняю обещание.
Работал с этим в своё время в IT Магнит - там объёмы были такие, что обычный INSERT просто не вывозил. Приходилось думать головой и комбинировать подходы.

Некоторые техники ниже можно и нужно миксовать - например, APPEND + parallel в связке дают очень хороший результат.

Итак, 5 практических техник для Oracle (список не конечный):

1️⃣ Direct-Path Insert + NOLOGGING - хинт /*+ APPEND */ с режимом NOLOGGING пишет блоки напрямую в датафайлы, минуя Buffer Cache. Радикально меньше redo/undo - вставка ускоряется в разы. C nologging есть нюансы с бекапами и PROD.

2️⃣ Параллельный DML - один процесс не вывезет сотни миллионов строк. ALTER SESSION ENABLE PARALLEL DML + хинт /*+ PARALLEL */ задействуют все доступные ядра на чтение и запись.

3️⃣ Отключение индексов и констрейнтов - на каждую строку Oracle перестраивает B-tree деревья. Переводим индексы в UNUSABLE, констрейнты в DISABLE NOVALIDATE, заливаем данные, потом перестраиваем\включаем.

4️⃣ Partition Exchange - вместо вставки строк готовим данные в staging-таблице и делаем EXCHANGE PARTITION. Мгновенная операция на уровне словаря данных - просто переключение указателей за доли секунды.

5️⃣ Один проход вместо двух транзакций - данные из нескольких источников объединяем через INSERT ALL.

Более подробно разберём всё это на вебинаре 3 сентября. Покажу реальные кейсы, хинты, планы запросов и хитрости, с которыми сам работал на больших данных.
Поставьте напоминание в календарь и зовите коллег 🔔

С вами был Денис. Всем быстрых инсертов 🤝

#oracle #sql #plsql #производительность #performance #insert #DWH #базы_данных #оптимизация #вебинар #Denis_Kivilev

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀

📱 YouTube 📱 ВКонтакте 📱 LinkedIn 📱Threads
RUTUBE
  • 🔥 21
  • ❤ 5
More from @oracle_dbd
  1. Oct 14, 2026EXECUTE IMMEDIATE и конкатенация: страшная залепа 😱 Коллеги, всем привет! 👋 На связи Ден…
  2. Oct 12, 2026NO_DATA_FOUND, который не падает 🫥 Коллеги, всем привет! 👋 На связи Денис. Продолжаем те…
  3. Oct 9, 2026🎥 Index Scan vs Table Access Full: 4 чтения против 15 396 Коллеги, всем привет! 👋 На свя…
  4. Oct 7, 2026WHEN OTHERS THEN NULL - тихий убийца 🤫 Коллеги, всем привет! 👋 На связи Денис. Последние…
  5. Oct 6, 2026Один запрос - пять SQL_ID 🤷🏻‍♂️ Коллеги, всем привет! 👋 На связи Денис. Под постом про…
  6. Oct 4, 2026Семья - самое главное ✅ Друзья всем привет! Сегодня будет воскресный щитпостинг 😊 Не нрав…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →