powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ищу ментора по pl\sql с высоким уровнем экспертизы
24 сообщений из 49, страница 2 из 2
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984916
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to,

в общем - задание как минимум странное. Просят по возможности оптимизировать и при этом ставят условие об использование неоптимальных в данном случае коллекций
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984919
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xerxf,

В данном случае я использовал forall для оптимизации, вместо обычного прохода по циклу с инсертом в каждой итерации
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984921
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkomyagkii_newbi
В первом сортировка по пейдей деск - это же получится 10 последних платежей, не? Тогда тоже дефект.


да, проверил сейчас.
Код: plsql
1.
order by t.clnt_id, t.subs_id, t.pay_date desc 

явно избыточная строка. На конечный результат консистентности данных не влияет, но доп нагрузку дает.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984923
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
path_to
который выбирает сумму первых 10

path_to
необходимо вставить каждую третью запись

Тест на извращенца. Если у них там всё через n-ую запись и выборки последних m, то ну их в жопу с такой работой.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984924
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По 2-й задаче
1. l_cnt всегда будет оставаться равным 0, и Ваш код будет коммитить после КАЖДОГО шага.
Нехватает
Код: plsql
1.
l_cnt := l_cnt + 1;


в начале тела цикла.
2. После выхода из цикла необходим commit, т.к. записи 21...23 не будут закоммичены (они не являются каждой 5-й)
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984925
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
path_to
который выбирает сумму первых 10

path_to
необходимо вставить каждую третью запись

Тест на извращенца. Если у них там всё через n-ую запись и выборки последних m, то ну их в жопу с такой работой.


вот такие же мысли появились при чтение задания. да плюс ещё это непонятное требование обязательно использовать коллекции..
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984927
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр Спелицин
По 2-й задаче
1. l_cnt всегда будет оставаться равным 0, и Ваш код будет коммитить после КАЖДОГО шага.
Нехватает
Код: plsql
1.
2.
3.
l_cnt := l_cnt + 1;

да, это косяк. тут надо вместо l_cnt ставить можно поставить i и уйти от l_cnt.


в начале тела цикла.
2. После выхода из цикла необходим commit, т.к. записи 21...23 не будут закоммичены (они не являются каждой 5-й)

Тут спорный момент. я когда писал код думал об этом. Если поставить в итоге коммит, то возникает противоречие условию. Я решил максимально придерживаться постановке задачи.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984928
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to
Александр Спелицин
По 2-й задаче
1. l_cnt всегда будет оставаться равным 0, и Ваш код будет коммитить после КАЖДОГО шага.
Нехватает
Код: plsql
1.
l_cnt := l_cnt + 1;


в начале тела цикла.
2. После выхода из цикла необходим commit, т.к. записи 21...23 не будут закоммичены (они не являются каждой 5-й)

1. Да, это косяк. тут надо вместо l_cnt можно поставить i и уйти от l_cnt

2. Тут спорный момент. я когда писал код думал об этом. Если поставить в итоге коммит, то возникает противоречие условию. Я решил максимально придерживаться постановке задачи.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984929
Alex Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to, любое тестовое задание должно быть сформулировано ясным образом и иметь некоторую практическую цель.
В первом задании неясно как искать платежи: дополнительно разбивая по клиентам или только по абонентам.
Во втором задании просто несовпадение преамбулы-пояснения и результат. Что с чем там связано и как? В таблице t могут быть совершенно случайные данные? И т.п.
Написанные курицей лапой задания выдают неуважение ко времени соискателя. Лучше избегать таких вакансий, особенно тех, где 1,5 часа разбираешь задания и 30 минут кодишь.

P.S. Насчёт финального commit во втором задании не волнуйтесь, на ревью оно всплывает даже у ведущих разработчиков.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984934
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to,

просто ради интереса - а контора разработческая? есть подозрение, что бизнес конторы никаким образом не связан с разработкой, IT отдел существует постольку поскольку и сидят в нём какие нибудь динозавры, которые сами мало что толком умеют
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984944
Alex Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to, а вы проверяли код на реальной базе с тестовыми данными?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
forall idx in indices of l_data_set
      insert into test_data
        (clnt_id, subs_id, all_pay_sum)
      values
        (l_data_set(idx).clnt_id,
         l_data_set(idx).subs_id,
         l_data_set(idx).all_pay_sum);
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984947
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кстати, как вариант

insert into test_data
(clnt_id, subs_id, all_pay_sum)
select * from table(l_data_set);

(если что - отошёл от оракла последнее время... так что если с синтаксисом что не так - заранее извиняюсь)
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984950
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первое задание решается одним запросом. это основной момент. для перехода в pl/sql нужны веские аргументы, которых на первый взгляд не просматривается, и мало ли что написано в постановке. сеньор должен предлагать оптимальное решение, а не слепо кодировать постановку. ну и по-мелочи: лишний order by, группировка через аналитику + distinct, еще что-то было.

во втором задании, вероятно, действительно хотели увидеть понимание savepoint, но из вашего кода видно, что вы его даже не протестировали на каких-то сгенерированных данных (ошибка с l_cnt, которую вы сами признали).

path_to
Тут спорный момент. я когда писал код думал об этом. Если поставить в итоге коммит, то возникает противоречие условию. Я решил максимально придерживаться постановке задачи.

то же самое. дословно кодируют постановку мидлы. сеньор должен понимать, что он делает, и указывать на ошибки и неточности в постановке, если он видит таковые. отсутствие фиксации транзакции после вставки - это с высокой вероятностью ошибка в постановке, и на это следовало обратить внимание.

в общем, тестовое задание спорное, но завалили вас по делу. не обижайтесь.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984958
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
path_to,

Я 10 леж уже не пишу pl/sql код но вот что бросилось в глаза в первом куске кода:

1. В запросе нет сортировки в самом внешнем подзапросе. В результате результат ;) будет каждый раз разный, в общем случае. А вот внутри зачем-то order by есть.

2. rnk из поздапроса ограничивается в запросе снаружи, но не участвует в distinct. Что-то странное. Вообще запрос этот меня пугает своей странностью. Но это может потому, что задание я не читал :)

3. Удалять в коллекции элементы не нужно, можно просто в цикле записывать только каждый третий элемент.

4. Вообще если и нужно pl/sql то можно for сразу по курсору пройти. Но задание вроде против :)
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984970
Никанор Кузьмич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кит северных морей
первое задание решается одним запросом. это основной момент. для перехода в pl/sql нужны веские аргументы, которых на первый взгляд не просматривается, и мало ли что написано в постановке. сеньор должен предлагать оптимальное решение, а не слепо кодировать постановку.
+1
xerxf
Просят по возможности оптимизировать и при этом ставят условие об использование неоптимальных в данном случае коллекций
Имхо, в случае противоречивых требований кандидат должен на это указать, а после этого он имеет право выбрать способ разрешения противоречий на свое усмотрение (с аргументацией). А у работодателя в этом случае сужается поле возможных придирок.

path_to
Задание №2
Есть две таблицы test и test_log :
Название колонки Описание колонки
n Порядковый номер (Primary Key)

Изначально в таблице test присутствует 23 записи с значением n от 1 до 23.
В таблице test_log присутствует запись со значением n = 8.

Необходимо написать цикл от 1 до 23 (номер шага цикла обозначим i), который:
1. Обновляет данные в таблице test для каждого n = i, устанавливая n = n - 1;
2. Вставляет в таблицу test_log запись с n = i.

При этом должны выполняться следующие условия:
1. Каждые 5 шагов должна выполняться фиксация изменений в таблицах.
2. Изменения по тем шагам, которые имели ошибки, НЕ должны быть зафиксированы в таблицах.
Я вижу задание так: есть DML операция на большой таблице, которая перелопачивает много строк. Надо выполнить операцию, успешно обработанные записи сохранить. Я бы предложил в качестве решения этой задачи не клепать самодельный велосипед, а использовать специально предназначенный для этого error logging clause.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39984992
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Le
path_to, а вы проверяли код на реальной базе с тестовыми данными?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
forall idx in indices of l_data_set
      insert into test_data
        (clnt_id, subs_id, all_pay_sum)
      values
        (l_data_set(idx).clnt_id,
         l_data_set(idx).subs_id,
         l_data_set(idx).all_pay_sum);



да, а есть подозрения, что есть проблема?
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985002
Alex Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to, в версиях до 11 Oracle, если мне не изменяет память, не поддерживает обращения к отдельным полям записи в nested table.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985009
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Tomin
path_to,

Я 10 леж уже не пишу pl/sql код но вот что бросилось в глаза в первом куске кода:

1. В запросе нет сортировки в самом внешнем подзапросе. В результате результат ;) будет каждый раз разный, в общем случае. А вот внутри зачем-то order by есть.

2. rnk из поздапроса ограничивается в запросе снаружи, но не участвует в distinct. Что-то странное. Вообще запрос этот меня пугает своей странностью. Но это может потому, что задание я не читал :)

3. Удалять в коллекции элементы не нужно, можно просто в цикле записывать только каждый третий элемент.

4. Вообще если и нужно pl/sql то можно for сразу по курсору пройти. Но задание вроде против :)


1. Почему результат будет, разный? В верхнем запросе сумма считается в рамках окна абонента. и какая бы сортировка не была - он должен посчитать верно

2. Да, это тоже похоже косяк

3. Не выйдет. Forall это не for. в нем можно использовать только DML. Никакие логические операторы и сравнения не пройдут. Будет ошибка.

4. Верно. Задание против:)
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985010
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xerxf
path_to,

просто ради интереса - а контора разработческая? есть подозрение, что бизнес конторы никаким образом не связан с разработкой, IT отдел существует постольку поскольку и сидят в нём какие нибудь динозавры, которые сами мало что толком умеют


Организация крупная. Одна из крупнейших в российском секторе ИТ. Занимается разработкой своего ПО.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985013
path_to
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кит северных морей
не обижайтесь.


Никаких проблем. Я всегда за конструктивную критику. Спасибо.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985044
eksql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
path_to

Организация крупная. Одна из крупнейших в российском секторе ИТ. Занимается разработкой своего ПО.

Чем крупнее - тем больше корпоративного идиотизма.

Это задание максимум на продвинутого джуна. Оно простое в понимании, не требует глубоких знаний и в нем нет простора для творчества. Даже если вы сделали мелкие ошибки, всем плевать на них, никто этот код досконально смотреть не будет. Забудьте про это собеседование и не занимайтесь самоедством.
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985064
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
плюс много много за то, чтобы забыть это как страшный сон
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985191
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xerxf
вот такие же мысли появились при чтение задания. да плюс ещё это непонятное требование обязательно использовать коллекции..

Я надеялся увидеть какие-нибудь вопросы по всяким оптимизациям, хинтам, индексам, партицированию, кэшированию, блокировкам, да прочему хайлоаду и всякой внутренней оракловой кухне. Пойдешь к таким и будешь весь день пивотить таблицы и разгребать глючные тормозящие по 50 сек запросы на 5к строчек с рекурсией и n-ми/следующими/предыдущими записями вместо того, чтобы работать.

Модератор: Тема перенесена из форума "Работа".
...
Рейтинг: 0 / 0
Ищу ментора по pl\sql с высоким уровнем экспертизы
    #39985429
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие-то слишком простые задания для сеньора...
...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ищу ментора по pl\sql с высоким уровнем экспертизы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]