Oracle Developer👨🏻‍💻
3.22K subscribers
614 photos
68 videos
2 files
492 links
🔝 канал о разработке в СУБД Oracle:
SQL, PL/SQL, оптимизация, архитектура и многое другое...

Backend-pro.ru - обучение по различным программам, связанных с backend-разработкой для ФЛ и ЮЛ.

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
Команда delete не сбрасывает HWM до нуля. HWM остается на прежнем уровне.
Получается, что в таблице нет данных, но HWM находится "на 3х метрах от земли". И СУБД нужно дойти именно до неё при full table scan.
Относительно нашего примера, как будто в таблице все еще оооочень много строк.

Наверное, немного сумбурное объяснение получилось.

Далее, интервьюер обычно задает вопросы:
1. Как нужно удалять данные, чтобы избежать этой ситуации?
Для полного удаления данных используется DDL-команда truncate (усечение), она как раз сбрасывает hwm на “уровень земли”. При этом молниеносно удаляет данные.

2. Как можно сбросить HWM?
Способов несколько. Тот же truncate, если данных нет. Через пересоздание таблицы - CTAS. Через команды перестроения таблицы/управления местом - shrink, move.

В комментариях @ex_electric таки запостил ответ на задачку 😉

Порой, непросто объяснить сложную вещь в одном посте. Дайте, пожалуйста, обратную связь 📊

#решениезадачи #truncate #hwm