вопросы на собеседовании по вакансии базы данных

lena1978

когда скажешь, что знаешь sql, то обязательно спросят: а excel?

aniroma85

а что приблизительно спросят и про sql, и про excel ?

Staarboy

Что такое vlookup, что такое сводные таблицы - в принципе, это самые распространенные вопросы по экселю.

78685

а что приблизительно спросят и про sql, и про excel ?
Есть два компа: на одном макросы настрочены, на другом запросы задедлочены. За какой сам сядешь, за какой босса посадишь?

lena1978

а где моник больше?

svt_4969

Ну например на знание SQL:
У тебя есть 30 таблиц в оракле/мс сиквеле, проиндексированы как надо, статистика свежая. Делаешь джойн, использующий все 30 таблиц, запрос адово тормозит. Почему? Рассказать методы решения проблемы для обоих упомянутых БД.
Или: какие методы аллокации неоперационных расходов вам знакомы?
Или: кто из наших сотрудников вам заплатил, чтобы вы пришли на собеседование при указанном в вакансии опыте работы?
Или: расскажите про два метода учёта взаимных требований/обязательств.

lena1978

в оракле - +parallel(t, 100500)

stm7929259

И прочитай обязательно мой рассказ, если что не так пойдёт - действуй также!

shpanenoc

Еще про SQL, есть таблица

create table T
( x int )

В таблице 99 различных чисел от 1 до 100. Найти, какого не хватает до полного набора.

Damrad

сложить все ,да вычесть из суммы ? :)

zena72

ответы в студию!

lena1978

чота вспоминал-вспоминал, похоже я не знаю, как они в 24-ке косты разносят

svt_4969

ответы в студию!
так будет неинтересно! правильно предположил, что дело в том, как CBO считает кост методов соединения (для обоих платформ)
parallel в оракле может быть симптоматическим решением, теоретически, но максимум чего можно добиться - уменьшить время исполнения в <число параллелей> раз, а этого может не хватить

lena1978

правильно предположил, что дело в том, как CBO считает кост методов соединения (для обоих платформ)
я вообще-то про аллокации :lol:

svt_4969

 :grin: :grin: но ответ подходит (если выбросить про 24ку)!
да в банках в общем-то что ни вопрос - всё про косты да маржу...

stm7929259

аллокации
А меня вымораживает это слово...также как и "Заявка находится в состоянии пендинга"
Чо аллоцировать, почему бы не распределить?

svt_4969

так короче, если говоришь "рсапределить" или "разнести", то надо договаривать "расходы на подразделения", а скажешь "аллокация" и всё вроде ясно, ну у меня так по крайней мере, хз

stm7929259

Ок, ясно
Я часто говорю на что - сразу всё прозрачно: распределить по мвз/мвп, никто не спрашивает - ты имеешь ввиду аллоцировать

Koldunel

Есть два компа: на одном макросы настрочены, на другом запросы задедлочены. За какой сам сядешь, за какой босса посадишь?
ахаха, коллегам понравилась твой пост :)

Koldunel

У тебя есть 30 таблиц в оракле/мс сиквеле, проиндексированы как надо, статистика свежая. Делаешь джойн, использующий все 30 таблиц, запрос адово тормозит. Почему? Рассказать методы решения проблемы для обоих упомянутых БД.
возможно запрос писал криворукий чувак и ему надо отрубить руки :)
я имею ввиду ситуацию, когда запрос написан так:
1. берем самую большую таблицу.
2. берем таблицу почти самую большую.
3. если они более чем в 10 раз одна больше другой, то заджойним хешем.
4. если они примерно равны... то заджойним нестед лупсами.
5. прилепим к ним следующую по величине таблицу.
...
N. профит.
при желании длительность выполнения запроса можно увеличить ведь в бесконечность раз. в первую очередь не глядя на статистику (не пользовался ей никогда) смотрел бы код запроса.

svt_4969

в описанной ситуации с вероятностью 99.99999% тормозить будет любой непрохинтованный запрос, вопрос о том почему так происходит - это вопрос на знание алгоритма работы CBO

lena1978

расходы на подразделения

еще на статьи бывает. а в конечном итоге - на продукты всё должно лечь.

stm7929259

еще на статьи бывает. а в конечном итоге - на продукты всё должно лечь.
А еще можно раздробить на подстатьи, а те - на расходы, а те - на ресурсы и подресурсы... фантазировать правила аллоцирования долго можно

rafael43

правила аллоцирования
это еще что за хня?! распределения что-ли?

stm7929259

это еще что за хня?! распределения что-ли?
так короче, если говоришь "правила распределения" или "правила разноса", то надо договаривать "расходов на подразделения", а скажешь "правила аллоцирования" и всё вроде ясно, ну у меня так по крайней мере, хз

algraf

У тебя есть 30 таблиц в оракле/мс сиквеле, проиндексированы как надо, статистика свежая. Делаешь джойн, использующий все 30 таблиц, запрос адово тормозит. Почему? Рассказать методы решения проблемы для обоих упомянутых БД.
ах ты же ебанный по голове, вот почему в банках казалось бы простые операции занимают уйму времени.
главное чтобы прососало остальное не важно :grin:

svt_4969

ах ты же ебанный по голове, вот почему в банках казалось бы простые операции занимают уйму времени.
главное чтобы прососало остальное не важно :grin:
я не совсем понял, что ты имел в виду, но подозреваю, что опять какую-то хуйню, спроецированную из технического вопроса собеседования проективной силой твоего батхёрта в сторону банков)

Boyan123

У тебя есть 30 таблиц в оракле/мс сиквеле, проиндексированы как надо, статистика свежая. Делаешь джойн, использующий все 30 таблиц, запрос адово тормозит. Почему? Рассказать методы решения проблемы для обоих упомянутых БД.
метод решения - спросить, нахуя делать запрос, использующий все 30 таблиц. предположить, что наверняка в запросе несколько ошибок, потому что блядь опизденеешь писать такой запрос. предложить разбить на логические блоки.
принимаю офферы в приват

Damrad

У тебя есть 30 таблиц в оракле/мс сиквеле, проиндексированы как надо, статистика свежая. Делаешь джойн, использующий все 30 таблиц, запрос адово тормозит. Почему? Рассказать методы решения проблемы для обоих упомянутых БД.
метод решения - скину задачу на
принимаю офферы в приват

msfs11

да в тупую захреначить несколько промежуточных матвьюшек, с тригерами на апдейт данных в используемых таблицах.
Но 30 таблиц это конечно жесть :).

svt_4969

чёт никто из вас не понял причину, а решений прям пруд пруди :D
спойлер:
В обоих БД используется cost based optimizer, работает он так: лезет в статистику, смотрит все ли таблицы запроса там есть, по тем таблицам, по которым нет статистики юзается dynamic sampling того уровня, который задан настройками БД, и получается какое-то подобие статистики.
Далее оптимизатор считает кост каждого из вариантов соединения таблиц, включая декартовы произведения. Затем он сортирует их по убыванию и берёт первый, на основании которого строит план запроса. Соответственно, чем больше таблиц - тем больше вариантов джойна.
В оптимизаторе заложен фиксируемый максимум обрабатываемых вариантов, который оказывается превышен, по-моему, где-то с 7-8 таблиц (точно не помню, надо лезть в доки). Когда случается превышение, оптимизатор просто на каком-то моменте забивает и представляет лучший план из тех, что ему удалось вычислить. Соответственно, шанс, что для тридцати таблиц оптимальный вариант попадёт в число рассчитанных, довольно мал.
Решением будет снизить нагрузку на оптимизатор, заставив его обработать джойн небольшого числа таблиц. Это может достигаться как хинтами, так и материализацией небольших блоков запросов - на лету ли, или в таблицах/временных таблицах БД.
Оставить комментарий
Имя или ник:
Комментарий: