Обложка канала

Oracle Developer👨🏻‍💻

Все о разработке в СУБД "Oracle" SQL, PL/SQL, оптимизация, архитектура, сертификации и многое другое.

Oracle Developer👨🏻‍💻

3 года назад
Открыть в
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