Magnit Tech. Экспресс-вопросы от HR. Ответы
Список вопросов: см. в посте вторника.
Ответы:
1️⃣ Виды Join
Inner, Equi, Self, Semi, Outer(left, right, full), Cross, Anti
2️⃣ Аналитические функции
Row_number, rank, dense_rank, lead, lag и т.д.
Весь перечень аналитических функций можно найти в документации.
3️⃣ Что такое undo/redo? Для чего нужны?
Undo - сегмент отката транзакций. В момент совершения транзакции Oracle старые записи вычитывает и хранит в табличном пространство Undo. Новые данные пишутся в Buffer cache. Такой механизм позволяет сделать откат (rollback) транзакции, а также параллельным сессиям читать только зафиксированные транзакции, не дожидаясь фиксации текущей транзакции.
Redo logs - журналы повторного выполнения, по сути, основа процесса восстановления, благодаря которым Oracle гарантирует восстановление изменений пользователя на случая сбоя.
Ссылки на документацию: undo, redo.
4️⃣ Виды индексов
По физической организации можно выделить:
▫️b-tree;
▫️bitmap;
▫️пользовательские индексы;
▫️кластерные индексы.
По типу:
▫️обычные индексы по полям без модификаций;
▫️функциональные индексы;
▫️индексы с сортировкой;
▫️локальные и глобальные индексы;
▫️реверсивные.
Индексный доступ используется для чтения небольших объемов данных из большой таблицы. Примерно, 1-5% от общего объема.
5️⃣ Что хранится в блоках b-tree индекса?
В блоках b-tree индекса хранятся поля, по которым строился индекс, а также rowid. Детали в документации.
6️⃣ Виды физического соединения таблиц:
▫️nested Loops;
▫️merge join;
▫️hash join.
Используются в следующих случаях:
▫️Для OLTP характерен Nested Loops с использованием индексного доступа (unique, range scan).
▫️Для DSS/DWH/OLAP, чаще всего, используется полное сканирование таблиц. При полном сканировании данных - merge и hash join эффективней.
Об алгоритмах физического соединения таблиц можно прочитать здесь.
7️⃣ Когда используется truncate? Ожидал, что следующий вопрос будет про разницу между truncate и delete. Не стал дожидаться вопроса и дал ответ сразу. Детали ответа можно найти в посте.
Truncate, DDL команда, в основном используется для чистки всей таблицы или секции таблицы. В отличии от команды Delete, Truncate сбрасывает HWM.
8️⃣ Что делать с фрагментированной таблицей?
Фрагментированная таблица - таблица с пустыми блоками данных.
Есть четыре способа дефрагментации таблиц(сброс HWM):
▫️alter table + move;
▫️export / truncate / import;
▫️create table as select (CTAS);
▫️dbms_redefinition.
Напомню, это вопросы со скриниг-интервью от HR.
Главная его задача, попасть в те ответы, которые есть у HR в чеклисте. Не нужно вступать в научные дискуссии и учить уму разуму бедную девушку 😊
—
На следующей недели опубликуем вопросы/ответы с технического собеседования, впечатления и результат 😉
Автор: @Rus5553
#решениезадачи #magnit
Oracle Developer