powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Наши за рубежом [закрыт для гостей] / Что происходит на рынке DB вакансий в ЕС?
25 сообщений из 375, страница 13 из 15
Что происходит на рынке DB вакансий в ЕС?
    #21637068
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257 
Никогда не задумывались - почему этот миф столь устойчив, у людей реально работающих с самыми разными системами: старыми и новыми, сделаными с ORM и без.
потому-что не работали с ОRМ, только и всего. Я тоже так думал, пока не переключился на них
SERG1257 
И ведь вам даже в голову не приходит задуматся - откуда появляются навороченные переоптимизированные хранимки. Мазохисты их какие-то так пишут, небось боятся, чтобы их не уволили. Заменить надо старую систему у нее пепельница переполнилась вот как раз новый продукт вышел.
почитайте про аппсервера и все встанет на свои места
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21637496
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford 
Megabyte 
1) Еще раз повторю, что это был ответ на ваш комментарий про то, что: "А вот разрабочик захочет по такому фильтру(кол-во детей) отфильтроовать. На SQL это надо новый параметр или новую процу, а в коде с использованием ОРМ все просто". Получается, что никакого смысла в этой реплике нет в общем случае и данный вариант подходит только для маленьких таблиц. И я согласился, что здесь можно юзать ОРМ.
Ну да, в ОРМ все просто, не надо ни ХП ни параметров не перетестирования кода, где вы тут противоречие-то увидели? Захотел - отфильтровал. Это не значит что про индекс забыл/не знал, с чего-бы? У разработчика есть спецификация, где время отклика оговорено (обычно). Если запрос без индекса не уложился - то индекс будет добавлен в список предложений по изменению схемы. Каким образом доп. работа по написанию ХП, новых DAL методов и тестов все это улучшит?
Megabyte 
2) По статистике: необходимые индексы\неиспользуемые индексы; запросы, которые больше всего грузят ЦПУ; запросы, которые больше всего грузят диск; какие типы блокировок(для MS SQL) преобладают, чтобы понять, куда копать; монитор текущих запросов.
ok, cool, что мешает вам делать все то-же самое для запросов идущих от ОRМ?
Megabyte 
3) Как правило, фулл стэк разрабочики - это как аникейщики, знают все в среднем\плохо и какую-то одну область хорошо. У нас на фирме тоже, считай, все фулл стэк, запросы пишут к базе и т.п., но по факту оптимизацией кода за всех занимаюсь я один.
Из остальных, один хорошо шарит по бизнес-процессам, другой со всякими апи\джон на ты, третий хорошо пишет скрипты - сценарии на нашем ПО и т.д. Специализация - это двигатель производительности. Невозможно сразу везде быть спецом, за редким исключением.
3) я согласен, и часто специализацияи все-же имеет место быть, те-же front-end девелоперы, однако отдельного спеца по написанию запросов через ORM точно не требуется, я уже писал что сами запросы там относительно несложные, вся навороченная бизнес-логика уехала на аппсервер, все что ORM делает - это достает необходимые данные, ничего супер сложного там нет. Что-бы оптимизировать такие запросы специфических знаний не требуется, а если и попадается что-то необычное - то разработчик сядет и разберется, работа такая, я каждый день решаю задачи на которые не знаю ответа сходу
Megabyte 
Я так вообще наблюдаю рост запросов на ДБА, в и постоянных вакухах, и на фрилансе.
4) это вы еще не видели рост запросов на full stack dev'ов ;)
Megabyte 
5) Как меряли производительность? И это, никто не сказал, что в SQL\хп можно наговнокодить. Такое есть, безусловно.
Ну и да, в скобках бред какой-то написан, вам уже сообщили...
5) не мерял, интуиция просто. В скобках написан не бред, а тот очевидный факт что план исполнения хранимок (как вы должны быть в курсе) компилится на первом ее вызове для параметров этого вызова. То-же самое для запросов от ОРМ, но с той разницей что когда у вас хранимка в сотни строк, с ветвлением по массе условий и прочего - то good luck получить там оптимальный план на последующие вызовы
1) Я не говорил про улучшение, а про то, что кол-во вариантов обращения будет фиксировано, и бесконечно дорабатывать хп\добавлять параметры не потребуется.

2) Когда ты отловишь adhoc запрос из какого-то клиентского кода(ОРМ\не ОРМ не важно), ты понятия не имеешь, откуда он вызывается. В случае с индексами фиг бы с ним, а если надо изменить логику запроса? Надо искать, где этот код вызывается. Чаще всего это знает только тот один разработчик, который это делал. А он уволился\заболел или еще что.
Когда все запросы лежат централизованно, в ХП, то вопрос доработки серверного кода решается просто. Найти вызов ХП из клиента по имени тоже проще, чем проще, чем какой-то сгенерированный непонятно где и кем код.

3) Для ОРМ, конечно, не требуется. Только ОРМ не используют повсеместно. Но ОРМ появились довольно таки давно. Значит не все их юзают и\или планируют юзать. Кое-кто даже отказывается от них или ограничивает сферу применения. Думаю, все зависит от бизнес-процессов.

4) Та я только рад за коллег. :) Каждому свое)

5) Во-первых, проблемы в связи с устарением плана решаются без проблем. Да и возникает это редко. И каждое изменение процедуры естетвенно вызывает перекомпиляцию.
Во-вторых, код процы не обязательно должен быть с кучей параметров и несколькими сотнями строк, с ветвлением. Говорю же, наговнокодить можно везде. Через какое-то время, возможно, потребуется рефакторинг, как и в клиентском коде.
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21637504
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford 
SERG1257 
Никогда не задумывались - почему этот миф столь устойчив, у людей реально работающих с самыми разными системами: старыми и новыми, сделаными с ORM и без.
потому-что не работали с ОRМ, только и всего. Я тоже так думал, пока не переключился на них
SERG1257 
И ведь вам даже в голову не приходит задуматся - откуда появляются навороченные переоптимизированные хранимки. Мазохисты их какие-то так пишут, небось боятся, чтобы их не уволили. Заменить надо старую систему у нее пепельница переполнилась вот как раз новый продукт вышел.
почитайте про аппсервера и все встанет на свои места
Трехзвенка(аппсервера) и использование ХП - вещи, в общем-то, перпендикулярные.
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21638186
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford 
почитайте про аппсервера и все встанет на свои места
Да знаю я ваши аппсервера 21566889
Megabyte 
Трехзвенка(аппсервера) и использование ХП - вещи, в общем-то, перпендикулярные.
Тут речь идет о старом холиваре - где хранить логику: на клиенте (аппсервере) или в базе (ХП). stenford топит за клиента, причем утверждает что логика в базе это устаревший подход, который ВСЕГДА хуже.
Тут либо stenford не знает о проблемах логики на клиенте, либо скрывает их (этого не может быть, потому что не может быть никогда).
В первом случае дискуссия имеет смысл, во втором же, как и во многих других холиварах, стороны разойдутся каждый со своим мнением, оплёванные, но не сломленные.
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21638194
yabs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte 
2) Когда ты отловишь adhoc запрос из какого-то клиентского кода(ОРМ\не ОРМ не важно), ты понятия не имеешь, откуда он вызывается. В случае с индексами фиг бы с ним, а если надо изменить логику запроса? Надо искать, где этот код вызывается. Чаще всего это знает только тот один разработчик, который это делал. А он уволился\заболел или еще что.
Когда все запросы лежат централизованно, в ХП, то вопрос доработки серверного кода решается просто. Найти вызов ХП из клиента по имени тоже проще, чем проще, чем какой-то сгенерированный непонятно где и кем код.
а если хранимка вызывается другой хранимкой? или тремя другими и только при определенных значениях параметров?
тыкать на каждый Package в БД и искать?
где в SQL Developer функция View Call Hierarchy?))

В ОРМ кстати можно логить все запросы
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21638217
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford 
это вы еще не видели рост запросов на full stack dev'ов ;)
Чем больше такого софта (который быстро дешево и сердито) идет в продакшн, тем выше мои ставки.
stenford 
То-же самое для запросов от ОРМ, но с той разницей что когда у вас хранимка в сотни строк, с ветвлением по массе условий и прочего - то good luck получить там оптимальный план на последующие вызовы
Да ну.
Простой пример - дай клиентов из города N (для пущей простоты я даже джойн делать не буду)
Код
1.
select * from customer c where citi_id=1234
Нужен индекс по citi_id или нет?
В плане скан, значит нужен. Но citi_id=1234 это дефолт-сити, значит не нужен.
В ХП с ветвлением по массе условий и прочего есть шанс это выправить, причем здесь и сейчас, не дожидаясь новой версии, которая, заметим, вполне может принести новые баги особенности.
Да, это грязно, это заплатка, это сопля, но это будет работать здесь и сейчас.
По правильному надо бы уведомить разработчика, он должен засунуть мой код из ХП на клиента и в следующем релизе, я верну ХП обратно и все будут счастливы.
Однако, если я не единственный клиент, а у других такой проблемы нет, программист будет всячески упиратся.
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21638233
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yabs 
Megabyte 
2) Когда ты отловишь adhoc запрос из какого-то клиентского кода(ОРМ\не ОРМ не важно), ты понятия не имеешь, откуда он вызывается. В случае с индексами фиг бы с ним, а если надо изменить логику запроса? Надо искать, где этот код вызывается. Чаще всего это знает только тот один разработчик, который это делал. А он уволился\заболел или еще что.
Когда все запросы лежат централизованно, в ХП, то вопрос доработки серверного кода решается просто. Найти вызов ХП из клиента по имени тоже проще, чем проще, чем какой-то сгенерированный непонятно где и кем код.
а если хранимка вызывается другой хранимкой? или тремя другими и только при определенных значениях параметров?
тыкать на каждый Package в БД и искать?
где в SQL Developer функция View Call Hierarchy?))

В ОРМ кстати можно логить все запросы
Для таких индивидуальных случаев придется тюнить, запуская клиента. :) А так, 95% проблем правится на лету, ещё ДО жалоб пользователей на тормоза!

Во все популярные СУБД встроены средства для логирования. :) Причем есть куча фильтров и море инфы по запросу.
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21638479
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte 
1) Я не говорил про улучшение, а про то, что кол-во вариантов обращения будет фиксировано, и бесконечно дорабатывать хп\добавлять параметры не потребуется.
как-же не придется, когда именно так системы и развиваются? Каждый новый релиз содержит новый функционал и запросы к базе
Megabyte 
2) Когда ты отловишь adhoc запрос из какого-то клиентского кода(ОРМ\не ОРМ не важно), ты понятия не имеешь, откуда он вызывается. В случае с индексами фиг бы с ним
ну т.е. при поиске узких для вас не имеет значения откуда идут запросы, я правильно понимаю?
Megabyte 
, а если надо изменить логику запроса? Надо искать, где этот код вызывается. Чаще всего это знает только тот один разработчик, который это делал. А он уволился\заболел или еще что.
Когда все запросы лежат централизованно, в ХП, то вопрос доработки серверного кода решается просто. Найти вызов ХП из клиента по имени тоже проще, чем проще, чем какой-то сгенерированный непонятно где и кем код.
а изменение логики должно лежать за пределами вашей ответственности. Последнее что требуется в продакшене, это ДБА самовольно меняющий логику работы системы. При подобной необходимости поднимается тикет, и все идет по стандартной процедуре (срочный патч/след. релиз итп). Соответственно и искать откуда именно пришел запрос для этого не требуется
Megabyte 
3) Для ОРМ, конечно, не требуется.
Отлично
Megabyte 
5) Во-первых, проблемы в связи с устарением плана решаются без проблем. Да и возникает это редко. И каждое изменение процедуры естетвенно вызывает перекомпиляцию.
Во-вторых, код процы не обязательно должен быть с кучей параметров и несколькими сотнями строк, с ветвлением. Говорю же, наговнокодить можно везде. Через какое-то время, возможно, потребуется рефакторинг, как и в клиентском коде.
Не устаревание плана, а его неверная компиляция из-за входных параметров. И хранимки будут именно что в сотни строк, иначе как там всю логику-то разместить. Можно конечно начать дробить на отдельные функции эмулируя C#, но sql для этого не предназначен. Это собственно и есть причина по которой логика сейчас на аппсерверах
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21638480
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257 
Тут речь идет о старом холиваре - где хранить логику: на клиенте (аппсервере) или в базе (ХП).
не холивар, холивары на эту тему закончились уж лет 10 как назад, сейчас я уже просто описываю как разрабатываются современные системы.
SERG1257 
stenford топит за клиента, причем утверждает что логика в базе это устаревший подход, который ВСЕГДА хуже.
если потрудитесь отмотать несколько страниц назад, то увидите, что я такого не говорил. Хранимки не всегда хуже, есть системы, где они живы и здоровы. Но определяется это не "размером" и "сложностью" системы как настойчиво тут пытаются утверждать некоторые, а ее типом. Система легко может быть небольшой и не сильно сложной и жить только на хранимках т.к. ОРМ там не к месту
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21638481
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257 
Да ну.
Простой пример - дай клиентов из города N (для пущей простоты я даже джойн делать не буду)
Код
1.
select * from customer c where citi_id=1234
Нужен индекс по citi_id или нет?
В плане скан, значит нужен. Но citi_id=1234 это дефолт-сити, значит не нужен.
В ХП с ветвлением по массе условий и прочего есть шанс это выправить, причем здесь и сейчас, не дожидаясь новой версии, которая, заметим, вполне может принести новые баги особенности.
Да, это грязно, это заплатка, это сопля, но это будет работать здесь и сейчас.
под "грязной соплей" подразумевается опция recompile, верно? Вот я про это и говорю - навороченные хранимки страдают от таких недостатков. В ORM'е в силу простоты запросов все куда проще
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21638803
Фотография Wizandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford 
SERG1257 
Да ну.
Простой пример - дай клиентов из города N (для пущей простоты я даже джойн делать не буду)
Код
1.
select * from customer c where citi_id=1234
Нужен индекс по citi_id или нет?
В плане скан, значит нужен. Но citi_id=1234 это дефолт-сити, значит не нужен.
В ХП с ветвлением по массе условий и прочего есть шанс это выправить, причем здесь и сейчас, не дожидаясь новой версии, которая, заметим, вполне может принести новые баги особенности.
Да, это грязно, это заплатка, это сопля, но это будет работать здесь и сейчас.
под "грязной соплей" подразумевается опция recompile, верно? Вот я про это и говорю - навороченные хранимки страдают от таких недостатков. В ORM'е в силу простоты запросов все куда проще
непонятно чем recompile так плох
и почему то что требует recompile в хранимке внезапно не требует recompile в случае с ORM
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21638999
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wizandr 
непонятно чем recompile так плох
и почему то что требует recompile в хранимке внезапно не требует recompile в случае с ORM
"необходимое зло", отличие хранимки от ОRМ тут в том, что recompile для большой ХП куда более затратное мероприятие чем для отдельного запроса из ОRМ. Более того, без recompile неверный план подзапроса/функции в хранимке может по цепной реакции потянуть неверные решения для остального запроса, снизив производительность куда сильнее, чем сам по-себе подзапрос со сканом вместо индекса
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21639063
Фотография Ruuu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford 
Wizandr 
непонятно чем recompile так плох
и почему то что требует recompile в хранимке внезапно не требует recompile в случае с ORM
"необходимое зло", отличие хранимки от ОRМ тут в том, что recompile для большой ХП куда более затратное мероприятие чем для отдельного запроса из ОRМ. Более того, без recompile неверный план подзапроса/функции в хранимке может по цепной реакции потянуть неверные решения для остального запроса, снизив производительность куда сильнее, чем сам по-себе подзапрос со сканом вместо индекса
Уже начиная с версии 2008 можно рекомпилировать отдельные запросы в хп.
И разумеется «по цепочке» план в хп не ухудьшается.
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21639282
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford 
если потрудитесь отмотать несколько страниц назад, то увидите, что я такого не говорил.
Зачем несколько страниц назад, предложение выше описываю как разрабатываются современные системы, стало быть обработка на сервере это несовременно.
stenford 
под "грязной соплей" подразумевается опция recompile, верно?
Нет под грязной соплей подразумевается лишние хинты прибитые гвоздями
stenford 
Но определяется это не "размером" и "сложностью" системы как настойчиво тут пытаются утверждать некоторые, а ее типом.
Сейчас обьясню откуда растут ноги у больших и сложных. Дело в том, что у обработки на клиенте я вижу два недостатка.
1 Лишние накладные расходы на перенос данных. Клиент либо просит много сразу, либо просит мало, но часто. Да у нас быстрая сеть, да аппсервер лежит рядом, но для обработки на сервере этого трафика вообще нет. То бишь в некоторых случаях эти накладные расходы критичны.
2 Размазывание данных между клиентом и сервером, нарушение принципа SPOT: после того как данные ушли к клиенту, СУБД никак их не контролирует. СУБД конечно сама это любит делать: шардинги, кластеры и т.п. но там СУБД старается поддержать непротиворечивость и актуальность кэшей. А как это будет для аппсервера ложится на плечи программиста. Причем у разработчика, то все в порядке, это у заказчика есть несколько разных клиентов к базе. Посмотрите сколько топиков типа "как заставить базу работать только через мою программу". Повторю, проблема не нова, способы ее решения известны, но прикладные программисты не любящие SQL гораздо чаще забивают на эту заумь.
Ruuu 
Уже начиная с версии 2008 можно рекомпилировать отдельные запросы в хп.
Никто не утверждал, что у заказчика SQL server. Более того, логика на клиенте подразумевает свободу в выборе СУБД: версия под Oracle для жирных заказчиков и под PostgreSQL для нищебродов.

Еще один момент: stenford противопоставляет ORM vs хранимки, забывая что его ORM это новая программа, а та что с хранимками это старая программа, над которой топталась толпа разных разработчиков, подпирая костылями ибо концепция менялась несколько раз.
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21639352
kDnZP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford, вот вам входные данные:

Есть исторический справочник, размер таблицы 200Гб (да, именно таблицы :) ). Нужно получить состояние десятка объектов из этого справочника на дату 2000/01/01. Сам справочник организован как через таймштамп модификации поля с величины А на Б, для начальной точки реализовано через признак создания, таймштампы созданий естественно разные. У вас в наличие 3 аппсервера, по 64Гб RAM на каждом, БД с 128Гб RAM, шкаф хранилища на оптике RAID 10 на HDD. Ну и можете теперь рассказать о преимуществах ORM для данной конкретной задачи, либо предложить решение без того чтобы крутить данные сервере баз данных.

* И это только один такой пример, а ведь в реальности их очень даже много... Чего только импорт/экспорт (ETL), аналитика стоят. Повторю свою мысль еще раз - ORM хороши для маленьких/средних задач, но как только решение вырастает, то тут уже отсутствие возможности ювелирной юстировки какой-либо из частей системы - это минус, при этом минус серьезный. Ну и в критически важных местах, где требуется действительно хороший отклик - места ORM тоже нет. ORM это так - решение типичных задач, типичными способами, за среднее время. Т.е. просто ширпотребное решение, не дающее особых плюсов, но помогающее избегнуть типичных проблем и понизить планку требуемых специалистов.
** Написанное выше - личное мнение, исходя из собственного опыта работы как с различного рода подходами, как комбинированных так и без ORM или исключительно ORM-ориентированных. Собственно мое текущее мнение простое - набросать каркас, заготовку можно с использованием ORM, ну а как в жизнь пойдет, то быть готовым, что очень многое нужно будет либо выкинуть, либо переписать еще и казня себя за то, что сразу нормально не делали, а связались с кодогенерацией ORM. :)
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21639464
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford 
Megabyte 
1) Я не говорил про улучшение, а про то, что кол-во вариантов обращения будет фиксировано, и бесконечно дорабатывать хп\добавлять параметры не потребуется.
как-же не придется, когда именно так системы и развиваются? Каждый новый релиз содержит новый функционал и запросы к базе
Megabyte 
2) Когда ты отловишь adhoc запрос из какого-то клиентского кода(ОРМ\не ОРМ не важно), ты понятия не имеешь, откуда он вызывается. В случае с индексами фиг бы с ним
1)ну т.е. при поиске узких для вас не имеет значения откуда идут запросы, я правильно понимаю?
Megabyte 
, а если надо изменить логику запроса? Надо искать, где этот код вызывается. Чаще всего это знает только тот один разработчик, который это делал. А он уволился\заболел или еще что.
Когда все запросы лежат централизованно, в ХП, то вопрос доработки серверного кода решается просто. Найти вызов ХП из клиента по имени тоже проще, чем проще, чем какой-то сгенерированный непонятно где и кем код.
2) а изменение логики должно лежать за пределами вашей ответственности. Последнее что требуется в продакшене, это ДБА самовольно меняющий логику работы системы. При подобной необходимости поднимается тикет, и все идет по стандартной процедуре (срочный патч/след. релиз итп). Соответственно и искать откуда именно пришел запрос для этого не требуется
Megabyte 
3) Для ОРМ, конечно, не требуется.
Отлично
Megabyte 
5) Во-первых, проблемы в связи с устарением плана решаются без проблем. Да и возникает это редко. И каждое изменение процедуры естетвенно вызывает перекомпиляцию.
Во-вторых, код процы не обязательно должен быть с кучей параметров и несколькими сотнями строк, с ветвлением. Говорю же, наговнокодить можно везде. Через какое-то время, возможно, потребуется рефакторинг, как и в клиентском коде.
3)Не устаревание плана, а его неверная компиляция из-за входных параметров. И хранимки будут именно что в сотни строк, иначе как там всю логику-то разместить. Можно конечно начать дробить на отдельные функции эмулируя C#, но sql для этого не предназначен. Это собственно и есть причина по которой логика сейчас на аппсерверах
1) нет, не правильно. Если проблемный код в хп, то доработка на порядок проще.

2) не логика работы системы, а логика работы запроса! Разницу понимаете?

3) языки, знаете ли, развиваются. Расширения sql под конкретную СУБД - тоже. Да и работа с множеством данных в определенных аспектах в sql намного проще, чем на клиенте.
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21639840
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ruuu 
Уже начиная с версии 2008 можно рекомпилировать отдельные запросы в хп.
ок, не знал
Ruuu 
И разумеется «по цепочке» план в хп не ухудьшается.
в подзапросе. Разумеется ухудшает и еще как
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21639841
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257 
Зачем несколько страниц назад, предложение выше описываю как разрабатываются современные системы, стало быть обработка на сервере это несовременно.
да, но не ВСЕГДА, как у вас было выделено жирным. Есть процент, где хранимки используются не потому-что легаси, а потому-что действительно надо
SERG1257 
Дело в том, что у обработки на клиенте я вижу два недостатка.
1 Лишние накладные расходы на перенос данных. Клиент либо просит много сразу, либо просит мало, но часто. Да у нас быстрая сеть, да аппсервер лежит рядом, но для обработки на сервере этого трафика вообще нет. То бишь в некоторых случаях эти накладные расходы критичны.
2 Размазывание данных между клиентом и сервером, нарушение принципа SPOT: после того как данные ушли к клиенту, СУБД никак их не контролирует. СУБД конечно сама это любит делать: шардинги, кластеры и т.п. но там СУБД старается поддержать непротиворечивость и актуальность кэшей. А как это будет для аппсервера ложится на плечи программиста. Причем у разработчика, то все в порядке, это у заказчика есть несколько разных клиентов к базе. Посмотрите сколько топиков типа "как заставить базу работать только через мою программу". Повторю, проблема не нова, способы ее решения известны, но прикладные программисты не любящие SQL гораздо чаще забивают на эту заумь.
это все причины по которым в конце 90-х только так и делали. Я легко могу еще причин накидать, например скорость разработки на чистом sql чуть не в разы выше, развертывание, установка новых версий и прочее. Программистам видимо заняться больше нечем, кроме как наворотить аппсерверов, слои, ORM, IOC фрейворки и прочее вместо вызова простенькой хранимки с апдейтом. Скажу даже больше, текущий проект например мы делаем на архитектуре микросервисов, для тех кто не в курсе - это когда монолитная система бьется на несколько независимых частей, включая базы данных. Т.е. вместо одной системы и одной базы получаем много систем и много баз. Уже нельзя например взять и заджойнить пару таблиц из них. Я уж не говорю про ссылочную целостность и прочее.
На все это есть причины, и ноги этих причин вырасли из проблем, которые и вызывали системы с логикой в базе
SERG1257 
Еще один момент: stenford противопоставляет ORM vs хранимки, забывая что его ORM это новая программа, а та что с хранимками это старая программа
ORM существуют уж лет 15 наверное
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21639842
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDnZP 
Есть исторический справочник, размер таблицы 200Гб (да, именно таблицы :) ). Нужно получить состояние десятка объектов из этого справочника на дату 2000/01/01. Сам справочник организован как через таймштамп модификации поля с величины А на Б, для начальной точки реализовано через признак создания, таймштампы созданий естественно разные. У вас в наличие 3 аппсервера, по 64Гб RAM на каждом, БД с 128Гб RAM, шкаф хранилища на оптике RAID 10 на HDD. Ну и можете теперь рассказать о преимуществах ORM для данной конкретной задачи, либо предложить решение без того чтобы крутить данные сервере баз данных.
т.е. типа отчета? Отчеты в большинстве своем на хранимках (хотя простенькие можно и на ОRМ сваять), т.к. фунцкионал ОRМ там попросту не требуется.
kDnZP 
* И это только один такой пример, а ведь в реальности их очень даже много... Чего только импорт/экспорт (ETL), аналитика стоят. Повторю свою мысль еще раз - ORM хороши для маленьких/средних задач, но как только решение вырастает, то тут уже отсутствие возможности ювелирной юстировки какой-либо из частей системы - это минус, при этом минус серьезный.
вы откровенно путаетесь в том, для чего ORM предназначены, никто их для целей ETL никогда не применяет
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21639843
stenford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte 
1) нет, не правильно. Если проблемный код в хп, то доработка на порядок проще.
вопрос изначально был поднят как диагностика. Т.е. для целей диагностики без разницы, верно? А внесение изменений пусть вас не тревожит, ряазработчики разберутся :)
Megabyte 
2) не логика работы системы, а логика работы запроса! Разницу понимаете?
так это тьюнинг тогда. Уже обсуждали выше
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21639906
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte 
А так, 95% проблем правится на лету, ещё ДО жалоб пользователей на тормоза!
И как часто проблемы возникают на проде? И почему они туда просачиваются?
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21639908
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte,

и как часто при этом происходят релизы?
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21640060
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stenford 
kDnZP 
Есть исторический справочник, размер таблицы 200Гб (да, именно таблицы :) ). Нужно получить состояние десятка объектов из этого справочника на дату 2000/01/01. Сам справочник организован как через таймштамп модификации поля с величины А на Б, для начальной точки реализовано через признак создания, таймштампы созданий естественно разные. У вас в наличие 3 аппсервера, по 64Гб RAM на каждом, БД с 128Гб RAM, шкаф хранилища на оптике RAID 10 на HDD. Ну и можете теперь рассказать о преимуществах ORM для данной конкретной задачи, либо предложить решение без того чтобы крутить данные сервере баз данных.
т.е. типа отчета? Отчеты в большинстве своем на хранимках (хотя простенькие можно и на ОRМ сваять), т.к. фунцкионал ОRМ там попросту не требуется.
kDnZP 
* И это только один такой пример, а ведь в реальности их очень даже много... Чего только импорт/экспорт (ETL), аналитика стоят. Повторю свою мысль еще раз - ORM хороши для маленьких/средних задач, но как только решение вырастает, то тут уже отсутствие возможности ювелирной юстировки какой-либо из частей системы - это минус, при этом минус серьезный.
вы откровенно путаетесь в том, для чего ORM предназначены, никто их для целей ETL никогда не применяет
Ну так может и сути спора нету? Тут же многие согласны, что для определенных задач(вставить\проапдейтить\удалить\выбрать данные из небольшого справочника) ОРМ можно заюзать без ущерба для производительности. Только в процедурах изменения данных редко бывает сложная многострочная логика. Многострочная логика, в основном, в сложных аналитических\статистических отчетах.
skyANA 
Megabyte 
А так, 95% проблем правится на лету, ещё ДО жалоб пользователей на тормоза!
И как часто проблемы возникают на проде? И почему они туда просачиваются?
Эмм. Я даже не знаю, с чего начать. Неоптимальные запросы от простых разработчиков, выросший объем данных, изменения в логике работы с таблицой при доработках. Все это совершенно не обязательно вылезет сразу в виде проблемы производительности. Это выстрелит через неделю\месяц\полгода\год. Ну это я вам самые простые варианты назвал. + может не хватать ресурсов железа, и надо определить, каких конкретно.
skyANA 
Megabyte,

и как часто при этом происходят релизы?
Вы про конкретно нашу систему на моей текущей работе спрашиваете? А какая разница, как что на моей работе? Мы же вроде не ее здесь обсуждаем.
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21640071
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> план исполнения хранимок (как вы должны быть в курсе) компилится на первом ее вызове для параметров этого вызова

я возможно не в курсе mssql, но я вообще хз что такое план исполнения хранимки. для меня всегда был план исполнения запроса. более того, в оракле полно технологий как решать такие вещи. в особенно последних версиях план более чем динамичен и уж точно не привязан к первому вызову. для этого есть целый пласт технологий. dynamic sampling, adaptive optimization и прочее. думаю, mssql не особо отстаёт.
...
Рейтинг: 0 / 0
Что происходит на рынке DB вакансий в ЕС?
    #21640145
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megabyte 
skyANA 
пропущено...

И как часто проблемы возникают на проде? И почему они туда просачиваются?
Эмм. Я даже не знаю, с чего начать. Неоптимальные запросы от простых разработчиков, выросший объем данных, изменения в логике работы с таблицой при доработках. Все это совершенно не обязательно вылезет сразу в виде проблемы производительности. Это выстрелит через неделю\месяц\полгода\год. Ну это я вам самые простые варианты назвал. + может не хватать ресурсов железа, и надо определить, каких конкретно.
Дак как часто-то выстреливает?
Megabyte 
skyANA 
Megabyte,

и как часто при этом происходят релизы?
Вы про конкретно нашу систему на моей текущей работе спрашиваете? А какая разница, как что на моей работе? Мы же вроде не ее здесь обсуждаем.
Если релизы раз в полгода, а проблемы возникают постоянно, то хранимки править конечно удобно (правда опять возникает вопрос о постоянстве проблем).
А если система такая, что хоть сто раз в день накатывай/откатывай версии, то и разработчик в случае чего поправит свой код и пользователи ничего не заметят.
...
Рейтинг: 0 / 0
25 сообщений из 375, страница 13 из 15
Форумы / Наши за рубежом [закрыт для гостей] / Что происходит на рынке DB вакансий в ЕС?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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