powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Хранимые процедуры против обычных SQL-запросов
25 сообщений из 151, страница 5 из 7
Хранимые процедуры против обычных SQL-запросов
    #36407096
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 "БЛ - на сервер" - этим всё сказано. Я правильно понимаю, что других преимуществ кроме возможности реализации бизнес-логики у процедур вы привести не можете?
Ну а то, что "сервера" разные бывают и можно реализовать БЛ на сервере бех ХП я говорить не буду.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407156
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyPetro123 "БЛ - на сервер" - этим всё сказано. Я правильно понимаю, что других преимуществ кроме возможности реализации бизнес-логики у процедур вы привести не можете?
Ну а то, что "сервера" разные бывают и можно реализовать БЛ на сервере бех ХП я говорить не буду.
вы не можете понять, что "программист может всё", даже самые бредовые идеи реализовать.

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

"Сложнее всего в мире достигнуть простоты - это крайняя граница опыта и последнее усилие гения".
George Sand.


уж так случилось, что ООП язык клиента и Мира не реализуется в РСУБД.
А хранить НЕпротиворечивые данные - надо.

Приведите пример БЛ, которую лучше решать НЕ на сервере или НА сервере без ХП (ХП тут уже есть)
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407189
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123уж так случилось, что ООП язык клиента и Мира не реализуется в РСУБД.
А хранить НЕпротиворечивые данные - надо.

Приведите пример БЛ, которую лучше решать НЕ на сервере или НА сервере без ХП (ХП тут уже есть)
Вы никак не можете понять, что сервера бывают разные. И это не только сервера РСУБД. На некоторых серверах ООП языки вполне себе реализуются.
Но в любом случае все это тема для другого разговора. Я уже писал, что меня не интересуют возможности ХП, как средства реализации бизнес-логики (нормальным ООП-языкам они уступают, но в случае двузвенного приложения других вариантов нет). Я хочу услышать о преимуществах ХП перед SQL-запросами в задаче сохранения/извлечения данных. А вы мне упорно бизнес-логику подсовываете. Есть что сказать кроме бизнес-логики?
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407213
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey
Мне, например, кажется, что удобнее просто создать таблицу, а потом в соответствующем классе на Java написать четыре SQL-оператора, чем городить еще и промежуточный слой в виде четырех хранимых процедур внутрь которых эти операторы запрятаны.
К сожалению, удобнее создать, может прийти в противоречие с удобнее сопровождать, дорабатывать. Особенно если клиентские программеры и серверные разные челы. Серверник пишет SQL, передает его клиентисту, тот лезет в код: зависмость клиента от БД. А так во многих случаях на сервере поменял, а клиентисту даже ниче не говорили. Поменять в БД на сервере одно дело, на нескольких клиентах у заказчика другое, тем более удаленно. А представьте, например, ситуацию SQL стал тормозить со временем. Нуно ехать в командировку там оптимизировать. Шо же и еще потом и с клиентистом связываться?
Када сам пишу примеры с клиентами для техпредложений, то пишу SQL в коде клиента, потому шо удобней, быстрей. А када реализуют в промышлненное, то, это удобство, уже вызывает опасения.
Не говоря уже о случаях када, клиенты разные, а SQL общие во многих случаях (логика на серверной части приложения). А если хоть в одном случае это так, то уже из единообразия стиля тада и все так делать надежнее, иначе сопровождение может вызывать значительно больше беспокойства.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407215
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalovбаза данных, нагруженная большим количеством сложных и простых запросов (что-то не так с нормализацией Вашей базы или с архитектурой, тут либо много простых и мало сложных, либо только сложные и все заросло травой с 90-х)
zapros
Код: plaintext
update c_order set delivery_date = '01 20 2010' where ...
eto prostoj zapros ?
Vrode da, a esli po nemu srabatyvaet trigger, delajushij sledujushij shag BP, na kotorom i obnovlenie drugih tablic (pereschet plana dostavki), i posylka uvedomlenij useram ? Vot i poluchaetsya, chto v sistemah s razvitoj BL na XP prostyh zaprosov ne bolshinstvo.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407254
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoА так во многих случаях на сервере поменял, а клиентисту даже ниче не говорили.В подавляющем большинстве случаев все ровно наоборот. В случае с процедурами работы по модификации на порядок больше, и выполняться она должна "согласованнее".
Типовой случай - в работающей системе добавляют колонку в таблицу. Без процедур это добавление спокой проходит, а потом клиенты начинают использовать эту колонку по мере возникновения потребности. В случае с процедурами сразу же вместе с добавлением колонки надо поменять еще и все CRUD-процедуры - у них изменяется интерфейс и это требует пересборки клиентской части (причем всех клиентов, работавших с этими процедурами).
Да, несомненно случаются и такие случаи, когда табличку правят, а интерфейс CRUD-процедур не трогают, но такие случаи вряд ли один процент всех случаев составляют.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407270
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyPetro123уж так случилось, что ООП язык клиента и Мира не реализуется в РСУБД.
А хранить НЕпротиворечивые данные - надо.

Приведите пример БЛ, которую лучше решать НЕ на сервере или НА сервере без ХП (ХП тут уже есть)
Вы никак не можете понять, что сервера бывают разные. И это не только сервера РСУБД. На некоторых серверах ООП языки вполне себе реализуются.

===== на каких? Я пишу как клиента на ЯП-ООП, так и серверную часть на оракле. Однако ОБЪЕКТНО на нём не пишу.
Про ООПБД или ОРСУБД давайте не будем, т.к. OFFTOP

Но в любом случае все это тема для другого разговора. Я уже писал, что меня не интересуют возможности ХП, как средства реализации бизнес-логики (нормальным ООП-языкам они уступают, но в случае двузвенного приложения других вариантов нет). Я хочу услышать о преимуществах ХП перед SQL-запросами в задаче сохранения/извлечения данных. А вы мне упорно бизнес-логику подсовываете. Есть что сказать кроме бизнес-логики?

===== странное желание у Вас - без БЛ ХП не имеют смысла

Типовой случай - в работающей системе добавляют колонку в таблицу

==== что за ИС-калькулятор?. Просто колонку без логики (связей, отчётов, форм) не добавляют
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407298
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123===== на каких?
Ну например на любом J2EE сервере. :)

Petro123странное желание у Вас - без БЛ ХП не имеют смыслаС этим утверждением полностью согласен. Но и разговаривать в таком случае в этом топике (посмотрите на заголовок) не о чем.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407345
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyPetro123===== на каких?
Ну например на любом J2EE сервере. :)

договорились :)
ХП не нужны там, где сервер - импотент - просто хранилище данных.
За непротиворечивость данных с точки зрения бизнеса ОН не отвечает.
За это отвечают 3 дополнительных сервера, слоя, админа и зарплаты.

Я не против этих...других, только решения у них больно дорогие.
Удачи!
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407419
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizheto prostoj zapros ?
Vrode da, a esli po nemu srabatyvaet trigger, delajushij sledujushij shag BP, na kotorom i obnovlenie drugih tablic (pereschet plana dostavki), i posylka uvedomlenij useram ? Vot i poluchaetsya, chto v sistemah s razvitoj BL na XP prostyh zaprosov ne bolshinstvo.
- именно что "не надо делать сложным то что проще простого" C "Нутилус Помпилиус". Отправлять оповещения пользователям с помощью хранимых процедур или триггеров - это типичное извращение, которое должно реализовываться программно, с помощью нормального ЯП в отдельном уровне (предположительно в сервере приложений). На мой взгляд Вы привели пример того как не надо использовать СУБД.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407440
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ХП не нужны там, где сервер - импотент - просто хранилище данных.
- опять новинка в терминологии, теперь "сервера импотенты" (всем добавить в избранное). Извините, но Вас реально трудно понять - о чем конкретно идет речь?!


Petro123Я не против этих...других, только решения у них больно дорогие.
- на сегодняшний день большинство серверов приложений под JavaEE бесплатные или оплачивается только техническая поддержка. Держать на работе DBA который держит всю бизнес-логику системы у себя в голове, тоже небось недешево обходится. Особенно учитывая, что его увольнение автоматически означает полную переделку системы.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407455
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyДа, несомненно случаются и такие случаи, когда табличку правят, а интерфейс CRUD-процедур не трогают, но такие случаи вряд ли один процент всех случаев составляют.
Что-то моя практика, говорит об обратном. У нас полно удаленных клиентов, и случаи када приходится править клиентов не так часто возникают, меньше 10% от всех. Зато када возникают, то геморно. А так нужен тока один серверист, так еще и процедура исправлеия: нужна тока Аська и там, чел который умеет запускать утилиту для команд SQL, PL/SQL. Он тупо копирует из Аськи и все. А это оч просто. Не то шо инсталировать клиентов, да еще на всех компах.
Т.е. использование ХП по полной, и всех SQL в ХП имеет разумные доводы.

Кроме того, када есть разделение на клиентистов и серверистов, то улучшается специализация.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407535
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KachalovPetro123ХП не нужны там, где сервер - импотент - просто хранилище данных.
- опять новинка в терминологии, теперь "сервера импотенты" (всем добавить в избранное). Извините, но Вас реально трудно понять - о чем конкретно идет речь?!

Держать на работе DBA который держит всю бизнес-логику системы у себя в голове, тоже небось недешево обходится. Особенно учитывая, что его увольнение автоматически означает полную переделку системы.
1.
СУБД не импотент - хранить НЕпротиворечивые для бизнеса данные
СУБД импотент - хранить данные (за непротиворечивость отвечает другой)
2.
"держать DBA дорого" :)
чё-то я не понял, это какой уровень системы проектируем?

Вы серьёзно считаете, что решения на J2EE дешевле по стоимости владения?
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407564
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
СУБД не импотент - хранить НЕпротиворечивые для бизнеса данные
СУБД импотент - хранить данные (за непротиворечивость отвечает другой)Поздравляю с изобретением новых терминов. Осталось только добиться их мирового признания. :)
Можете также задуматься о том имеют ли эти термины отношение к ХП. Для этого вам придется сильно над определением "непротиворечивости" поработать.
А в остальном мне всегда импонировали экстремистские взгляды. Посему ваш мне тоже нравится. Жаль только, что на практике экстремизм проигрывает более гибким подходам.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407571
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoЧто-то моя практика, говорит об обратном.Если у вас бизнес-логика реализована в СУБД, то так скорее всего и есть. Но я уже говорил, что случай использования ХП для бизнес-логики не собираюсь рассматривать в контексте данного топика.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407632
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey,

у вас портфолио есть?

Я вам привёл свой пример ХП для клиент-сервера 2-х звенки.
Заказчик хочет видеть таблицу должников с параметром вверху-ползунком.
У меня всегда есть шаблоны, библиотеки и комьюнити
http://www.databaseanswers.org/data_models/index.htm
для разработки архитектуры.

Что кроме слова J2EE есть у вас для "простого народа" на пальцах? Или гербалайфом торгуем?
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407635
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123
СУБД не импотент - хранить НЕпротиворечивые для бизнеса данные
СУБД импотент - хранить данные (за непротиворечивость отвечает другой)

- я бы еще добавил определение:
"система мачо" - СУБД хранит не противоречивые данные (т. е. СУБД не импотент) и бизнес логика вынесена в отдельный уровень (трехзвенка) на котором данные дополнительно проверяются на непротиворечивость при внесении и изменении

Petro123
"держать DBA дорого" :)
чё-то я не понял, это какой уровень системы проектируем?
- я за перенос бизнес логики из ХП в отдельный уровень (трехзвенка) и использование ХП только в тех случаях когда они дают существенное преимущество по производительности

Petro123Вы серьёзно считаете, что решения на J2EE дешевле по стоимости владения?
- смотря что сравнивать и учитывать ли случай когда DBA умер (ну ладно - уволился) и оставил в наследство базу с путаной структурой и кучу недокументированных ХП и триггеров. Также еще раз при таких сравнениях придется определиться с масштабами и назначением системы, а то каждый участник топика под системой подразумевает что-то свое и с нездоровой горячностью доказывает свою правоту собеседникам которые имеют в виду что-то иное.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407654
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov,
"система мачо"
+5 согласен.
ДОПОЛНИТЕЛЬНЫХ уровней может быть много (вместе с клиентскими). Особенно при нескольких серверах в гетерогенной среде.

про 3 звена спорить бессмысленно и лень.
Я надеялся что контекст топика про вынос SQL на клиента
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407677
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov
и использование ХП только в тех случаях когда они дают существенное преимущество по производительности

здесь играем (ООП), здесь не играем (процедурные хп), а здесь мы рыбу заворачивали (с)
отличный подход сурьезного шпециалиста
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407684
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyvadiminfoЧто-то моя практика, говорит об обратном.Если у вас бизнес-логика реализована в СУБД, то так скорее всего и есть. Но я уже говорил, что случай использования ХП для бизнес-логики не собираюсь рассматривать в контексте данного топика.
Не вся, наверное, но на распределение логики между сервеной и клиетской частями приложения выше названные соображения могут влиять. Конечно, есть парни, которые хотят налабать клиента независмомго от СУБД. У них другие приоритеты. Я скептически отношусь к этим идеям, но я помню, что я базист, и потому могу относиться к клиентской части предвзято. Потому не настаиваю, а говорю тока об альтернативах, и о преимуществах, которые, мне кажется, стоит учитывать время от времени.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407694
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
во наговорили :)
При небольшом числе клиентов ХП на 1-2 порядка быстрее, т.е вся бизнес логика д.б. в ХП.
При росте числа клиентов нагрузка на сервер БД растет. Когда производительность ХП сравняется с клиентом, пора переносить логику на клиента.
Критичное число клиентов для среднего железа ~ 500-1000
Однако многие системы используют динамические вычисления, и тогда бизнес логика д.б. в ХП однозначно.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407712
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalovя считаю что для "серьезной системы" вообще ХП не нужны. Кстати что Вы называете "серьезной системой"?Все просто - как разработчик (ну совсем не DBA), я достаточно сложной считаю систему, для которой имеет смысл распределять работу хотя бы традиционно на троих :) - БД, апп-сервер, клиент. Тогда каждый кусок есть черный ящик для остальных, и своя логика, от остальных независимая, есть в каждом.
И при нормальном проектировании тогда логика обработки, формализуемая в реляционных терминах, естественно живет внутри СУБД, объектная - внутри апп-сервера. И противопоставлять их друг другу - просто бред.

Kachalovто очевидно что подавляющее большинство таких систем относится к типу OLTP-приложений, которые прекрасно могут обходиться без ХП и где использование ХП означает скорее архитектурную безграмотность разработчика, а не реальную необходимость.Безграмотностью разработчика в любых системах является нежелание разбивать систему на части с описанными интерфейсами между ними. Использование ХП - возможно, не лучший (не самый понятный) интерфейс между БД и апп-сервером, но может быть с успехом заменен на те же вью с триггерами, внутри которых - те же ХП. Тогда и любимые всеми (но по-разному:) ) ОРМы думают, что работают с БД, и разработчик БД в своей части делает все, что считает нужным.

KachalovP.S. про масштабирование и кластеризацию в контексте ХП что-то никто не хочет опонировать :) Вопросы типа: "сколько стоит кластеризуемая БД?" явно оказались неудобными Не смешите людей - кластеризация апп-серевера, распараллеливающия обработку логики и кластеризациция БД, распараллеливающия обработку сверхбольших массивов данных - это совершенно разные (и не сключающе друг друга) задачи, противопоставлять их нельзя. И если появилась нечастая необходимость кластеризации именно БД, то стоимость СУБД будет очень небольшим довеском к стоимости железа.

Еще раз не о "плюсах", а о необходимости логики в БД:
1. Все, что можно сделать на чистом SQL - надо на нем и делать, процедурная обработка данных - зло . Параллелизм внутри запроса не может заменить никакая процедура, где бы она не находилась, как и оптимизацию этого запроса на основании актуальных данных (статистики).
Естественно, писать многостраничные запросы, как и следить за целостностью модели в БД может только специалист в конкретной СУБД, эту БД проектирующий, и выносить все это за рамки БД - бред. Эту логику надо маскировать для использования в следующих уровнях обработки (апп-сервер, например) с помощью вью и/или ХП (в зависимости от СУБД), формируя для этих уровней интерфейс к БД.
2. Все, что нельзя сделать декларативно, но что касается только и именно обработки в рамках реляционной модели - лучше делать внутри БД, она это сделает гораздо эффективнее. Что, опять-таки, позволит разделить логические уровни при проектировании.
3. Внешние отн. реляционной модели задачи естественно могут (и как правило должны) решаться вне СУБД, на следующих уровнях.

P.S. С моей точки зрения - данный спор ни о чем, каждый инструмент должен решать свойственные именно ему задачи. И раскидать задачи проекта по соответствующим инструментам есть прямая обязанность проектировщика системы.
P.P.S. А ХП именно вместо запросов (а не вместе с ними), т.е. замена декларативного SQL на процедурную обработку - зло безусловное.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407752
baike2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andrey,

Что-то мне непонятны отличия при добавлении колонки в таблицу?

Bogdanov AndreyТиповой случай - в работающей системе добавляют колонку в таблицу. Без процедур это добавление спокой проходит, а потом клиенты начинают использовать эту колонку по мере возникновения потребности. В случае с процедурами сразу же вместе с добавлением колонки надо поменять еще и все CRUD-процедуры - у них изменяется интерфейс и это требует пересборки клиентской части (причем всех клиентов, работавших с этими процедурами).

Какая разница в обновлении клиента и сервера при использовании процедур или без использования? Изменилась таблица - значит поменялась логика, а это значит надо обновить и сервер и клиента и среднее звено. Или не так? Или я что-то пропустил?

Bogdanov AndreyВ случае с процедурами сразу же вместе с добавлением колонки надо поменять еще и все CRUD-процедуры - у них изменяется интерфейс и это требует пересборки клиентской части (причем всех клиентов, работавших с этими процедурами).

Если задуматься, то он изменится хоть применяешь, хоть не применяешь процедуры...
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407767
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baike2000Или я что-то пропустил?

Пропустили: он как раз выдвигал довод, что придется менять и там. Это я говорил, что менять достаточно буит тока на сервере во многих слуях на практике, если все SQL в ХП.
...
Рейтинг: 0 / 0
Хранимые процедуры против обычных SQL-запросов
    #36407782
baike2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfobaike2000Или я что-то пропустил?

Пропустили: он как раз выдвигал довод, что придется менять и там. Это я говорил, что менять достаточно буит тока на сервере во многих слуях на практике, если все SQL в ХП.

С этим я очень даже согласен.

Ну я говорю именно про колонку в таблице.
...
Рейтинг: 0 / 0
25 сообщений из 151, страница 5 из 7
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Хранимые процедуры против обычных SQL-запросов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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