powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / использование хранимых процедур
343 сообщений из 343, показаны все 14 страниц
использование хранимых процедур
    #36270589
гуня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотел бы узнать какой прирост производительности дает использование хранимых процедур. интересует именно прирост скорости, про всякие вещи типа вынос кода и прочее я в курсе. просто интересно, насколько увеличивается скорость, может гдето есть сравнительные тесты?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270592
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сравнению с чем?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270597
Денис Ильин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если исходить из чисто теоретических предпосылок - хранимые процедуры должны быть всегда быстрее. конкретный процент зависит от многих факторов, в т.ч. от СУБД :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270603
гуня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Ильин,

хочется для каждой субд, наподобие таблицы. название субд и процент прироста скорости для каждой записи
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270613
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Ильин
если исходить из чисто теоретических предпосылок - хранимые процедуры
должны быть всегда быстрее.

А нельзя ли эти "теоретические предпосылки" огласить?..
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270616
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Ильинесли исходить из чисто теоретических предпосылок - хранимые процедуры должны быть всегда быстрее. конкретный процент зависит от многих факторов, в т.ч. от СУБД :)Опять же, по сравнению с чем?
По сравнению с SQL-запросами - нет.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270625
гуня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftДенис Ильинесли исходить из чисто теоретических предпосылок - хранимые процедуры должны быть всегда быстрее. конкретный процент зависит от многих факторов, в т.ч. от СУБД :)Опять же, по сравнению с чем?
По сравнению с SQL-запросами - нет.

имеется ввиду что запрос к базе данных оформляется в виде хранимой процедуры и вызывается из кода или же запрос выполняется в приложении (т.е. тело запроса находится в самой программе)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270632
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гуня
хочется для каждой субд, наподобие таблицы. название субд и процент
прироста скорости для каждой записи

Обломись. Те СУБД, которые вообще имеют хранимые процедуры используют их
совершенно разными способами.
А уж "прирост скорости для каждой записи" это вообще перл.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270639
гуня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

так не важно каким способом, главное это то что если не использются процедуры то время одно, а когда используется время другое. вот интересно сильно ли будут отличия
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270642
Денис Ильин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нельзя ли эти "теоретические предпосылки" огласить?..
ну как же - не тратится время на разбор SQL выражени, и т.п., например :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270645
Денис Ильин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хочется для каждой субд, наподобие таблицы. название субд и процент
прироста скорости для каждой записи

уу.. как всё запущенно :)
ну, ... если у кого то есть пара-тройка месяцев свободного времени, то мне тоже было бы (чисто теоретический интерес) интересно поглядеть на такую :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270700
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДИну как же - не тратится время на разбор SQL выражени, и т.п., например :)
чешуя. хотите Вы или нет, запрос не может выполниться каким-то волшебным образом в одном случае, и неволшебным - в другом. Сервер всегда парсит sql, пришел он с клиента или выполняется в процедуре на сервере.
С точки зрения выполнения запросов абсолютно до лампы, с клиента они передаются на сервер или берутся сервером из процедуры.

Другое дело - обработка записей. Понятно что выполнить запрос, передать данные на клиента, обработать, и вернуть обратно будет гораздо дольше чем выполнить процедуру, которая все то же самое делает на сервере. Но процедура будет быстрее только потому, что нет пересылки данных на клиента и обратно. Т.е. нет сетевого трафика, только и всего.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270703
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
резюмирую гуне:
Если выполнить select count, с клиента или в процедуре, время выполнения будет абсолютно одинаковым.
Советую еще раз подумать, что с чем Вы пытаетесь сравнить.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270748
Денис Ильин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер всегда парсит sql, пришел он с клиента или выполняется в процедуре на сервере.
может файрбёрд и парсит, но sql server компилирует в момент первого выполнения (составляет план запроса, ищет подходящие индексы и т.д.). После этого "использует свои предыдущие наработки" :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270752
Денис Ильин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если выполнить select count, с клиента или в процедуре, время выполнения будет абсолютно одинаковым.
это точно. O(n) всегда будет работать за O(n).
использование хранимых процедур почти всегда оправданно, прежде всего из соображений безопасности, а не скорости. Если парсить sql код пришедший от клиента, то это чревато sql инъекциями. Решение без разбора клиентского sql кода от подобных инъекций защищено практически на 100%. +можно гибко раздавать права на таблицы (точнее - вообще их не давать, давать права только на хранимые процедуры).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270758
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Ильин Сервер всегда парсит sql, пришел он с клиента или выполняется в процедуре на сервере.
может файрбёрд и парсит, но sql server компилирует в момент первого выполнения (составляет план запроса, ищет подходящие индексы и т.д.). После этого "использует свои предыдущие наработки" :)KDV говорил не об этом. Сам скажет о чём :)

Я же хочу уточнить насчёт FB vs MSSQL.

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

А вот MSSQL "умничает" - смотрит на значения параметров и может скомпилировать далеко не всё.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270777
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гуня пишет:
> хотел бы узнать какой прирост производительности дает использование
> хранимых процедур.

Это зависит очень сильно от конкретной СУБД и того, как там реализованы
процедуры. Без конкретной СУБД обсуждать это бессмысленно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270780
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Ильин
но sql server компилирует в момент первого выполнения (составляет план
запроса, ищет подходящие индексы и т.д.). После этого "использует свои
предыдущие наработки" :)

Ооооо... А догадывается он о том, что новый поступивший запрос
соответствует этим "предыдущим наработкам" не иначе как телепатически.
Хотя, что там ему составлять-то, с его rule-based оптимизатором...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270789
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДИможет файрбёрд и парсит, но sql server компилирует в момент первого выполнения (составляет план запроса, ищет подходящие индексы и т.д.). После этого "использует свои предыдущие наработки"
ну и какая разница? допустим, запрос "первый раз" пришел с клиента, и тот же запрос первый раз выполняется в хранимой процедуре. Что, MS SQL не будет его "парсить"???

ДИЕсли парсить sql код пришедший от клиента, то это чревато sql инъекциями.
весьма сомнительное утверждение. Возможно, Вы под "парсить" имеете в виду что-то отличное от проверки корректности пришедшего с клиента SQL, и т.д.
Можно и процедуру написать так, что в ней тоже будут возможны sql-injections. Так что про них тут, на мой взгляд, не в кассу. В контексте вопроса автора я бы эту тему не развивал.

hvladА вот MSSQL "умничает" - смотрит на значения параметров и может скомпилировать далеко не всё.
тем не менее, возможно моя информация устарела, но раньше были жалобы, что в MS SQL процедуры выполняются медленно. И были вопросы, "а в ФБ тоже процедуры выполняются медленнее, чем SQL?".

И все-таки, я ставлю на то, что автор вопроса спрашивает именно о более быстрой обработке данных процедурами на сервере, в отличие от комбинированной обработки данных клиент+сервер+клиент. Здесь все равно, MS SQL препарит все запросы в процедуре, или не все.

p.s. в любом случае, сам вопрос хреновый.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270808
Денис Ильин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
весьма сомнительное утверждение. Возможно, Вы под "парсить" имеете в виду что-то отличное от проверки корректности пришедшего с клиента SQL, и т.д.
ну, и т.д. - проверка прав к таблицам, из которых идёт выборка, посторение и кеширование плана запроса, и т.д., этапов много.

тем не менее, возможно моя информация устарела, но раньше были жалобы, что в MS SQL процедуры выполняются медленно. И были вопросы, "а в ФБ тоже процедуры выполняются медленнее, чем SQL?".
видимо, это было как то слишком давно. я такого никогда не замечал :)

Ооооо... А догадывается он о том, что новый поступивший запрос
соответствует этим "предыдущим наработкам" не иначе как телепатически.

в смысле? хранимая процедурка то таже самая? все правильные индексы уже выбранны.
иногда статистика хромает, но её то можно собрать заново :yes:

Можно и процедуру написать так, что в ней тоже будут возможны sql-injections.
да, это правда. если использовать динамический SQL. но этот вариант практически не использует какие либо преимущества хранимых процедур :)
поэтому когда я вижу динамический SQL, я прошу его переписать по человечески. Потому что негоже это.

кстати, я так чувствую, сами ответы показывают, насколько разные они, хранимые процедуры, в разных RDBSM. Не факт что сравнение будет имет хоть какую то корректность.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270880
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Хотя, что там ему составлять-то, с его rule-based оптимизатором...

А можно с этого места немного поподробнее?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270890
Albatross
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Ильинесли исходить из чисто теоретических предпосылок - хранимые процедуры должны быть всегда быстрее. конкретный процент зависит от многих факторов, в т.ч. от СУБД :)
Это неправда.
Как раз потому неправда, что в процедуре используется план выполнения, который был создан в момент первого запуска до очередной перекомпиляции, которая может случиться нескоро.

Например, в процедуре выборка из таблицы по битовому полю, причём значение отбора передаётся через параметр процедуры. В этом поле, допустим, значение 1 - это 0.1 процент данных, остальные 99.9 - это значение 0. Пусть есть индекс по этому полю.

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

Если же выбрку делать обычным запросом, то всё будет ок.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270897
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlbatrossДенис Ильинесли исходить из чисто теоретических предпосылок - хранимые процедуры должны быть всегда быстрее. конкретный процент зависит от многих факторов, в т.ч. от СУБД :)
Это неправда.
Как раз потому неправда, что в процедуре используется план выполнения, который был создан в момент первого запуска до очередной перекомпиляции, которая может случиться нескоро.

Например, в процедуре выборка из таблицы по битовому полю, причём значение отбора передаётся через параметр процедуры. В этом поле, допустим, значение 1 - это 0.1 процент данных, остальные 99.9 - это значение 0. Пусть есть индекс по этому полю.

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

Если же выбрку делать обычным запросом, то всё будет ок.В MS SQL появились индексы по битовым полям?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36270904
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperВ MS SQL появились индексы по битовым полям?
Давненько, а что?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271064
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyА можно с этого места немного поподробнее?

Хотите сказать, что MS отрастил своему SQL серверу cost-based
оптимизатор? В какой версии?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271121
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Хотите сказать, что MS отрастил своему SQL серверу cost-based
оптимизатор? В какой версии?

а в какой версии у него был rule-based ? =) Зачем отращивать то, что уже было с рождения ? (как минимум с 2000 версии)

А вообще динамический sql (при желании) ведь тоже параметризуется (что исключает инджекшен) и кэшируется. Так что имхо ХП более важны с точки зрения безопасности и интерфейса БД к своим клиентам, чем с точки зрения скорости

Кстати иногда динамический sql все равно нужен (что-бы не положить сервер неподьемным запросом), но собираться он должен все равно в ХП для инкапсуляции
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271155
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
lockyА можно с этого места немного поподробнее?

Хотите сказать, что MS отрастил своему SQL серверу cost-based
оптимизатор? В какой версии?

Насчет 6.5. не уверен (давно было), так что скажу - минимум с 7-ки. Лет 11 уже, поди, минуло.
хотя и в 6.5, кажись, уже было....
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271157
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerS
А вообще динамический sql (при желании) ведь тоже параметризуется (что исключает инджекшен)

В оракле с этим получше будет :(
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271268
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov пишет:

> Хотите сказать, что MS отрастил своему SQL серверу cost-based
> оптимизатор? В какой версии?

Он в MSSQL с рождения cost-based.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271271
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky пишет:

> Насчет 6.5. не уверен (давно было), так что скажу - минимум с 7-ки. Лет
> 11 уже, поди, минуло.

С 3-ки. Хотя вы даже не знаете наверное о существовании такой версии.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271286
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
С 3-ки. Хотя вы даже не знаете наверное о существовании такой версии.
И называлась она совсем не MSSQL ;)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271363
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
locky пишет:

> Насчет 6.5. не уверен (давно было), так что скажу - минимум с 7-ки. Лет
> 11 уже, поди, минуло.

С 3-ки. Хотя вы даже не знаете наверное о существовании такой версии.

Ну, с трёшки так с трёшки, спорить не буду.
Я начал с 6.5.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271556
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
В оракле с этим получше будет :(
инджекшн там вообще не возможен ? А это как ?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271558
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerSlocky
В оракле с этим получше будет :(
инджекшн там вообще не возможен ? А это как ?
Возможен.
Но, емнип, при помощи чего-то вроде DBMS_SQL можно создавать запросы с переменным к-вом параметров.
в скуле мне пока известен единственный способ создать такое
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare @stmt nvarchar(max)
set @stmt = 'declare @p1 int select @p1 = ... from VarTable...
....
select * 
from Table where Field1 = @p1 and ....
'
exec sp_executesql @stmt
т.е. невозможно построить запрос с плейсхолдерами (которых неизвестное к-во) и потом забайндить на них значение - приходится делать довольно кривой DSQL.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271690
Денис Ильин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, плейсхолдеры особенно и не нужны.
Лично мне хватает возможности передавать в хранимую процедуру в качестве параметра какой нибудь XML. Вот честно - из почти 2-х тысяч хранимок динамический sql только в 5..6..и штучках, и то - в процедурках административного характера, пользователь их даже и не зовёт.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271722
Albatross
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSupr
В MS SQL появились индексы по битовым полям?
Даже в 2000 были. Из EM их создать нельзя было, но вручную - пожалуйста
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36271813
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad пишет:

> И называлась она совсем не MSSQL ;)

Да, называлась она SQLServer.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36277239
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, про производительность вроде бы все уже сказали (что по сравнению с просто SQLем разницы никакой, прирост может быть за счет экономии сетевого трафика при реализации последовательности select с промежуточной обработкой, падение может быть из-за логики пересчета плана запроса).

Раньше, когда миром правили двузвенки, хранимки активно использовались для отделения бизнес-логики (собственно хранимки) от логики хранения (таблички) и визуализации (клиент). По мере перехода на трехзвенки, смысл хранимок несколько снижается (ну, кроме совсем уж экстремальных задач с требованиями к производительности).

Правда, вроде бы еще используют хранимки для обхождения ограничений и проблем ORMов (по крайней мере в мире .Net это обычная практика, судя по форумам).

Зачем они сейчас еще нужны - не знаю :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36278716
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Ну, про производительность вроде бы все уже сказали (что по сравнению с просто SQLем разницы никакой, прирост может быть за счет экономии сетевого трафика при реализации последовательности select с промежуточной обработкой, падение может быть из-за логики пересчета плана запроса).

Раньше, когда миром правили двузвенки, хранимки активно использовались для отделения бизнес-логики (собственно хранимки) от логики хранения (таблички) и визуализации (клиент). По мере перехода на трехзвенки, смысл хранимок несколько снижается (ну, кроме совсем уж экстремальных задач с требованиями к производительности).

Правда, вроде бы еще используют хранимки для обхождения ограничений и проблем ORMов (по крайней мере в мире .Net это обычная практика, судя по форумам).

Зачем они сейчас еще нужны - не знаю :)
Нужны еще как.
Помимо производительности еще и облегчение администрирования, все права даются на хранимки, а напрямую с таблицами клиент работать не должен. Да и изменение логики проходит проще - без сборки новой версии клиента, а просто заменой логики хранимки на сервере.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279356
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas
Да и изменение логики проходит проще - без сборки новой версии клиента,
а просто заменой логики хранимки на сервере.

Можно посмотреть на пример такого изменения логики?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279376
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
barrabas
Да и изменение логики проходит проще - без сборки новой версии клиента,
а просто заменой логики хранимки на сервере.

Можно посмотреть на пример такого изменения логики?

да легко.
1. банальная трудновыявляемая ошибка, неправильный результат на определенных параметрах, подправил процедуру и всё, никаких пересборок проекта.
2. Добавить например аудит или ещё чего.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279382
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 barrabas
DPH3...
По мере перехода на трехзвенки , смысл хранимок несколько снижается (ну, кроме совсем уж экстремальных задач с требованиями к производительности).
...
Зачем они сейчас еще нужны - не знаю :)
Нужны еще как.
Помимо производительности еще и облегчение администрирования, все права даются на хранимки, а напрямую с таблицами клиент работать не должен. Да и изменение логики проходит проще - без сборки новой версии клиента, а просто заменой логики хранимки на сервере.
Выделенное цветом Вы с первого раза не заметили?
В трехзвенках (многозвенках) - клиент не работает с таблицами, изменение логики происходит без пересборки клиента, итд. Т.е. плюсов от использования хранимок не наблюдается. А минусы наблюдаются (размазывание логики, дополнительная раздача прав, и прочие мелкие радости администрирования).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279395
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще на самом деле.
Меньше действий
с процедурами:
1. исправил / закомитил в svn/cvs/меркуриал
2. выполнил

без процедур:
1. Исправил / закомитил
2. собрал
3. выложил / в зависимости от слоя еще и всех выгнать из проги может понадобится
4. сказал всем перезайти.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279402
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП2 barrabas
DPH3...
По мере перехода на трехзвенки , смысл хранимок несколько снижается (ну, кроме совсем уж экстремальных задач с требованиями к производительности).
...
Зачем они сейчас еще нужны - не знаю :)
Нужны еще как.
Помимо производительности еще и облегчение администрирования, все права даются на хранимки, а напрямую с таблицами клиент работать не должен. Да и изменение логики проходит проще - без сборки новой версии клиента, а просто заменой логики хранимки на сервере.
Выделенное цветом Вы с первого раза не заметили?
В трехзвенках (многозвенках) - клиент не работает с таблицами, изменение логики происходит без пересборки клиента, итд. Т.е. плюсов от использования хранимок не наблюдается. А минусы наблюдаются (размазывание логики, дополнительная раздача прав, и прочие мелкие радости администрирования).
а средний слой пересобирать не нужно ?
стопить сервис там и другие прелести.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279417
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИХМО средний слой бы тоже делал без логики, а чисто передатчиком команд и результатов, на нем бы сделал кэширование (если нужно), ну и что то специфическое с чем нормальная субд хуже справится.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279468
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasМеньше действий
с процедурами:
1. исправил / закомитил в svn/cvs/меркуриал
2. выполнил

Получил в лоб "object in use", пошёл всех выгонять из базы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279474
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 barrabas
а средний слой пересобирать не нужно ?
Вы таки определитесь, про Вы клиентскую часть говорили или нет - когда отвечали на сообщение про трехзвенки.
А так я могу и серверные (СУБД-шные) хранимые процедуры пересобирать. На дотнете хранимку наваяю, в сиквел засуну.
И такую модификацию логики придумаю, что пользователей выгнать придется.

ИХМО средний слой бы тоже делал без логики, а чисто передатчиком команд и результатов, на нем бы сделал кэширование (если нужно), ну и что то специфическое с чем нормальная субд хуже справится.
Вот и занахуа такой средний слой нужен, спрашивается?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279488
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПВот и занахуа такой средний слой нужен, спрашивается?
чтобы исключить
ЛПразмазывание логики, дополнительная раздача прав, и прочие мелкие радости администрирования.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279525
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmЛПВот и занахуа такой средний слой нужен, спрашивается?
чтобы исключить
ЛПразмазывание логики, дополнительная раздача прав, и прочие мелкие радости администрирования.
Так убить его совсем, этот "средний слой без логики".
И не будет никакого размазывания, раздачи прав, и прочих мелких радостей. Всё в СУБД жить будет
Уж с кэшированием(которое barrabas предлагает оставить в среднем слое) сервер БД справится как-нибудь.

Приложение или двузвенное, или многозвенное. Если решили (по каким-либо причинам) делать многозвенку - то совершенно логично именно туда и запихнуть логику, права, и прочие мелкие радости. А иначе просто зачем. Сделать средний слой, но ничего туда не положить - ???
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279574
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛППриложение или двузвенное, или многозвенное. Если решили (по каким-либо причинам) делать многозвенку - то совершенно логично именно туда и запихнуть логику, права, и прочие мелкие радости. А иначе просто зачем. Сделать средний слой, но ничего туда не положить - ???
много ложится на средний слой. А вот логика - не всегда. Действительно, часто проще и оптимальней отдать обработку данных тому, кто эти данные хранит - СУБД. Но, кроме обработки данных есть куча другой логики, а вообще:
1. управление контентом системы
2. права доступа
3. управление данными (в смысле различные БД)
4...
впрочем этого уже достаточно
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279709
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 iscrafm
много ложится на средний слой. А вот логика - не всегда.
Что-то как-то я этого не понимаю. Что это за логика такая, что не влезет в произвольный средний слой, но при этом влезет в совсем даже не произвольный слой СУБД (не произвольный - потому что чаще всего реляционный, а ежели не реляционный, то и еще более непроизвольный).

1. управление контентом системы
2. права доступа
3. управление данными (в смысле различные БД)
Я совсем потерял ход Вашей мысли.
Это Вы привели пример того, что ложится в средний слой (но не ложится в СУБД), или пример того, что ложится в СУБД (но не ложится в средний слой)?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279840
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
barrabasМеньше действий
с процедурами:
1. исправил / закомитил в svn/cvs/меркуриал
2. выполнил

Получил в лоб "object in use", пошёл всех выгонять из базы.

в оракле мне такого не разу не встречалось, про другие базы сказать ничего не могу, т.к. не работал
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279855
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП2 iscrafm
много ложится на средний слой. А вот логика - не всегда.
Что-то как-то я этого не понимаю. Что это за логика такая, что не влезет в произвольный средний слой, но при этом влезет в совсем даже не произвольный слой СУБД (не произвольный - потому что чаще всего реляционный, а ежели не реляционный, то и еще более непроизвольный).

1. управление контентом системы
2. права доступа
3. управление данными (в смысле различные БД)
Я совсем потерял ход Вашей мысли.
Это Вы привели пример того, что ложится в средний слой (но не ложится в СУБД), или пример того, что ложится в СУБД (но не ложится в средний слой)?
да хоть работа с разными базами которые о друг друге ничего знать не должны.
потом всякие там генерации и отправки писем с отчетами (в базе не очень удобно генерить всякие ексели и пдф, а на С# легко), клиент назал сгенерить всем клиентам, и средний слой зашуршал, а данные в базе.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279890
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
=======
1. управление контентом системы
2. права доступа
3. управление данными (в смысле различные БД)

=======

Я совсем потерял ход Вашей мысли.
Это Вы привели пример того, что ложится в средний слой (но не ложится в СУБД), или пример того, что ложится в СУБД (но не ложится в средний слой)?
это пример того, что лежит в среднем слое.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279918
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 barrabas
да хоть работа с разными базами которые о друг друге ничего знать не должны.
Пожалейте мой мозг.
Я задаю вопрос одному человеку, получаю ответ от другого.
Причем вопрос "или - или", а ответ "да хоть бы и накуй".

потом всякие там генерации и отправки писем с отчетами (в базе не очень удобно генерить всякие ексели и пдф, а на С# легко), клиент назал сгенерить всем клиентам, и средний слой зашуршал, а данные в базе.
Серверы отчетов отменили???
Даже если отменили... Вот эта Ваша гипотетическая самописная отчетная система - Вы её к чему привели? Это по Вашему пример "среднего слоя без логики, а логика в СУБД" ? Хз, по мне так это самый что ни на есть пример двузвенной клиент-серверной системы, с логикой в СУБД и рисованием экселей и рассылкой писем на клинте.

------------------------------

2 iscrafm
это пример того, что лежит в среднем слое.
Дык с таким я и не спорю. Я очень даже "за" - за то, что ежели уж средний слой образовался, то всякие управления правами и прочие радости надо делать именно там. Непонятки возникли по поводу предложения barrabas'а делать средний слой безнихуа, с одним лишь перенаправлением сиквеловских запросов и (непонятно зачем) кешированием.

Насчет логики, не влезающий в средний слой, можете прокомментировать?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36279974
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП

Даже если отменили... Вот эта Ваша гипотетическая самописная отчетная система - Вы её к чему привели? Это по Вашему пример "среднего слоя без логики, а логика в СУБД" ? Хз, по мне так это самый что ни на есть пример двузвенной клиент-серверной системы, с логикой в СУБД и рисованием экселей и рассылкой писем на клинте.


Нет.
С клиента ушла только команда сделать и разослать, он начал дальше работать и ничего генерить не будет. К средний слой начал дергать процедуры сервера для получения данных, сгенерил отчеты, отправил, ну и лог отправил кому надо.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280012
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Дык с таким я и не спорю. Я очень даже "за" - за то, что ежели уж средний слой образовался, то всякие управления правами и прочие радости надо делать именно там. Непонятки возникли по поводу предложения barrabas'а делать средний слой безнихуа, с одним лишь перенаправлением сиквеловских запросов и (непонятно зачем) кешированием.

Почему прям без ничего, с логикой но со своей, логика обработки данных в базе, такие команды слой просто передает.
Если нужно засветить ИС через внешку, например, я бы заюзал WCF, а не светил базу в инете, это уже средний слой.
А почему бы и не сделать кэширование отдельно, зачем базу напрягать когда можно этого не делать, вариантов много, это один из вариантов.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280030
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasЛП

Даже если отменили... Вот эта Ваша гипотетическая самописная отчетная система - Вы её к чему привели? Это по Вашему пример "среднего слоя без логики, а логика в СУБД" ? Хз, по мне так это самый что ни на есть пример двузвенной клиент-серверной системы, с логикой в СУБД и рисованием экселей и рассылкой писем на клинте.


Нет.
С клиента ушла только команда сделать и разослать, он начал дальше работать и ничего генерить не будет. К средний слой начал дергать процедуры сервера для получения данных, сгенерил отчеты, отправил, ну и лог отправил кому надо.
Нет. Этот Ваш "средний" (отчетный) слой - не есть средний слой в классической многозвенной архитектуре. Он не форсирует дальнейшую работу "через себя". Это самый что ни на есть клиент для СУБД, живущий своей жизнью, не мешающий жить другим клиентам с подобной, но иначе реализованной функциональностью, и не мещающий жить другим клиентам со сколь угодно другой фунциональностью. То, что он куда-то что-то рассылает по запросу кого-то третьего, который в это время занят чем-то четвёртым - это вообще дело десятое.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280036
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Насчет логики, не влезающий в средний слой, можете прокомментировать?
комментировать особо нечего. Я просто высказал собственное мнение, что логика обработки данных лучше смотрится в СУБД. Чисто имхо. это не означает, что ее нельзя вынести в средний слой. просто я, лично, такое не проповедую. Мне пользоваться простыми SQL предложениями гораздо комфортней и более предсказуемо, чем городить нечто с ORM и обработкой данных на Java,Delphi и т.п. Хотя тоже не отношусь к этому категорично.
если быстрее и надежней будет так, как показано ниже, то почему нет. Всему свое место

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
#!e:/perl/bin/perl -w

$inputfile = "DUMMY";
$inputfile =~ m![^/\\]+$!;
$outputfile = $`."out.log";

    if( -f $inputfile ){
        open( LOGFILE, "<". $inputfile) or die (" $!");
    }

    #die ($vcl->ShowMessage(" $!")) unless( $outputfile );
    open( OUT, ">". $outputfile) or die (" $!");
    
    while(<LOGFILE>)
    {
        #ИНН  7718505679 
       s/(Плательщик1=|Получатель1=)\s*ИНН\s+\d+\s+(.+)$/$ 1 $ 2 /;
       s/^(Дата[^=]*|СрокПлатежа)= 00 \. 00 \. 0000 /$ 1 = 01 . 01 . 1976 /;
       s/\./,/g if (/Сумма|Всего|Остаток/ and /\d\.\d/);

      print OUT $_;
    }   
 
    close LOGFILE;
    close OUT;
    rename($outputfile,$inputfile);
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280037
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasПочему прям без ничего
Почему? По Вашим словам.

Если нужно засветить ИС через внешку
Этак договоримся до того, что связку MS SQL Server + MS ISA Server будем считать примером многозвенного приложения.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280043
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas
Нужны еще как.
Помимо производительности еще и облегчение администрирования, все права даются на хранимки, а напрямую с таблицами клиент работать не должен. Да и изменение логики проходит проще - без сборки новой версии клиента, а просто заменой логики хранимки на сервере.

Это ты опять про двузвенки говоришь, где причины появления хранимок вполне понятны (как эмуляция application layer).
А вот в трехзвенках ничего из этого уже не нужно...
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280076
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
barrabasМеньше действий
с процедурами:
1. исправил / закомитил в svn/cvs/меркуриал
2. выполнил

Получил в лоб "object in use", пошёл всех выгонять из базы.

Это где такое?
В смысле, какая СУБД выдает такие штуки при рекомпиляции ХП?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280085
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПbarrabasПочему прям без ничего
Почему? По Вашим словам.

Если нужно засветить ИС через внешку
Этак договоримся до того, что связку MS SQL Server + MS ISA Server будем считать примером многозвенного приложения.
так собственно чем WCF не средний слой, в нем можно как раз кучу логики не относящейся к БД реализовать

2 DPH3
с правами БД конечно я загнул, но пересобирать и выпускать в продакшен средний слой сложнее, нежели просто заменить процедуру.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280086
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracsDimitry Sibiryakov
barrabasМеньше действий
с процедурами:
1. исправил / закомитил в svn/cvs/меркуриал
2. выполнил

Получил в лоб "object in use", пошёл всех выгонять из базы.

Это где такое?
В смысле, какая СУБД выдает такие штуки при рекомпиляции ХП?
FireBird
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280087
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 iscrafm
если быстрее и надежней будет так, как показано ниже
Не надо аргументировать примерами экстремального говнокода

Мысль понятна, в общем. Против возможности (и зачастую целесообразности) реализации логики в БД я не возражаю. Но тогда вынос управления правами в средний слой выглядит странно, а аргументы типа "различные СУБД" так и вообще выглядят невозможно.

ИМХО, если (по каким-либо причинам логика зашита в БД, то надо иметь в БД по возможности всё остальное (всякое там управление правами). Если же логика в среднем слое, то и управление правами итд итп там же должно лежать. И надобности в хранимках в этом случае как бы и нету вообще (с чего обсуждение и началось).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280094
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 barrabas
так собственно чем WCF не средний слой, в нем можно как раз кучу логики не относящейся к БД реализовать
По Вашему "средний слой" - это "где можно кучу всякой логики реализовать"?
Я и на клиенте могу навалить реализовть кучу всякой логики, но средним слоем он от этого не станет. Даже не сомневайтесь.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280127
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП2 iscrafm
если быстрее и надежней будет так, как показано ниже
Не надо аргументировать примерами...

а что в нем написано? :)

ЛПНо тогда вынос управления правами в средний слой выглядит странно, а аргументы типа "различные СУБД" так и вообще выглядят невозможно.

Вы просто наверное не встречались с таким. Когда в комплекс завязаны много компаний с различными системами и СУБД, то выглядит это очень даже "возможно"

ЛПИМХО, если (по каким-либо причинам логика зашита в БД, то надо иметь в БД по возможности всё остальное (всякое там управление правами). Если же логика в среднем слое, то и управление правами итд итп там же должно лежать. И надобности в хранимках в этом случае как бы и нету вообще (с чего обсуждение и началось).
в примитивных случаях конечно. Ничего кроме СУБД не нужно в принципе. Я говорю о больших системах. Кстати, в какой из СУБД будете держать управление доступом если их несколько. Ну и конечно же, в трехзвенках клиент не работает с СУБД. Для СУБД 500 пользователей системы - это один Сервер приложений
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280130
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmbaracsDimitry Sibiryakov
Получил в лоб "object in use", пошёл всех выгонять из базы.

Это где такое?
В смысле, какая СУБД выдает такие штуки при рекомпиляции ХП?
FireBirdНет такого в FireBird.

Но менять метаданные на ходу действительно весьма не рекомендуется.
Ещё с момента начальной реализации PSQL Borland'ом.
Ничего, когда-нибудь и это исправим.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280137
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladiscrafmbaracsDimitry Sibiryakov
Получил в лоб "object in use", пошёл всех выгонять из базы.

Это где такое?
В смысле, какая СУБД выдает такие штуки при рекомпиляции ХП?
FireBirdНет такого в FireBird.

ну значит у меня под этим именем MySQL скрывается. Вот же замаскировался жук.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280156
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 iscrafm
а что в нем написано? :)
Я в сортах овна не разбираюсь :)

Кстати, в какой из СУБД будете держать управление доступом если их несколько.
Именно в среднем слое буду держать управление доступом. Потому что СУБД несколько. Проще сопровождать одну систему раздачи прав, чем несколько.
И по этой же самой причине буду стараться держать логику с том же самом (а может и немножко другом) среднем слое - потому что сопровождать одну кучку бизнес-логики гораздо проще, чем многие множества куч, тем более размазанных по каким-то там хранимкам.
Есть трехзвенка - на фиг бы мне сдались хранимые процедуры. (исключая вопросы производительности, из за которых конечно же может понадобиться заниматься размазыванием).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280157
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП2 barrabas
так собственно чем WCF не средний слой, в нем можно как раз кучу логики не относящейся к БД реализовать
По Вашему "средний слой" - это "где можно кучу всякой логики реализовать"?
Я и на клиенте могу навалить реализовть кучу всякой логики, но средним слоем он от этого не станет. Даже не сомневайтесь.
а по теме, чем WCF-сервер не средний слой между базой и клиентом, та же программа в виде сервиса или приложения, слушает порт, принимает команды с клиента, выдает ему результат.

У нас 4ре разные ИС, а баз разных и того больше
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280177
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это вопрос как я понял "религиозный"
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280179
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasУ нас 4ре разные ИС, а баз разных и того больше
И бизнес-логика, как я понимаю, у Вас размазана по четырем разным ИС и еще большему количеству баз, где она лежит в миллионе разнообразных хранимок.
С чем Вас и поздравляю.
Увольте там кого-нибудь. Наймите другого.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280184
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПЕсть трехзвенка - на фиг бы мне сдались хранимые процедуры. (исключая вопросы производительности, из за которых конечно же может понадобиться заниматься размазыванием).
"нафиг бы"? Речь о чем-то конкретном или просто о барышнях рассуждаем которых пощупать нет возможности? А то назвали что-то нехорошим словом, а потом сказали, что даже не понимаете что там написано. Скучно.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280186
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПbarrabasУ нас 4ре разные ИС, а баз разных и того больше
И бизнес-логика, как я понимаю, у Вас размазана по четырем разным ИС и еще большему количеству баз, где она лежит в миллионе разнообразных хранимок.
С чем Вас и поздравляю.
Увольте там кого-нибудь. Наймите другого.
да нет, просто только одна наша, а другие купленные
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280188
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmЛПЕсть трехзвенка - на фиг бы мне сдались хранимые процедуры. (исключая вопросы производительности, из за которых конечно же может понадобиться заниматься размазыванием).
"нафиг бы"? Речь о чем-то конкретном или просто о барышнях рассуждаем которых пощупать нет возможности? А то назвали что-то нехорошим словом, а потом сказали, что даже не понимаете что там написано. Скучно.
в оракле есть пакеты, и миллион хранимок это не про него
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280204
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmЯ просто высказал собственное мнение, что логика обработки данных лучше смотрится в СУБД. Чисто имхо. это не означает, что ее нельзя вынести в средний слой. просто я, лично, такое не проповедую. Мне пользоваться простыми SQL предложениями гораздо комфортней и более предсказуемо, чем городить нечто с ORM и обработкой данных на Java,Delphi и т.п. Хотя тоже не отношусь к этому категорично.

Гм. Хотелось бы увидеть эти простые SQL (а не T-SQL, например) предложения, обеспечивающие бизнес-логику и обработку данных.

Бизнес-логика в большинстве приложений (даже очень простых) не сводится к DML. А это значит, что реально таки пишется средний слой, только не на универсальном языке, а на каком-нибудь T-SQL. Ну и все велосипеды, которые обычно уже есть в универсальных платформах - придумываются с нуля.

Впрочем, ORM - это, конечно, зло :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280216
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3barrabas
Нужны еще как.
Помимо производительности еще и облегчение администрирования, все права даются на хранимки, а напрямую с таблицами клиент работать не должен. Да и изменение логики проходит проще - без сборки новой версии клиента, а просто заменой логики хранимки на сервере.
Это ты опять про двузвенки говоришь, где причины появления хранимок вполне понятны (как эмуляция application layer).
Да сколько-угодно-звенки!
С точки зрения сервера, управляющего БД, все что к нему обращается снаружи - клиент. И если клиент читает/меняет данные в БД через хранимые процедуры, это:
- во многих случаях, сильно ускоряет работу системы в целом,
- упрощает обеспечение целостности и непротиворечивости данных,
- сильно упрощает сопровождение и развитие системы;
- про разделение доступа к объектам бд тут уже много писали...
DPH3[А вот в трехзвенках ничего из этого уже не нужно...
Ну, тогда dbf-ники на новелловском сервере лучшая БД для вас
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280225
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas
А почему бы и не сделать кэширование отдельно, зачем базу напрягать когда можно этого не делать, вариантов много, это один из вариантов.

Обычно потребность в дополнительном (не средствами БД) кэшировании возникает или при очень высоких нагрузках (ну там сотни и тысячи запросов в секунду), или при очень больших объемах оперативных данных (десятки гигов, нужных ежесекундно - граф друзей, например) или при плохом проектировании БД и архитектуре системы вообще.
Последний сценарий - наиболее популярный.

Более того, если вам нужно кэширование данных от БД на промежуточном уровне, значит, скорее всего, нужно срочно делать шардинг :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280231
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3barrabas
А почему бы и не сделать кэширование отдельно, зачем базу напрягать когда можно этого не делать, вариантов много, это один из вариантов.

Обычно потребность в дополнительном (не средствами БД) кэшировании возникает или при очень высоких нагрузках (ну там сотни и тысячи запросов в секунду), или при очень больших объемах оперативных данных (десятки гигов, нужных ежесекундно - граф друзей, например) или при плохом проектировании БД и архитектуре системы вообще.
Последний сценарий - наиболее популярный.

Более того, если вам нужно кэширование данных от БД на промежуточном уровне, значит, скорее всего, нужно срочно делать шардинг :)
у нас нету 3го слоя
я гипотетически рассуждаю.
пока он нам не нужен, но вообще есть идея wcf сервиса
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280233
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasПроще на самом деле.
Меньше действий
с процедурами:
1. исправил / закомитил в svn/cvs/меркуриал
2. выполнил

без процедур:
1. Исправил / закомитил
2. собрал
3. выложил / в зависимости от слоя еще и всех выгнать из проги может понадобится
4. сказал всем перезайти.

Ой. Я бы сказал, за такой набор действий убивать надо :)
Правильный вариант:
1. Исправил
2. Закоммитил
3. Собрал релиз
4. Отдал в тестирование
5. Отдал в эксплуатацию

И тут наличие шага "собрал" - оно гораздо удобнее, так как гарантирует, что то, что отдано в тестирование - и окажется на продакшне.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280247
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmРечь о чем-то конкретном или
Речь об ценности и полезности хранимок в трехзвенках. Гипотетических хранимок в гипотетических трезвенках. Общие соображения.

А то назвали что-то нехорошим словом, а потом сказали, что даже не понимаете что там написано. Скучно.
Я не сказал, что не понимаю :)
Не хочу понимать. Не люблю я разбираться вот в таком вот перловом скотоложестве :)
А что, там какой-то шедевр, заслуживающий пристального внимания?

-------------------------

2 barrabas
да нет, просто только одна наша, а другие купленные
Это объяснение того, почему "всё плохо". А никак не аргумент за то, что "это хорошо" и "это правильно" :)

-------------------

2 baracs
И если клиент читает/меняет данные в БД через хранимые процедуры, это:
- во многих случаях, сильно ускоряет работу системы в целом,
- упрощает обеспечение целостности и непротиворечивости данных,
- сильно упрощает сопровождение и развитие системы;
- про разделение доступа к объектам бд тут уже много писали...
В случае, если у СУБД ровно один клиент (а это именно случай многозвенных приложений) - Ваше высказывание неверно по всем пунктам (по некоторым пунктам оно неверно и в случае многих клиентов)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280256
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Гм. Хотелось бы увидеть эти простые SQL (а не T-SQL, например) предложения, обеспечивающие бизнес-логику и обработку данных.


на рисунке - элемент среднего слоя. А ниже один из декомпозированных "пунктиков" сценария бизнес-логики (MRP планирование в данном случае).
Код: plaintext
1.
2.
UPDATE MRP01 SET GR = D.UM,GRAM = D.AM, GRPRC=D.RPRC, GRCOST = D.COST
FROM MRP01 T
INNER JOIN MRP03 D ON D.ITEMNO = T.ITEMNO AND D.PID = T.PID
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280262
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Бизнес-логика в большинстве приложений (даже очень простых) не сводится к DML. А это значит, что реально таки пишется средний слой, только не на универсальном языке, а на каком-нибудь T-SQL. Ну и все велосипеды, которые обычно уже есть в универсальных платформах - придумываются с нуля.
Если на T-SQL пишется также, как на процедурных языках, то таки да! Получается ужас
Но любым инструментом надо уметь пользоваться...
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280272
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПЯ не сказал, что не понимаю :)
Не хочу понимать. Не люблю я разбираться вот в таком вот перловом скотоложестве :)
А что, там какой-то шедевр, заслуживающий пристального внимания?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280276
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПbaracs
И если клиент читает/меняет данные в БД через хранимые процедуры, это:
- во многих случаях, сильно ускоряет работу системы в целом,
- упрощает обеспечение целостности и непротиворечивости данных,
- сильно упрощает сопровождение и развитие системы;
- про разделение доступа к объектам бд тут уже много писали...
В случае, если у СУБД ровно один клиент (а это именно случай многозвенных приложений) - Ваше высказывание неверно по всем пунктам (по некоторым пунктам оно неверно и в случае многих клиентов)
А поподробнее?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280278
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracs И если клиент читает/меняет данные в БД через хранимые процедуры, это:
- во многих случаях, сильно ускоряет работу системы в целом,

Э, в каких? Ну, кроме серверного курсора по миллиону строк, который, нужен крайне редко (а лучше бы - никогда).
baracs
- упрощает обеспечение целостности и непротиворечивости данных,

Как?

baracs
- сильно упрощает сопровождение и развитие системы;

Ой, а тут - как? Как отдать в тестирование сборку промежуточного сервера - я знаю.
А вот как отдать в тестирование структуру БД....
Я уж молчу про невозможность рефакторинга в SQLе, неразвитость (это мягко сказано) IDE, убогость языковых средств и т.д.

baracs
- про разделение доступа к объектам бд тут уже много писали...

Э, а что, у вас каждый пользователь системы имеет отдельную учетную запись в БД? И авторизуется прямо в БД?
А если нет - то где там разделение доступа, да и разделение для чего?

baracs
Ну, тогда dbf-ники на новелловском сервере лучшая БД для вас
Ну, моя любимая БД - это IBM DB2. Самый развитый SQL и осознание потребностей трехзвенок :)
Oracle, похоже, по привычке считает, что все приложения - двухзвенные.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280293
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.s. 2 ЛП, сорвалось.
нет там ничего сверхестветвенного. Просто пример когда рег.выражения перла помогут просто решить задачу предварительного приведения данных из разных клиент-банков к удобоваримому виду.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280300
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3barrabasПроще на самом деле.
Меньше действий
с процедурами:
1. исправил / закомитил в svn/cvs/меркуриал
2. выполнил

без процедур:
1. Исправил / закомитил
2. собрал
3. выложил / в зависимости от слоя еще и всех выгнать из проги может понадобится
4. сказал всем перезайти.

Ой. Я бы сказал, за такой набор действий убивать надо :)
Правильный вариант:
1. Исправил
2. Закоммитил
3. Собрал релиз
4. Отдал в тестирование
5. Отдал в эксплуатацию

И тут наличие шага "собрал" - оно гораздо удобнее, так как гарантирует, что то, что отдано в тестирование - и окажется на продакшне.
тестирование это само сабой, для этого есть тестер и тестовый сервак на котором собственно и правится, эти пункты совпадают просто, я их и опустил.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280306
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
(MRP планирование в данном случае).


Ой. Так получилось, что MRP системы я писал...
И что, у вас все варианты расчета планов реализованы чистым DMLем?
А эвристики и различные алгоритмы прогнозирования для различных периодов, для различных товаров, для различных переделов у вас как реализуются? Тоже DMLем?
А граничные условия для оценочных функций для планов (обычно задаваемые пользователем в виде выражений) - тоже DMLем?
И линейное программирование вы тоже на DMLе делаете?
Не верю :)

Мне доводилось все это реализовывать средствами БД, на относительно чистом MS SQL...
И нехватка нормального языка сказывалась чрезвычайно...
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280319
> Oracle, похоже, по привычке считает, что все приложения - двухзвенные.

то-то у него cвоих аппликейшн серверов три штуки не считая всяких coherence и прочей middleware хрени
наверна специально всё скупил чтобы испортить и заставить все писать хранимки на pl/sql
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280326
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas
тестирование это само сабой, для этого есть тестер и тестовый сервак на котором собственно и правится, эти пункты совпадают просто, я их и опустил.

А какая сущность отдается в тестирование? Что получает отдел тестирования от отдела разработки? Как для SQLя отмечаются релизы?

(Кстати, особенно это актуально для Oracle, где синтаксический анализатор не слишком качественный. У нас был опыт, когда вставленный лишний пробел (незначащий) приводил к принципиальному изменению запроса).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280344
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
2 barrabas
да нет, просто только одна наша, а другие купленные
Это объяснение того, почему "всё плохо". А никак не аргумент за то, что "это хорошо" и "это правильно" :)

нет, это то что есть, и как я писал выше среднего слоя у нас пока нет,
да и собственно если было бы иначе это была бы одна ИС с кучей баз данных.
-------------
Если делать логику на среднем слое, то и воспользоваться ей можно только там и ниже, а вот в БД уже никак, а бывают задачи - написание скрипта где нужно, что то выгрузить получить быстро данные или еще чего, где очень пригодились бы готовые функции, а их в базе нету, придется или делать это в среднем слое и вызвать в клиенте (т.е. пересобирать клиента и прослойку) или дублировать в базе логику.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280351
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3barrabas
тестирование это само сабой, для этого есть тестер и тестовый сервак на котором собственно и правится, эти пункты совпадают просто, я их и опустил.

А какая сущность отдается в тестирование? Что получает отдел тестирования от отдела разработки? Как для SQLя отмечаются релизы?

(Кстати, особенно это актуально для Oracle, где синтаксический анализатор не слишком качественный. У нас был опыт, когда вставленный лишний пробел (незначащий) приводил к принципиальному изменению запроса).
ничего клиент старый, просто проверить его поведение на измененной тестовой базе, после чего передается скрипт модификации БД тому у кого есть права изменять продакшин.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280364
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3
(Кстати, особенно это актуально для Oracle, где синтаксический анализатор не слишком качественный . У нас был опыт, когда вставленный лишний пробел (незначащий) приводил к принципиальному изменению запроса).
ой ёёёё
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280371
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3
(Кстати, особенно это актуально для Oracle, где синтаксический анализатор не слишком качественный . У нас был опыт, когда вставленный лишний пробел (незначащий) приводил к принципиальному изменению запроса).
просто план запроса перестраивался из-за изменения текста, а там уж статистика и настройки на тот момент играют роль
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280374
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
двухзвенный оракл> Oracle, похоже, по привычке считает, что все приложения - двухзвенные.
то-то у него cвоих аппликейшн серверов три штуки не считая всяких coherence и прочей middleware хрени
наверна специально всё скупил чтобы испортить и заставить все писать хранимки на pl/sql

Э, ты хочешь поговорить об этом?
Просто, увы, сейчас для компании, предоставляющей решения (а не отдельные компоненты), необходимо иметь сервер приложений. Вот Оракл и купил.
Но при этом возникает ощущение, что при разработки БД Oracle разработчики предполагают, что всякие трехзвенки - это от лукавого.
Ну, например, jdbc драйвер к Oracle - это жуткое глюкалово, работа с Oracle Stream не из БД - тоже, мягко говоря, не безглючна. Всевозможных операций типа select from insert (с нормальной поддержкой на уровне jdbc) до сих пор нет - ну и т.д.
И таких мелочей - довольно много, при активной разработке они заметны.
Зато функциональности для реализации бизнес-логики внутри БД - дофига и все больше и больше.

Да и только после покупки WebLogic можно считать, что у Оракл появился сервер приложений. Орион (в девичестве) - это совсем несерьезно :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280391
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3iscrafm
(MRP планирование в данном случае).

Ой. Так получилось, что MRP системы я писал...
И что, у вас все варианты расчета планов реализованы чистым DMLем?
А эвристики и различные алгоритмы прогнозирования для различных периодов, для различных товаров, для различных переделов у вас как реализуются? Тоже DMLем?
А граничные условия для оценочных функций для планов (обычно задаваемые пользователем в виде выражений) - тоже DMLем?
И линейное программирование вы тоже на DMLе делаете?
Не верю :)

чуть выше пример регулярных выражений на перле. А теперь просто представьте это в виде цепочки примитивов. Это я к тому, что если Вы знаете внутренности MRP, то наверняка помните, что он конечно большой, но состоит из цепочки таких примитивов. Рекомендую в материалах APIS этот вопрос посмотреть. Из моих настольных книг в 90-е - Ландватер. Этот учебник хорош тем, что не изобилует ненужной в данном вопросе математикой, а обучает тому же самому с точки зрения пошаговой логики, которая прекрасно ложится на реляционную модель. Переводы лучше не читать, путаница в терминах и половина материала покоцана.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280396
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3baracs И если клиент читает/меняет данные в БД через хранимые процедуры, это:
- во многих случаях, сильно ускоряет работу системы в целом,

Э, в каких? Ну, кроме серверного курсора по миллиону строк, который, нужен крайне редко (а лучше бы - никогда).
Когда приложение вытягивает из нескольких таблиц по нескольку сотен тыщ строк, чтобы внутри себя их перелопатить и выбрать из этой кучи пару десятков нужных.
DPH3baracs
- упрощает обеспечение целостности и непротиворечивости данных,

Как?
Выполняя необходимые проверки, когда они требуют обращения ко множеству таблиц, не "вылезая" с сервера.
DPH3baracs
- сильно упрощает сопровождение и развитие системы;

Ой, а тут - как? Как отдать в тестирование сборку промежуточного сервера - я знаю.
А вот как отдать в тестирование структуру БД....
Я уж молчу про невозможность рефакторинга в SQLе, неразвитость (это мягко сказано) IDE, убогость языковых средств и т.д.
А БД - это не модуль.
Она плавно развивается, как живой организм. ХП и представления, как раз и помогают смягчать последствия болезней роста.
Ох чую, на разных языках мы говорим
DPH3baracs
- про разделение доступа к объектам бд тут уже много писали...

Э, а что, у вас каждый пользователь системы имеет отдельную учетную запись в БД? И авторизуется прямо в БД?
А разновсякие есть Жизнь, она разнообразна...
DPH3baracs
Ну, тогда dbf-ники на новелловском сервере лучшая БД для вас
Ну, моя любимая БД - это IBM DB2. Самый развитый SQL и осознание потребностей трехзвенок :)
К сожалению, нет возможности осознать всю крутизну...
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280399
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasпросто план запроса перестраивался из-за изменения текста, а там уж статистика и настройки на тот момент играют роль

Э, я разве говорил про изменение плана?
История следующая: alter table, добавляется nullable колонка.
По идее все замечательно, операция практически мгновенная, реальные строки не меняются.
Но если поставить пробел перед закрывающей ";", то Oracle начинает таки реально добавлять пустое поле во все строки (вывесив table lock). Таблица была большой :(

Отослали багрепорт в Oracle, там признали ошибку.


Вообще, проблем именно с качеством синтаксического анализатора в Oracle хватает. Вплоть до рекомендаций не использовать ANSIшный формат join-ов из-за возможных ошибок (в 10ке, правда, такого уже нет, про 9ку - не знаю).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280404
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH3
Ну, моя любимая БД - это IBM DB2. Самый развитый SQL и осознание потребностей трехзвенок :)
Oracle, похоже, по привычке считает, что все приложения - двухзвенные.

все проще, в оракле pl/sql уже лет 20 развивается и одна конструкция pl/sql часто и густо заменяет десяток строк любого языка апп-сервера. а то, что фаны дб2 любят трехзвенки - не секрет. аналог pl/sql там только появился, а до этого код на сервере приходилось реализовывать дедовским способом типа чистого С или кабола. sql/pl в db2 практически никто не использует, оно и понятно, разбираться в новом языке, который имеет лишь базовые конструкции и тучу нюансов при переносе на другую платформу никому не хочется. действительно проще взять какой-нить хибер и ипать мозг.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280412
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracsЭ, а что, у вас каждый пользователь системы имеет отдельную учетную запись в БД? И авторизуется прямо в БД?
У нас да, БД доверяет авторизации ОСи.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280415
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm Рекомендую в материалах APIS этот вопрос посмотреть.
API C S конечно же имеется ввиду
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280429
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasbaracsЭ, а что, у вас каждый пользователь системы имеет отдельную учетную запись в БД? И авторизуется прямо в БД?
У нас да, БД доверяет авторизации ОСи.
на юзеров права и навешиваются.
На предыдущей работе были юзеры в таблице, и таблица с правами, а коннект под одним. По разному бывает. Сейчас, например, не нужно вставлять проверки кругом на право доступа к объекту.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280436
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasbaracsЭ, а что, у вас каждый пользователь системы имеет отдельную учетную запись в БД? И авторизуется прямо в БД?
У нас да, БД доверяет авторизации ОСи.
У нас тоже
То не я писал.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280442
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
Это я к тому, что если Вы знаете внутренности MRP, то наверняка помните, что он конечно большой, но состоит из цепочки таких примитивов. Рекомендую в материалах APIS этот вопрос посмотреть. Из моих настольных книг в 90-е - Ландватер. Этот учебник хорош тем, что не изобилует ненужной в данном вопросе математикой, а обучает тому же самому с точки зрения пошаговой логики, которая прекрасно ложится на реляционную модель. Переводы лучше не читать, путаница в терминах и половина материала покоцана.

Э, с пошаговой логикой там просто. Но там есть множественность выбора примитивов на каждом шаге. И для разных сущностей разные набор этих примитвов.
И для разных переделов.
И все это нужно динамически менять и выбирать.

И пользователи, увы, очень любят добавлять свои эвристики и доработки алгоритмов планирования - так что все равно приходится алгоритмику генерации планов (с оптимизациями) делать очень гибкой.
Это все делается, конечно - но чистым DML не обойтись, приходится использовать хранимки, T-SQL и т.п.

P.S. А еще есть кошмар скользящего среднего и оптимизации закупок с выбором окна расчета скольжения. В общем, на любом универсальном языке это бы писалось на порядок проще и работало бы за миллисекунды.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280462
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH3
И пользователи, увы, очень любят добавлять свои эвристики и доработки алгоритмов планирования - так что все равно приходится алгоритмику генерации планов (с оптимизациями) делать очень гибкой.
Это все делается, конечно - но чистым DML не обойтись, приходится использовать хранимки, T-SQL и т.п.

т.е. здесь у нас трехзвенка, здесь чуток хранимок, а это мы рыбу заворачивали
интересный подход.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280478
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
все проще, в оракле pl/sql уже лет 20 развивается и одна конструкция pl/sql часто и густо заменяет десяток строк любого языка апп-сервера. а то, что фаны дб2 любят трехзвенки - не секрет. аналог pl/sql там только появился, а до этого код на сервере приходилось реализовывать дедовским способом типа чистого С или кабола. sql/pl в db2 практически никто не использует, оно и понятно, разбираться в новом языке, который имеет лишь базовые конструкции и тучу нюансов при переносе на другую платформу никому не хочется. действительно проще взять какой-нить хибер и ипать мозг.

Ну, Yo!, это же не серьезно, сам же все знаешь.
И что хранимки на DB2 писались (давно) на C, потом еще на пяти языках (включая какой-то PLSQL подобный), сейчас вообще реализовали оракловый PL/SQL (приделанный по просьбе мигрирующих с Оракла).
Впрочем, идеология DB2, насколько я понимаю, изначально предполагала, что бизнес-логику пишут на подходящем языке, вставляя туда SQL-операторы. Может быть и вызывая этот код прямо в контексте сервера - это уж как кому надо :)

Кстати, а чем PL/SQL мощнее какой-нибудь Java? Приведи пример.

P.S. Хибернейт (как и прочие ORM) - это зло. По крайней мере при высокой нагрузке.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280488
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
т.е. здесь у нас трехзвенка, здесь чуток хранимок, а это мы рыбу заворачивали
интересный подход.

В том проекте, где я делал MRP - увы, никакой трехзвенки, обычный клиент-сервер.
Это было уже лет шесть назад, что-ли. Еще MS SQL 2000...
Пара сотен таблиц (только на один модуль), тысячи хранимок. Ностальгия, переходящая в кошмар.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280516
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3
Кстати, а чем PL/SQL мощнее какой-нибудь Java? Приведи пример.

в большинстве случаев кода меньше. ну и всякие bulk collect и forall, потом синтаксис проще (не нужно создавать объекты типа sqlcommand (или как он там уже) и биндить переменные) , а просто писать sql в процедуре и все.

Но многие вещи конечно удобнее сделать в яве или вообще нельзя в pl/sql.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280540
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabasbaracsЭ, а что, у вас каждый пользователь системы имеет отдельную учетную запись в БД? И авторизуется прямо в БД?
У нас да, БД доверяет авторизации ОСи.
Интранет?
Корпоративная система?
Небольшое число пользователей?

Просто у меня в последних проектах (что накладывает отпечаток, угу), число пользователей системы далеко за 100K...
Там все равно авторизацию на уровне БД не сделать.

Впрочем, в моих корпоративных системах тоже регулярно нужны были гибкие права, всяческие ограничения на колонки и отдельные строки по хитрым алгоритмам, так что средствами БД это не реализовать (ну, может быть через Oracle Vault, но слишком он дорого стоит).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280558
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Впрочем, в моих корпоративных системах тоже регулярно нужны были гибкие права, всяческие ограничения на колонки и отдельные строки по хитрым алгоритмам, так что средствами БД это не реализовать (ну, может быть через Oracle Vault, но слишком он дорого стоит).

М.б. просто не умеете?!
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280561
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3barrabasbaracsЭ, а что, у вас каждый пользователь системы имеет отдельную учетную запись в БД? И авторизуется прямо в БД?
У нас да, БД доверяет авторизации ОСи.
Интранет?
Корпоративная система?
Небольшое число пользователей?

Просто у меня в последних проектах (что накладывает отпечаток, угу), число пользователей системы далеко за 100K...
Там все равно авторизацию на уровне БД не сделать.

Впрочем, в моих корпоративных системах тоже регулярно нужны были гибкие права, всяческие ограничения на колонки и отдельные строки по хитрым алгоритмам, так что средствами БД это не реализовать (ну, может быть через Oracle Vault, но слишком он дорого стоит).
ясно что не инет,
Сайт - один юзер, конечно.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280586
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas
в большинстве случаев кода меньше. ну и всякие bulk collect и forall,

Ну, тут бы я поспорил, сильно зависит от языка и задачи. Например, наследование и лямбды позволяют написать очень компактные алгоритмы :)


потом синтаксис проще (не нужно создавать объекты типа sqlcommand (или как он там уже) и биндить переменные) , а просто писать sql в процедуре и все.

Тут конечно :) Хотя если отделить DAO от BL в коде, то особо сложности синтаксиса не видишь.
Ну и если использовать всяческий DB2 embedded sql, то там запросы тоже пишутся прямо в коде и биндинг не нужен(а потом работает препроцессор). Правда, я таким не пользовался :)

А вообще, у меня как-то в последнее время число запросов к БД (различных) все сокращается и сокращается. Даже если сложная логика, сложные данные, разнообразная обработка - удается обходиться очень компактным DAO layer. И вряд ли это следствие задач - задачи то довольно разные (правда, почти все с приличной нагрузкой).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280624
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinDPH3Впрочем, в моих корпоративных системах тоже регулярно нужны были гибкие права, всяческие ограничения на колонки и отдельные строки по хитрым алгоритмам, так что средствами БД это не реализовать (ну, может быть через Oracle Vault, но слишком он дорого стоит).

М.б. просто не умеете?!

О, а расскажите, как.
Обычная задача - дерево объектов. Операции модификации (для простоты) затрагивает только один объект. Операции просмотра - поддеревья, не положенное видеть нельзя.
Права пользователю выдаются на вершины, права наследуются и перекрываются. Права зависят от времени суток и дня недели (по времени пользователя, а не сервера - они в разных временных поясах, да и пояса эти разные). Расписание меняется достаточно часто (до двух раз в день - легко). Но при этом по конкретной команде конкретному пользователю на короткое время могут давать не положенные ему права :)
Объектов - сравнительно мало, где-то сотня тысяч.
Пользователей - пара десятков, совсем несерьезно.
Права - фактически индивидуальны.
Схема несколько упрощена (там еще некоторые права выдавались автоматом при особых состояниях системы, например, по рекомендации модуля управления рисками).

БД - ну, например, Oracle 10.1
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280625
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3А еще есть кошмар скользящего среднего и оптимизации закупок с выбором окна расчета скольжения. В общем, на любом универсальном языке это бы писалось на порядок проще и работало бы за миллисекунды.
работало бы, писалось бы...
а в чем разница между 1с и 1мс при подобном планировании? Мы же не MES реального времени говорим. Конечно, некоторые фрагменты среднего слоя используют и тот же T-SQL, если требуется.
например:
старый MS SQL2000
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
BEGIN TRAN

DECLARE
        @ITEMNO VARCHAR( 24 ) -- код позиции
        ,@CITEM VARCHAR( 24 ) -- текущая позиция
        ,@D DATETIME -- дата периода
        ,@OH INT -- начальный остаток
        ,@OHC INT -- расчетный начальный остаток
        ,@GR INT -- плановая реализация
        ,@TR INT -- количество товара в пути
        ,@SR INT -- ожидаемый приход по утвержденным заказам
        ,@RU INT -- потребность
        ,@PA INT -- прогнозный остаток на конец периода
        ,@RO INT -- количество товара в плановом заказе
        ,@LT INT -- срок доставки
        ,@LS INT -- размер (кратность) партии поставки
        ,@ERRCODE INT -- код ошибки
        ,@SST FLOAT -- страховой запас (%)


DECLARE C CURSOR FOR

        SELECT TOP  100  PERCENT ITEMNO,PDATE,OH,GR,TR,SR,SST,LT,LS,RU
        FROM MRP01
        ORDER BY ITEMNO,PDATE

 OPEN C

    FETCH NEXT FROM C INTO @ITEMNO,@D,@OH,@GR,@SR,@TR,@SST,@LT,@LS,@RU
    SET @CITEM = @ITEMNO
    SET @OHC = @OH

    WHILE @@FETCH_STATUS =  0 
    BEGIN

        SET @ERRCODE =  0 

        --1 Расчет прогнозного остатка
        SET @PA = @OHC + @SR+@TR+@RU - @GR
        SET @RU =  0 

        -- 2 Если прогнозный остаток менее страхового запаса, то вычисление планового заказа и запись его в план закупок
        IF @PA < @GR*@SST/ 100 
        BEGIN
                IF @LS =  0  SET @LS =  1 
                IF @LS =  1 
                BEGIN
                        SET @RU =  (@GR*@SST/ 100 ) - @PA
                        SET @RO = (@GR*@SST/ 100 ) - @PA
                END ELSE
                BEGIN
                        SET @RU =  (ROUND(((@GR*@SST/ 100 ) - @PA)/@LS, 0 , 1 ) +  1 ) * @LS
                        SET @RO = (ROUND(((@GR*@SST/ 100 ) - @PA)/@LS, 0 , 1 ) +  1 ) * @LS
                END
                SET @PA = @OHC + @SR + @TR + @RO - @GR

                INSERT INTO MRP02 (ID,ITEMNO,ODATE,RDATE,UM,AM,TRAM,ST) VALUES (NEWID(),@ITEMNO,@D-@LT,@D,@RO, 0 , 0 , 0 )
                IF @D-@LT < GETDATE()
                        SET @ERRCODE =  1  -- Просроченный заказ
        END

        -- 3 Обновление остатка, прогнозного остатка и потребностей в сводной таблице
        UPDATE MRP01 SET
            OH = @OHC
            ,PA = @PA
            ,RU = @RU
            ,ERRCODE = @ERRCODE
        WHERE ITEMNO = @ITEMNO AND PDATE = @D

        SET @OHC = @PA

        FETCH NEXT FROM C INTO @ITEMNO,@D,@OH,@GR,@SR,@TR,@SST,@LT,@LS,@RU

        IF @ITEMNO <> @CITEM
        BEGIN
            -- Переход к следующей категории товара
                SET @CITEM = @ITEMNO
                SET @OHC = @OH
        END -- @ITEMNO <> @CITEM

    END -- WHILE

    CLOSE C
    DEALLOCATE C


IF @@ERROR <>  0 
    ROLLBACK TRAN
ELSE
    COMMIT TRAN
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280627
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH3
И что хранимки на DB2 писались (давно) на C, потом еще на пяти языках
уже перетиралось тут не раз, на С писалось у всех, но все постепенно перешли на следующую ступень - на языки 4GL. и только дб2 пропустил революцию и все кропал по старинке, в терминах оракла это завется технологией препроцессоров, говорят в оракле вымершая в 80-х годах прошлого столетия.
поняв, что на дедовских технологиях далеко не уедешь ибм выкатил sql/pl где-то лет 10 назад, но в то время как раз была мода 3-tier и подавляющее большинство действительно так его и завет "какой-то PLSQL подобный" ...

DPH3
Впрочем, идеология DB2, насколько я понимаю, изначально предполагала, что бизнес-логику пишут на подходящем языке, вставляя туда SQL-операторы. Может быть и вызывая этот код прямо в контексте сервера - это уж как кому надо :)

да не умеет дб2 ту же жаву в контексте сервера пускать, только как fenced. уже два раза обсасывали.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280693
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Объектов - сравнительно мало, где-то сотня тысяч.
Пользователей - пара десятков, совсем несерьезно.


Это имеет принципиальное значение?! К примеру:

Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT
  SUM(rows) AS rows
FROM
  sys.partitions
WHERE
  object_id = OBJECT_ID('dbo.Object') AND
  index_id IN ( 0 ,  1 )

Код: plaintext
1.
2.
rows
--------------------
179 418 180


Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT
  SUM(rows) AS rows
FROM
  sys.partitions
WHERE
  object_id = OBJECT_ID('dbo.AppUnit') AND
  index_id IN ( 0 ,  1 )

Код: plaintext
1.
2.
rows
--------------------
900

DPH3Права пользователю выдаются на вершины, права наследуются и перекрываются. Права зависят от времени суток и дня недели (по времени пользователя, а не сервера - они в разных временных поясах, да и пояса эти разные). Расписание меняется достаточно часто (до двух раз в день - легко). Но при этом по конкретной команде конкретному пользователю на короткое время могут давать не положенные ему права :)

И... Какие, собственно, у Вас трудности, реализовать ACL средставами реляционной СУБД?!

DPH3БД - ну, например, Oracle 10.1

Ну, как Вы поняли, у меня все это на MS SQL.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280699
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
работало бы, писалось бы...
а в чем разница между 1с и 1мс при подобном планировании? Мы же не MES реального времени говорим. Конечно, некоторые фрагменты среднего слоя используют и тот же T-SQL, если требуется.
например:

Ну, у меня построение цепочки планов для компании на год на основании прогноза занимало до двух часов. А уточнение прогноза закупок - да, в 10 секунд помещался, хотя и повозился.
Кстати, то же на MS SQL 2000 :)

Там основные проблемы - в том, что план закупок еще требовал накладывания ограничений (по объему склада, по зависимости цены закупки от объема, по выбору поставщика среди альтернативных, по учету особенностей данного поставщика (разные возможные графики, разный разрыв между заказом и поставкой, разные цены, разные скидки, разные приоритеты, разные кванты доставки). И все это оптимизировать по эвристикам или перебором.

Ну и требовалось, например, приделать к этому игру в "что, если" (если мы сейчас закажем то-то по особой скидочной цене, то как изменится общий бюджет закупок по товарному направлению) - а тут уже требовалась производительность. А, еще и перемещения между складами филиалов.

И еще прогноз потребления считался разнообразно (разные алгоритмы вычисления среднего (скользящие с разными окнами, меняющиеся окна, смена алгоритма расчета на лету).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280708
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Там основные проблемы - в том, что план закупок еще требовал накладывания ограничений (по объему склада, по зависимости цены закупки от объема, по выбору поставщика среди альтернативных, по учету особенностей данного поставщика (разные возможные графики, разный разрыв между заказом и поставкой, разные цены, разные скидки, разные приоритеты, разные кванты доставки). И все это оптимизировать по эвристикам или перебором.

Ну и требовалось, например, приделать к этому игру в "что, если" (если мы сейчас закажем то-то по особой скидочной цене, то как изменится общий бюджет закупок по товарному направлению) - а тут уже требовалась производительность. А, еще и перемещения между складами филиалов.

И еще прогноз потребления считался разнообразно (разные алгоритмы вычисления среднего (скользящие с разными окнами, меняющиеся окна, смена алгоритма расчета на лету).

Вы кого тут хотите этим удивить?!
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280718
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin
И... Какие, собственно, у Вас трудности, реализовать ACL средствами реляционной СУБД?!

Кодом на SQL/T-SQL - практически никаких (ну, с деревьями чуть помучаться, но делал и не раз).
Средствами администрирования БД и выставлением грантов на хранимые процедуры - боюсь, что никак.

Тут-то речь шла о том, что использование хранимых процедур позволяет упростить контроль прав доступа. Иногда (если можно просто отгрантовать роли на уровне администратора БД) - это так.
Но в моей практике встроенных возможностей не хватает, приходится писать код для авторизации. А тут уже разницы между средним уровнем и T-SQL не наблюдается (по крайней мере, в пользу TSQL).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280725
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklin
Вы кого тут хотите этим удивить?!
Да никого :) Просто как-то сомневаюсь, что это удобнее и быстрее делать на T-SQL, нежели чем на java :)
По крайней мере, мне - точно не удобнее....
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280731
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Кодом на SQL/T-SQL - практически никаких (ну, с деревьями чуть помучаться, но делал и не раз).

Все прекрасно работает на "голом" транзакте.

DPH3Но в моей практике встроенных возможностей не хватает, приходится писать код для авторизации.

Да, приходится, но я проектирую необходимую модель и пишу его на T-SQL.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280734
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Просто как-то сомневаюсь , что это удобнее и быстрее делать на T-SQL, нежели чем на java :)
По крайней мере, мне - точно не удобнее ....

Вот. Золотые слова.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280735
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!sql/pl в db2 практически никто не использует, оно и понятно, разбираться в новом языке, который имеет лишь базовые конструкции и тучу нюансов при переносе на другую платформу никому не хочется. действительно проще взять какой-нить хибер и ипать мозг.Ой! То есть меня, например, практически не существует? Категорически не согласен!
Появился SQL PL в 7-й, кажется, версии, то есть он не намного моложе Java, к примеру. Или молодую Джаву тоже использовать не надо? ;)
По поводу "тучи нюансов при переносе на другую платформу" хотелось бы подробнее - я как-то всегда считал PL SQL единым для DB2 LUW, т.е. для практически всех Oracle-совместимых платформ (ну, кроме "совсем уже устаревших"(c) мейнфреймов и iSeries).
Yo.!да не умеет дб2 ту же жаву в контексте сервера пускать, только как fenced. уже два раза обсасывали.Ну да, теряем на переключении контекста. Зато и не лицензируем ресурсы, используемые Java. Кстати, где-то там же обсасывали, что PL/SQL тоже выполняется отдельной вирт. машиной, не зря же native-компиляцию для него придумали. Она, конечно, лучше "вписана" в СУБД, чем Java, но спасает ли это от переключения контекстов?
Кстати, о "лишь базовых конструкциях" - в последнем DB2 9.7 SQL PL в части обработки данных в БД функционально ничем не хуже PL/SQL. А остальное, ИМХО, всяко лучше на Java писать.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280736
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH3
Но в моей практике встроенных возможностей не хватает, приходится писать код для авторизации. А тут уже разницы между средним уровнем и T-SQL не наблюдается (по крайней мере, в пользу TSQL).
ну если у мсскл не наблюдается понаблюдайте у оракла - oracle label security (Oracle Vault слегка из другой оперы). с деревьями же даже мсскл научился работать в мсскл2005.

ЗЫ. oracle 10.1 снят с супорта ...
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280743
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
barrabasпотом синтаксис проще (не нужно создавать объекты типа sqlcommand (или как он там уже) и биндить переменные) , а просто писать sql в процедуре и все.Почитайте про SQLJ.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280766
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
уже перетиралось тут не раз, на С писалось у всех, но все постепенно перешли на следующую ступень - на языки 4GL. и только дб2 пропустил революцию и все кропал по старинке, в терминах оракла это завется технологией препроцессоров, говорят в оракле вымершая в 80-х годах прошлого столетия. поняв, что на дедовских технологиях далеко не уедешь ибм выкатил sql/pl где-то лет 10 назад, но в то время как раз была мода 3-tier и подавляющее большинство действительно так его и завет "какой-то PLSQL подобный" ...

Угу. Только Oracle так и продолжает рассчитывать на 4GL, а мода то убежала в сторону 3-tier, где нужно уже не это, а нормальные драйвера :) Про что я, собственно, и говорю.
Правда, чем 4GL лучше, нежели универсальные managed языки - мне тоже не понятно. Чем plain C - более менее понимаю, да.


подавляющее большинство действительно так его и завет "какой-то PLSQL подобный" ...

Если я правильно читаю новости, то в 9.5 включили именно поддержку синтаксиса PL-SQL.
Т.е. запуск оракловских хранимок без переписывания, прямо как есть.
(Последствия такого запуска - за свой счет, как водится).


да не умеет дб2 ту же жаву в контексте сервера пускать, только как fenced. уже два раза обсасывали.
Там обсуждение так быстро сваливалось в флейм, что я так и не понял, до чего там договорились :)
Как я понял, в любом случае разницы между sql/pl и java - нет (для DB2).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280775
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracsЛПbaracs
И если клиент читает/меняет данные в БД через хранимые процедуры, это:
- во многих случаях, сильно ускоряет работу системы в целом,
- упрощает обеспечение целостности и непротиворечивости данных,
- сильно упрощает сопровождение и развитие системы;
- про разделение доступа к объектам бд тут уже много писали...
В случае, если у СУБД ровно один клиент (а это именно случай многозвенных приложений) - Ваше высказывание неверно по всем пунктам (по некоторым пунктам оно неверно и в случае многих клиентов)
А поподробнее?
А чего подробнее то?

Про скорость работы переобсосано миллион раз. Использование хранимок может дать как увеличение скорости работы (за счет отсутствия необходимости компиляции плана выполнения), так и уменьшение скорости (за счет того, что этот самый гвздиками приколоченый план не учитывает изменение входных параметров и изменившуюся статистику низлежащих данных).
Однозначного выигрыша от использования ХП нет ни для случая одного клиента ака средний слой, ни для многих клиентов ака классическая двузвенка.

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

Аргумент "упрощение сопровождения и развития" - для одного клиента неверно. Для многих клиентов - верно (проще сопровождать код на одном сервере, чем на многих клиентов), а для одного - нет (что на одном сервере код сопровождать, что на одном клиенте).

Те же самые соображения в ответ на аргумент "разделение доступа к объектам". Что рулить доступом к объектам на одном единственном сервере, что рулить доступом к объектам на одном единственном клиенте - нет разницы.
Вернее, разница есть, и она не в пользу хранимок.
Рулить доступом к объектам на клиенте я могу любым удобным мне способом. Любым. Удобным. Мне.
Чего нельзя сказать про управление доступом к хранимкам и прочим объектам на сервере БД.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280779
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnПоявился SQL PL в 7-й, кажется, версии, то есть он не намного моложе Java, к примеру. Или молодую Джаву тоже использовать не надо? ;)
дык, только вот жава - мейнстрим, а об существовании sql/pl и половина db2 кодеров не подозревает.


Favn PL SQL единым для DB2 LUW

только вот сам luw не единый, а до v9 и для luw нужно было С компилятор для sql/pl таскать.

FavnОна, конечно, лучше "вписана" в СУБД, чем Java, но спасает ли это от переключения контекстов?
скорострельность pl/sql далеко не единственная, а главное не главная фича :)

FavnКстати, о "лишь базовых конструкциях" - в последнем DB2 9.7 SQL PL в части обработки данных в БД функционально ничем не хуже PL/SQL. А остальное, ИМХО, всяко лучше на Java писать.
ну ерунду не говорите, там нет базовых конструкций. нет аналога пакетам, нет реф-курсоров, нет и трети функий из базовых пакетов оракла. посмотрите чего может эмулировать db2 9.7 в плане pl/sql, он же и половины конструкций не переваривает.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280785
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
ну если у мсскл не наблюдается понаблюдайте у оракла - oracle label security (Oracle Vault слегка из другой оперы). с деревьями же даже мсскл научился работать в мсскл2005.

Э, с деревьями я и в MS SQL 2000 спокойно справлялся, делов-то.
А label security читал, нужной гибкости все равно не получается (по датам). Да и денег, насколько я помню, стоит :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280792
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH3
Угу. Только Oracle так и продолжает рассчитывать на 4GL, а мода то убежала в сторону 3-tier, где нужно уже не это, а нормальные драйвера :) Про что я, собственно, и говорю.
субд нужна нормальная, а не архаизм с драйверами ;)

DPH3Правда, чем 4GL лучше, нежели универсальные managed языки - мне тоже не понятно. Чем plain C - более менее понимаю, да.
дорого сопровождать. managed языки оторваны от субд, 4GL же может отслеживать поломаные DDLом процедуры, ну и ресурсы/скорострельность интереснее гораздо.

DPH3Как я понял, в любом случае разницы между sql/pl и java - нет (для DB2).
есть sql/pl работает как not fenced, т.е. в ядре db2, вне адресного пространства, как и любой пхп например. просто для пхп нет препроцессора, а для жабы выкатили.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280797
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"т.е. в ядре db2, вне адресного пространства"
следует читать как
т.е. в ядре db2, жаба же работает вне адресного пространства
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280806
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH3
А label security читал, нужной гибкости все равно не получается (по датам). Да и денег, насколько я помню, стоит :)
с датами то чего проще ? параметризованый вью - дешевого и сердито
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280920
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Рулить доступом к объектам на клиенте я могу любым удобным мне способом. Любым. Удобным. Мне.
Чего нельзя сказать про управление доступом к хранимкам и прочим объектам на сервере БД.
А можно более подробно, что в вашем понимании есть "клиент" и что есть "рулить доступом"?
Потому как я не понимаю - каким это образом можно "рулить доступом с клиента".
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280930
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
А можно более подробно, что в вашем понимании есть "клиент"
В контексте предыдущего обсуждения "клиент БД" = "средний слой многозвенки"
Доступ, соответственно, к объектам этого же самого среднего слоя (до объектов БД конечного пользователя никто и не допустит в обход среднего слоя).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280931
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПОбеспечение целостности и непротиворечивости данных - так оно вообще не с помощью ХП делаться должно. Нормализация, констрейнты - да, упрощает обеспечение целостности и непротиворечивости. Обеспечивать целостность хранимками - нет, не упрощает, только усложняет.

Если Вы про Domain, Entity и прочая, то да, это делается декларативным способом, но существует еще ограничения бизнес-логики, например, клиент не может оформить заказ на условиях предоплаты на сумму более 5 000 руб, если у него еще нет выполненных заказов на условиях предоплаты на общую сумму не менее 25 000 руб.

ЛППричем если обеспечивать целостность SQL-кодом, то нет разницы, где этот код расположен , в хранимке на сервере, или в теле программы в одном единственном клиенте (ака средний слой).

Есть, и принципиальная. Система, в которой прямой доступ к таблицам закрыт, а вся работа организована через вьюхи и хп является самодостаточно устойчивой (про права админа не будем, ибо против лома нет приема). А в Вашей схеме, если код, обеспечивающий целостность данных, расположен в одном клиенте , то другой клиент , не содержащий такого кода, подключившись к бд может привести ее в неконсистентное состояние. И без разницы, что это за клиент - апп.сервер в трехзвенке или классической приложение в классической двузвенке.

ЛПТе же самые соображения в ответ на аргумент "разделение доступа к объектам". Что рулить доступом к объектам на одном единственном сервере, что рулить доступом к объектам на одном единственном клиенте - нет разницы.

А почему он у Вас "один единственный"?! Чем это гарантируется, или, наконец, что может помешать подключиться к базе другим клиентом?!


ЛПВернее, разница есть, и она не в пользу хранимок.

Заблуждаетесь, IMHO.

ЛПРулить доступом к объектам на клиенте я могу любым удобным мне способом . Любым. Удобным. Мне.

Опять, 25. Но это не значит, что не любимый и не удобный лично Вам способ не существует и дает целый ряд преимуществ.

ЛПЧего нельзя сказать про управление доступом к хранимкам и прочим объектам на сервере БД.

Безусловно, этого нельзя сказать, если не знаешь, как это делается. ;) Ибо реализация ACL (включая row & cell level security) на стороне реляционной СУБД делается не просто предоставлением (или не предоставление) доступа к тому или иному модулю с кодом в бд, а чуть сложнее.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280962
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 pkarklin
Если Вы про Domain, Entity и прочая, то да, это делается декларативным способом, но существует еще ограничения бизнес-логики, например, клиент не может оформить заказ на условиях предоплаты на сумму более 5 000 руб, если у него еще нет выполненных заказов на условиях предоплаты на общую сумму не менее 25 000 руб.
Не спорю.
И такие ограничения бизнес-логики можно придумать, что реализовывать их на T-SQL - весьма тоскливое занятие. Одна из причин для "посмотреть в сторону многозвенок". Или какого-нибудь унылого говна с офигенно развитым внедренным в СУБД супер-мега-пл-т-эскюэль

Есть, и принципиальная. Система, в которой прямой доступ к таблицам закрыт, а вся работа организована через вьюхи и хп является самодостаточно устойчивой (про права админа не будем, ибо против лома нет приема). А в Вашей схеме, если код, обеспечивающий целостность данных, расположен в одном клиенте , то другой клиент , не содержащий такого кода, подключившись к бд может привести ее в неконсистентное состояние.
Товарисч pkarklin, Вы вообще как, внимательно сообщения читаете, прежде чем на них отвечать берётесь?
Какой такой другой клиент, если русским по белому и неоднократно сказано, что клиент для БД - один единственный?

А почему он у Вас "один единственный"?!
По определению. По начальным данным диалога с baracs. Потому что других клиентов пристрелили из ружья.

Чем это гарантируется, или, наконец, что может помешать подключиться к базе другим клиентом?!
Вам подсказать способы, как не дать другим подключиться, или сами додумаетесь?
Думаю, что сами справитесь. Я в Вас верю.

Опять, 25. Но это не значит, что не любимый и не удобный лично Вам способ не существует и дает целый ряд преимуществ.
То, что существует удобный лично мне способ - вовсе не означает, что не удобный мне способ не существует. Я нигде такого и не говорил. В чем Вы меня пытались убедить - не понял.
Неудобный (не самый удобный для меня) способ - разумеется существует. Для данной конкретной СУБД существующий неудобный способ может быть единственным. Для кого-то другого (для каких-то других задач) этот способ может быть вполне хорошим. А мне то до этого какое дело, если этот кому-то для чего-то удобный способ - не подходит мне и для конкретной задачи?

Безусловно, этого нельзя сказать, если не знаешь, как это делается. ;) Ибо реализация ACL (включая row & cell level security) на стороне реляционной СУБД делается не просто предоставлением (или не предоставление) доступа к тому или иному модулю с кодом в бд, а чуть сложнее.
Это уже детали, к чему именно и какую именно секьюрити надо обеспечивать. В трехзвенке, BTW, эти детали вообще мало волнуют мозг. Чего не скажешь об.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280965
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как ДБА, скажу.
Любителей размазывать sql код по приложению - надо стрелять грязным тапком.

-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280983
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyКак ДБА, скажу.
Любителей размазывать sql код по приложению - надо стрелять грязным тапком.

Правильно.
Любителей размазывать логику по приложени ям (кусок кода в СУБД, кусок кода где-то еще, в WCF-сервисе каком-нибудь) - стрелять двумя грязными тапками, и контрольный выстрел нестиранными трусами.

Только не думайте, что приложение перестает быть приложением только от того, что крутится в том же процессе, что и MS SQL Server (к примеру)
:)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280990
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП,

уточню.
Любителей выносить код sql за пределы SP - стрелять мокрыми тряпками.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36280992
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyЛП,

уточню.
Любителей выносить код sql за пределы SP - стрелять мокрыми тряпками.
Типо хп - эт не приложение вовсе, а так, насрано.
Понятно :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281000
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПИ такие ограничения бизнес-логики можно придумать, что реализовывать их на T-SQL - весьма тоскливое занятие.

Вы правы, какие только ограничение не придумают бизнес овнеры. И они так легко реализуется реляционными способами с реляционно же хранящимися данными. А то как насмотришься, как некоторые на апп. сервере и джоинить пытаются и прочая, получив плоские наборы с сервера СУБД, дабы реализовать ТАМ ограничения целостности или секьюрность, то волосы дыбом встают. Зачем им, спрашивается, клиент-серверная СУБД?!

ЛПОдна из причин для "посмотреть в сторону многозвенок".

Чур, меня, чур...

ЛПТоварисч pkarklin, Вы вообще как, внимательно сообщения читаете, прежде чем на них отвечать берётесь?
Какой такой другой клиент, если русским по белому и неоднократно сказано, что клиент для БД - один единственный?

По определению. По начальным данным диалога с baracs. Потому что других клиентов пристрелили из ружья.

Не надо меня возить мордой по столу по топику. Это не Вы ли продекларировали:

ЛПВ случае, если у СУБД ровно один клиент (а это именно случай многозвенных приложений) - Ваше высказывание неверно по всем пунктам ( по некоторым пунктам оно неверно и в случае многих клиентов )

Будем снова перетирать про быстродействие и удобство сопровождения, раз уж Вы упомянули только про некоторые пункты?!

ЛПВам подсказать способы, как не дать другим подключиться, или сами додумаетесь?
Думаю, что сами справитесь. Я в Вас верю.

Я так же верю, что и Вы найдете способ подключиться в обход "одного клиента".

ЛПТо, что существует удобный лично мне способ - вовсе не означает, что не удобный мне способ не существует. Я нигде такого и не говорил. В чем Вы меня пытались убедить - не понял.

Вас?! Да упаси Господи Вас в чем то убеждать. Влез в этот тред тока с целью предостеречь неокрепшие умы читающих его от апологетов "логики на клиенте" (фокспро\аксесс форева!!!).

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

Простите, кто на ком стоял?! ((с) п. Преображенский) Т.е. что Вам не подходит и для какой, собственно, задачи?

ЛПЭто уже детали, к чему именно и какую именно секьюрити надо обеспечивать. В трехзвенке, BTW, эти детали вообще мало волнуют мозг. Чего не скажешь об.

Это пять!!! "Детали" идут лесом!!! Трехзвенка все делает без "деталей", т.е. без мозга. Видел я результаты такой безмозговой деятельности.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281006
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛППравильно.
Любителей размазывать логику по приложени ям ( кусок кода в СУБД, кусок кода где-то еще, в WCF-сервисе каком-нибудь ) - стрелять двумя грязными тапками, и контрольный выстрел нестиранными трусами.

Гм... Вы так делаете?! Кмк, мы тут перетирали про код на клиенте или в хп, а не и .

ЛПТолько не думайте, что приложение перестает быть приложением только от того, что крутится в том же процессе, что и MS SQL Server (к примеру)
:)

Поддержу Вас в Вашем демогагическом начинании, а программа на ASM - это приложение для процессора, а процессор - приложение для материнской платы и т.д. и т.п. Самим Вам не смешно?!
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281009
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПlockyЛП,

уточню.
Любителей выносить код sql за пределы SP - стрелять мокрыми тряпками.
Типо хп - эт не приложение вовсе, а так, насрано.
Понятно :)
Нет, это типа мне очень не нравится рыскать по стопиццоттысяч разным шарповским модулям, пытаясь выяснить где какой sql код есть, что он делает, где возможны проблемы, где точки входа и модификации и т.д.
В то же время в случае использования только SP я имею проблемы только с dsql
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281018
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 pkarklin
А то как насмотришься, как некоторые на апп. сервере и джоинить пытаются и прочая, получив плоские наборы с сервера СУБД, дабы реализовать ТАМ ограничения целостности или секьюрность, то волосы дыбом встают.
Угу. А как посмотришь на курсорные трактора внутре хранимок - что дыбом должно вставать?
Оно канешн на каком-нибудь расширении SQL, и аж внутре хранимки лежит, и за это этому унылому говну можно простить его внешний вид :)

Не надо меня возить мордой по столу по топику.
Надо. Если Вы с первого раза не понимаете, то как еще.

Это не Вы ли продекларировали:
Я. Какое-то слово непонятно?

Будем снова перетирать про быстродействие и удобство сопровождения, раз уж Вы упомянули только про некоторые пункты?!
Перетирать идите мух с котлетами в мясорубке.
Я ясно высказался, что высказывание barack неверно по всем пунктам в случае одного клиента, и по некоторым - в случае многих клиентов.
Яснее - не умею.
Пусть кто-нибудь другой попробует объяснить Вам разницу между "один" и "много", и между "все" и "некоторые".

Влез в этот тред тока с целью предостеречь неокрепшие умы читающих его от апологетов "логики на клиенте" (фокспро\аксесс форева!!!).
Вы дурак, простите?
Где Вы увидели фокспро/аксес?
Вам что-то приглючилось, и Вы решили предостеречь неокрепшие умы от Ваших собственных глюков?
Когда протрезвеете - приходите, может удастся пообщаться.

Вы так делаете?! Кмк, мы тут перетирали про код на клиенте или в хп, а не и.
Нет. Так делают (собираются делать) некоторые другие участники этого обсуждения.

Поддержу Вас в Вашем демогагическом начинании, а программа на ASM - это приложение для процессора, а процессор - приложение для материнской платы и т.д. и т.п. Самим Вам не смешно?!
Не, не смешно.
За размазывание логики про приложению на АСМе - тоже стрелять тапком.
Я серьезен как никогда. Демагогии - ноль.
Когда-нибудь поймете. Как протрезвеете.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281022
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ЛП.

Думаю, что в этом вопросе, Вам следует идти до конца.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281027
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПНет. Так делают (собираются делать) некоторые другие участники этого обсуждения.
.
ну ну, по моему кто то никак не поймет, что логику работу с данными размазывать никто не собирается, зачем?, это как раз произойдет если вынести её на среднее звено, а тут окажется что нужен триггер или джоб. А если есть задачи которые к базе отношения не имеют и к клиенту тоже, то где же ей находится как не на другом слое, раз в в базе и на клиенте ей делать нечего и это не повод выносить туда всё остальное, т.к. с базой может работать еще и другой клиент или сервис
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281045
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 barrabas
это как раз произойдет если вынести её на среднее звено, а тут окажется что нужен триггер или джоб.
Ума не приложу, зачем может понадобиться триггер, если логика обработки данных вынесена на средний слой :)
Ну да и ладно.

А если есть задачи которые к базе отношения не имеют и к клиенту тоже
О, это вообще не сюда - что-то ни к чему не относящееся. Ему ни хранимки не помогут, ни отсутствие хранимок не помешает. Программирование фотошопа этажом выше.

раз в в базе и на клиенте ей делать нечего и это не повод
Это не повод называть это нечто средним слоем.
Не называйте это "ни к чему не относящееся" средним слоем - и ни малейших возражений не получите на свои высказывания. Правда невелика будет и ценность этих высказываний в контексте обсуждения "хранимок в трехзвенке"
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281075
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП2 barrabas
это как раз произойдет если вынести её на среднее звено, а тут окажется что нужен триггер или джоб.
Ума не приложу, зачем может понадобиться триггер, если логика обработки данных вынесена на средний слой :)
Ну да и ладно.

А если есть задачи которые к базе отношения не имеют и к клиенту тоже
О, это вообще не сюда - что-то ни к чему не относящееся. Ему ни хранимки не помогут, ни отсутствие хранимок не помешает. Программирование фотошопа этажом выше.

раз в в базе и на клиенте ей делать нечего и это не повод
Это не повод называть это нечто средним слоем.
Не называйте это "ни к чему не относящееся" средним слоем - и ни малейших возражений не получите на свои высказывания. Правда невелика будет и ценность этих высказываний в контексте обсуждения "хранимок в трехзвенке"
клиентское приложение коннектится к сервису, ни о базе и о чем другом ему знать не нужно, сервис, в свою очередь, откликаясь на запросы клиента, стучится к нескольким базам (ну скажем для сверки данных в разных ИС) и выдает что нужно клиенту, тут же нужно разослать отчеты клиентам, данные получаем с СУБД, а формируются файлы нужного формата на среднем слое - сервисе, каждый занят своим делом, никакой проблемы с размазываем логики, ни какой проблемы для ДБА.
Я вижу смысл в трехзвенке если не нужно "светить" базу в инете, при работе с несколькими базами, но просто так чтобы было, типа чтобы ХП не писать, а писать классы в еще одном проекте, не вижу смысла.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281089
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyНет, это типа мне очень не нравится рыскать по стопиццоттысяч разным шарповским модулям, пытаясь выяснить где какой sql код есть, что он делает, где возможны проблемы, где точки входа и модификации и т.д.
В то же время в случае использования только SP я имею проблемы только с dsqlВ имеете дело только с dsql и "рыскаете по стопиццоттысяч разным шарповским модулям пытаясь выснить где какая процедурка вызывается, зачем и где возможны проблемы..." :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281099
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 barrabas
клиентское приложение коннектится к сервису, ни о базе и о чем другом ему знать не нужно, сервис, в свою очередь, откликаясь на запросы клиента, стучится к нескольким базам
У меня Windows стучится к Windows Server Update Services, и ничего винда не знает про то,что WSUS стучится в MS SQL Server, чего-то оттуда выдирает, отсылает, умирает.
На Ваш взгляд это - трехзвенка? Если да, то протоколируем разногласие.

Я вижу смысл в трехзвенке если не нужно "светить" базу в инете
Чтобы не светить базу в интернете, я вижу смысл в фаерволе.
Протоколируем разногласие.

при работе с несколькими базами
Работать с разными базами под разными СУБД на разных физических серверах - я вижу смысл через linked servers (для ms sql server), или аналогичными способами в других СУБД (ежели это не огнептиц).
Смысла городить трехзвенку только для одновременной работы с разными базами - я не вижу.
Протоколируем разногласие.

но просто так чтобы было, типа чтобы ХП не писать, а писать классы в еще одном проекте, не вижу смысла.
Писать всё равно придется, хоть ХП, хоть классы
Проект всё равно будет, хоть в Visual Studio, хоть в SQL Server Management Studio.
Я предпочитаю программировать там, где мне это делать удобнее. На языке, более подходящем для реализации выбраных паттернов. Кстате, совершеннейший нефакт, что это всегда будет VS.
Вы предпочитаете делать ХП лишь бы не писать классы? Протоколируем разногласие.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281100
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreylockyНет, это типа мне очень не нравится рыскать по стопиццоттысяч разным шарповским модулям, пытаясь выяснить где какой sql код есть, что он делает, где возможны проблемы, где точки входа и модификации и т.д.
В то же время в случае использования только SP я имею проблемы только с dsqlВ имеете дело только с dsql и "рыскаете по стопиццоттысяч разным шарповским модулям пытаясь выснить где какая процедурка вызывается, зачем и где возможны проблемы..." :)
Ниасилил.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281116
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyНиасилил.Вы пишете, что если приложение ходит в базу используя sql, то у вас возникают проблемы с поиском точек входа. Объясните мне куда деваются эти проблемы в случае использования SP.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281122
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreylockyНиасилил.Вы пишете, что если приложение ходит в базу используя sql, то у вас возникают проблемы с поиском точек входа. Объясните мне куда деваются эти проблемы в случае использования SP.
Потому что я ВИЖУ все точки входа.
простым, банальным до жути запросом, получающим список хранимых процедур.
Каким бананом мне получить точки входа в БД, если sql код размазан по шарповскому приложению - я представляю с трудом.
каким образом идентифицировать - каким именно кодом производится DM над теми или иным таблицами/view - я представляю с трудом.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281129
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyПотому что я ВИЖУ все точки входа.
простым, банальным до жути запросом, получающим список хранимых процедур.

Этот список хранимых процедур как-нибудь помогает:
- выяснить где какой sql код есть
- что он делает
- где возможны проблемы
???
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281130
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
Каким бананом мне получить точки входа в БД, если sql код размазан по
шарповскому приложению - я представляю с трудом.
каким образом идентифицировать - каким именно кодом производится DM над
теми или иным таблицами/view - я представляю с трудом.

За шарп не скажу, а для Дельфийского проекта я бы использовал FAR с его
Alt-F7. А вот как Вы найдёте то же самое в груде ХП, использующих dsql
(т.е. без возможности посмотреть зависимости) - я не представляю даже с
трудом.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281135
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
Потому что я ВИЖУ все точки входа.
простым, банальным до жути запросом, получающим список хранимых процедур.
И каким образом этот запрос помогает вам понять кто какие процедуры и зачем вызывает. Вы точно также, как и в случае с SQL не имеете никакого представления о том, каким именно кодом осуществляется вызов этих процедур.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281229
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Набежали то, набежали :)
Отвечу всем по порядку.
Имея список процедур я могу
1. Выяснить, где какой код выполняется. Где идет обращение к той или иной таблице/view, процедуре, функции и т.д. Если обращение идёт к таблице/view я знаю характер обращения (i/u/d/s/truncate/something else)
2. я знаю список потенциальных проблем, как-то - неправильный паттернй, неправильные обращения к процедурам етк.
3. я имею возможность посмотреть список зависимостей.

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


-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281249
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyИмея список процедур я могу
1. Выяснить, где какой код выполняется.
Каким это таким волшебным образом???

Вот вам список процедур:
storedprocedure1
storedprocedure2
storedprocedure3

Выясните, пожалуйста, где какой код выполняется.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281265
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПlockyИмея список процедур я могу
1. Выяснить, где какой код выполняется.
Каким это таким волшебным образом???

Вот вам список процедур:
storedprocedure1
storedprocedure2
storedprocedure3

Выясните, пожалуйста, где какой код выполняется.
Прошу прощения, а вы не могли бы привести код этих процедур? А то телепат, знаете-ли, в отпуске
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281268
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах да, видимо, я не слишком понятно выразился :)
Не только списочный состав процедур, но и сами процедуры, ессно.
Впрочем, как ДБА, если я получаю список процедур из БД при помощи запроса - я аналогичным образом получаю и тело процедур.

-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281277
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
Прошу прощения, а вы не могли бы привести код этих процедур? А то телепат, знаете-ли, в отпуске
Мог бы, конечно, хоть Вы и сказали, что списка имеющихся процедур Вам достаточно.
Первая - Select * From dbo.TableValuedFunction1()
Вторая зашифрована
Третья в дотнетовской сборке лежит, извиняй борода, декомпилятора нэма.

Ах да, видимо, я не слишком понятно выразился :)
Почему же. Предельно понятно.

если я получаю список процедур из БД при помощи запроса - я аналогичным образом получаю и тело процедур.
Иехх... а я то думал, что Вы - волшебник. Умеете из имени процедуры напрямую в мозг её код читать и сразу понимать, с нулевыми усилиями. Все стопиццоттысяч сиквеловских простыней сразу.

Ну ладно. По имеющимся телам стопиццоттысяч процедур Вы легко сумеете понять, что там за SQL код, что он делает, и где проблемы (особенно - где проблемы, это моментом выясняется). Я тебе конечно верю, разве могут быть сомненья, я и сам всё это делал, это наш с тобой секрет (с)

Непонятно только, что мешает такую же операцию с шарповыми модулями проделать.
Лежат себе DataAccessLayerComponents в отдельном проекте, называющемся DataAccessLayerComponents.csproj, наследуют себе от какого-нибудь базового класса, иерархия смотрится без каких-либо запросов, в обычном ObjectBrowser, SQL код смотрится в мало отличающихся CRUD методах, где всё это добро потом используется - видно с одного клика Find usage.

Если стопиццоттысяц хранимых процедур не представляет проблему, то и здесь проблемы быть не должно.
Ну, это конечно же при условии, что сумели из грязного тапка застрелить внутреннего вредителя - до того, как он успел размазать хорошо структурированный DataAccess-код ровным слоем по всему солюшену.
Если из грязного тапка промахнулись - бяда, бяда, огорчение. Не промахнитесь в следующий раз, когда внутренний вредитель попробует до сиквеловских процедур добраться.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281281
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПНу ладно. По имеющимся телам стопиццоттысяч процедур Вы легко сумеете понять, что там за SQL код, что он делает, и где проблемы (особенно - где проблемы, это моментом выясняется). Я тебе конечно верю, разве могут быть сомненья, я и сам всё это делал, это наш с тобой секрет (с)

Опытные ДБА используют спецтулзы, для поиска потенциальных проблем.


ЛП
Непонятно только, что мешает такую же операцию с шарповыми модулями проделать.
Лежат себе DataAccessLayerComponents в отдельном проекте, называющемся DataAccessLayerComponents.csproj, наследуют себе от какого-нибудь базового класса, иерархия смотрится без каких-либо запросов, в обычном ObjectBrowser, SQL код смотрится в мало отличающихся CRUD методах, где всё это добро потом используется - видно с одного клика Find usage.

оккей.
Значит, лежит у меня стопицоттыщ компомнентов, в каждом из которых прописано 4*стопицоттыщ строк для выбора/модификации данных.
И вот, значит, приходит неопытный ДБА (вроде меня) к опытному шарперу (вроде вас) и вопрошает: уважаемый, в каком, извините, месте, у вас происходит удаление из таблицы имярек.
И опытный, значит, шарпер, берёт в руки... А что он, кстати, берёт то?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281282
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Ну, это конечно же при условии, что сумели из грязного тапка застрелить внутреннего вредителя - до того, как он успел размазать хорошо структурированный DataAccess-код ровным слоем по всему солюшену.
Если из грязного тапка промахнулись - бяда, бяда, огорчение. Не промахнитесь в следующий раз, когда внутренний вредитель попробует до сиквеловских процедур добраться.

Харроший вапрос, кстате. Впрочем, я его уже озвучил выше.
Уважаемый, какой магической магией вы мне покажете, что "удаление из таблицы имярек осуществляется только таким-то компонентом, с помощью запроса вот такого вот вида"?
и что это, с позволения сказать, удаление, не прописано у вас еще в стотыщпицот одном запросе, равномерно, как манная каша, размазанном по всем проектам сразу?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281285
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
уважаемый, в каком, извините, месте, у вас происходит удаление из таблицы имярек.
И опытный, значит, шарпер, берёт в руки... А что он, кстати, берёт то?
Клавиатуру берет. И Ctrl-F нажимает в проекте. Для поиска строки [Table(Name="dbo.имярек")]
Хотя во многих случаях может сразу открыть public class Имярек { ... }

Уважаемый, какой магической магией вы мне покажете, что "удаление из таблицы имярек осуществляется только таким-то компонентом, с помощью запроса вот такого вот вида"?
и что это, с позволения сказать, удаление, не прописано у вас еще в стотыщпицот одном запросе, равномерно, как манная каша, размазанном по всем проектам сразу?
Классическая магия называется "грязный тапок".
Если внутренний враг не был побежден - я в этот проект лезть не хочу. Равно как и в равномерно по всему серверу размазанные стопиццоттысяч сиквеловских простыней, в которых внутренний вредитель собирает sql побуквенно
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281295
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП2 locky
уважаемый, в каком, извините, месте, у вас происходит удаление из таблицы имярек.
И опытный, значит, шарпер, берёт в руки... А что он, кстати, берёт то?
Клавиатуру берет. И Ctrl-F нажимает в проекте. Для поиска строки [Table(Name="dbo.имярек")]
Хотя во многих случаях может сразу открыть public class Имярек { ... }

А, ну да, ну да... Да здравствует поиск, бессмысленный и беспощадный :)
Как насчет удаления из зависимой таблицы? На там master/slave?
Когда удаление зависимой (она же - искомая) происходит при удалении из мастера?
А хотя, погоди... у нас же "бизьнесь-обжекты", труъ джедай шарпей при удалении мастера закрутит цикл по слейву и поштучно грохнет все ныне ненужные записи..

кстати, труъ-джедай. Я так понимаю - ваша метода (особенно в части "откроет паблик класс имярек" ) - страдает жюткой недостоверностью?

авторРавно как и в равномерно по всему серверу размазанные стопиццоттысяч сиквеловских простыней, в которых внутренний вредитель собирает sql побуквенно
В том то и беда, мил друг, что с точки зрения ДБА (человека, который мала-мала отвечает за всё, что вы пытаетесь делать с сервером) этот ваш "код унутре класса" - есть сборище манной каши, размазанной по сотням шарпеевских файлов (кода, ресурсов и прочей фигне) и ну никак не поддерживаемо и не анализируемо.

Все ваши приложения суть самый чижолый случай - dsql.
И если на стороне сервера эти случаи наперечет - и уже доставляют неудобства, то на стороне клиента - суть весь проект сплошной головняк и потенциальный глюк.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281585
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!дык, только вот жава - мейнстрим, а об существовании sql/pl и половина db2 кодеров не подозревает.Т.е. половина db2 кодеров за последние 10 лет ни разу в доки не заглядывала? Буду очень признателен за ссылку на подобное соц. исследование :)
Yo.! только вот сам luw не единый, а до v9 и для luw нужно было С компилятор для sql/pl таскать.Неправда - "родной" (без компиляторов) SQL PL появился в 8-ке, лет так больше 10 назад. А inline SQL PL (его подмножество), насколько я помню, был и в 7-ке.
Yo.!скорострельность pl/sql далеко не единственная, а главное не главная фича :)И в чем же эта сакральная мощь? В том, что в язык СУБД напихали кучу функционала, к СУБД никакого отношения не имеющего? Сомнительное преимущество - как уже говорилось, для "внешних" задач та же Java несравнимо мощнее и удобнее.
Favnну ерунду не говорите, там нет базовых конструкций. нет аналога пакетам, нет реф-курсоров, нет и трети функий из базовых пакетов оракла. посмотрите чего может эмулировать db2 9.7 в плане pl/sql, он же и половины конструкций не переваривает.То есть главная проблема SQL PL - в том, что он не PL/SQL :) Поясню - то, что в нем нет точно такого же функционала, не значит, что нет аналогичного . Про "базовые конструкции" не понял, но, на всякий случай, create or replace уже есть, ассоциативные массивы - тоже. И даже аналог SQL*Plus сделали, непонятно зачем. :)
Вот аналог пакетам - модули. Ничего, что не так называются? ;) Просто "pakage" в DB2 значит совсем другое.
Реф-курсоров нет. Но вернуть несколько открытых курсоров из SP можно запросто - CURSOR WITH RETURN, см. пример в самом низу . Увы - опять другое название, вот невезение. ;)
Что до базовых пакетов оракла - их ввели для совместимости, в DB2 эти задачи решаются иначе. И не стоит оценивать SQL PL по способности DB2 эмулировать PL/SQL - родные возможности богаче. А PL/SQL в DB2 вообще, насколько я читал, был лицензирован у EnterpriseDB, так что претензии к его недостаткам - к постгрессу, пожалуйста, нам оно без надобности :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281681
MGY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
есть sql/pl работает как not fenced, т.е. в ядре db2, вне адресного пространства, как и любой пхп например. просто для пхп нет препроцессора, а для жабы выкатили.

Народ я вот не понял обсуждения экономии 1 копейки при потере 10 рублей, вы тут сейчас во что уперлись с фенседом ?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281687
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyАх да, видимо, я не слишком понятно выразился :)
Не только списочный состав процедур, но и сами процедуры, ессно.
Впрочем, как ДБА, если я получаю список процедур из БД при помощи запроса - я аналогичным образом получаю и тело процедур.

-------------------------
There’s no silver bullet!

Не в ту степь, IMHO, спор пошел.
В первую очередь, процедуры необходимы для реализации понятного и документированного API к сущностям БД.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281778
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLMantisНе в ту степь, IMHO, спор пошел.
В первую очередь, процедуры необходимы для реализации понятного и документированного API к сущностям БД.
в первую очередь процедуры нужны для реализации средствами СУБД алгоритмов, которые реализуются посредством процедурных языков, а не DML. Документировать API к сущностям БД конечно же нужно, но при чем здесь первая очередь? Есть вагон и маленькая тележка средств для создания такой документации, любого завхоза удовлетворит.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36281866
SQLMantis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmSQLMantisНе в ту степь, IMHO, спор пошел.
В первую очередь, процедуры необходимы для реализации понятного и документированного API к сущностям БД.
в первую очередь процедуры нужны для реализации средствами СУБД алгоритмов, которые реализуются посредством процедурных языков, а не DML. Документировать API к сущностям БД конечно же нужно, но при чем здесь первая очередь? Есть вагон и маленькая тележка средств для создания такой документации, любого завхоза удовлетворит.

Особенно вторая часть Вам удалась :)
Но в общем понятно.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36282069
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnНеправда - "родной" (без компиляторов) SQL PL появился в 8-ке, лет так больше 10 назад. А inline SQL PL (его подмножество), насколько я помню, был и в 7-ке.
правда, правда.

Developers who program logic in SQL/PL will be delighted to find out that they no longer require a native C compiler on their distributed workstations to develop their code. DB2 V8.2 gives you the option to run SQL/PL as byte code in the engine.

8.2 это еще и 5 лет не прошло.

Favn
И в чем же эта сакральная мощь? В том, что в язык СУБД напихали кучу функционала, к СУБД никакого отношения не имеющего? Сомнительное преимущество - как уже говорилось, для "внешних" задач та же Java несравнимо мощнее и удобнее.
в отличае от db2 в оракл напихали полноценный язык, а не пару конструкций покрывающих 50% потребностей.

Favn не значит, что нет аналогичного . Про "базовые конструкции" не понял, но, на всякий случай, create or replace уже есть, ассоциативные массивы - тоже. И даже аналог SQL*Plus сделали, непонятно зачем. :)
Вот аналог пакетам - модули. Просто "pakage" в DB2 значит совсем другое.
афигеть, точно похоже на пакеты. лет через 10 бимерцы вспомнили, что не хватает базовой конструкции и все же добавили. глядишь через лет 5 весь функционал присутствующий в pl/sql конца 90х доделают.

FavnРеф-курсоров нет. Но вернуть несколько открытых курсоров из SP можно запросто - CURSOR WITH RETURN, см. пример в самом низу . Увы - опять другое название, вот невезение. ;)
ну за последний год sql pl прямо рывок совершил, обязательно погляжу что там в 9.7 добавили. вернуть пару рекордсетов это конечно огромное достижение, но рефкурсор это все же чуток больше ...

Favn А PL/SQL в DB2 вообще, насколько я читал, был лицензирован у EnterpriseDB, так что претензии к его недостаткам - к постгрессу, пожалуйста, нам оно без надобности :)
да мне собственно тоже не к чему, но я давно говорил - даешь pl/sql как стандарт индустрии. в правильном направлении движутся.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36282108
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MGY
Народ я вот не понял обсуждения экономии 1 копейки при потере 10 рублей, вы тут сейчас во что уперлись с фенседом ?
подозреваю экономия шибко больше копейки, этот препроцессор - просто syntax shugar. т.е. db2 с жабой работает как и с любой другой клиентской прогой, просто автоматом подставляя фетчи, чтоб писанины было поменьше.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36282266
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!подозреваю экономия шибко больше копейки, этот препроцессор - просто syntax shugar. т.е. db2 с жабой работает как и с любой другой клиентской прогой, просто автоматом подставляя фетчи, чтоб писанины было поменьше.Для JDBC - да, для SQLJ - вовсе нет. SQLJ является просто сахарком в Оракл, а в DB2 это иной механизм работы, полноценный embedded SQL. При прекомпиляции в БД создается pakage (в терминах DB2), содержащий запросы прекомпилированного модуля, из самого Java-приложения тексты запросов изымаются. Это позволяет исключить injection, давать права на выполнение модуля без прав доступа к БД, отслеживать связь структуры БД с запросами в разных версиях модуля, оптимизировать планы не в момент выполнения запросов, а когда укажут (в момент выполнения тоже можно), исключить несколько этапов компиляции SQL в момент его выполнения.
И фетчи, если их не было, ниоткуда не появляются. :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36282386
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!правда, правда. 8.2 это еще и 5 лет не прошло.Как раз 5 с 2004-го и прошло. Насчет 10 лет - извиняюсь за неточность, я пересел с 7 сразу на 9 .
Yo.!в отличае от db2 в оракл напихали полноценный язык, а не пару конструкций покрывающих 50% потребностей.Ну, необходимость в составе СУБД универсального языка с устаревшим синтаксисом сомнительна, а вот цена за это в виде выполнения на отдельной от SQL-процессора VM (в отличии от SQL PL) - несомненна. Причем в части обработки данных мне трудно придумать потребности, которые SQL PL не перекрывает, а остальное - внешние задачи для других языков, помощнее.
Favnафигеть, точно похоже на пакеты. лет через 10 бимерцы вспомнили, что не хватает базовой конструкции и все же добавили. глядишь через лет 5 весь функционал присутствующий в pl/sql конца 90х доделают.Надеюсь, что нет - он ИМХО явно избыточен.
Favnну за последний год sql pl прямо рывок совершил, обязательно погляжу что там в 9.7 добавили. вернуть пару рекордсетов это конечно огромное достижение, но рефкурсор это все же чуток больше ...Это не за последний год, это в 9-ке изначально было, и кроме курсоров можно вернуть таблицу (из UDF) или массивы. А посмотреть что добавили в 9.7 можно тут , там много чего.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36282417
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПА почему он у Вас "один единственный"?!
По определению. По начальным данным диалога с baracs. Потому что других клиентов пристрелили из ружья.
Что-то не припомню... Где такое?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36282637
MGY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
подозреваю экономия шибко больше копейки, этот препроцессор - просто syntax shugar. т.е. db2 с жабой работает как и с любой другой клиентской прогой, просто автоматом подставляя фетчи,

Ничего не понял причем тут фенсед и препроцессор, и подстановка фетчей ?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36283315
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyОтвечу всем по порядку.
Раз уж взялись отвечать всем, то и мне тоже ответьте. Повторю вопрос: И каким образом запрос помогает вам понять кто какие процедуры и зачем вызывает.

А так как в обсуждении уже конкретный пример пошел:
lockyИ вот, значит, приходит неопытный ДБА (вроде меня) к опытному шарперу (вроде вас) и вопрошает: уважаемый, в каком, извините, месте, у вас происходит удаление из таблицы имярек.
То и я вам конкретную ситуацию обрисую. Вы этот самый delete в процедуру запрятали (кстати заодоно и расскажите, как будет выглядеть процедура дабы предоставить возможности аналогичные delete) и тут приходит к вам ДБА и вопрошает: в каком месте процедура-то вызывается...
И что вы ответите?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36283406
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MGYНичего не понял причем тут фенсед и препроцессор, и подстановка фетчей ?
при том, что pl/sql имеет общее с субд адресное пространство, а sqlj в db2 это внешний и чуждый для субд процесс который лезет в базу через тот же JDBC. просто писанины чуть меньше. к стате кто там спрашивал чего, это код на жабе избыточен - посмотрите, там как раз показательные примеры.
и, Favn, а бэкапить sqlj и сторед процедуры нужно отдельно ручками ?

FavnНу, необходимость в составе СУБД универсального языка с устаревшим синтаксисом сомнительна
ну не знаю, по мне если уж реализовывать логику (не важно где) - то нужен полноценный язык, а не огрызок. дальнейший уязвленный плач уж оставлю на вашей совести.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36283499
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
А, ну да, ну да... Да здравствует поиск, бессмысленный и беспощадный :)
Ну что ж поделать, без поиска только волшебники справляются - которые по имени процедуры могут определить, где проблема в sql-коде.

Как насчет удаления из зависимой таблицы?
Точно так же.

труъ джедай шарпей при удалении мастера закрутит цикл по слейву и поштучно грохнет все ныне ненужные записи..
Да хоть оптом, хоть в розницу. Можно в цикле по одной, можно за один раз несколько.
А что Вы хотите предложить? Уж неужто каскадное удаление? Может Вы еще и в защиту каскадного обновления что-нить скажете?

Я так понимаю - ваша метода (особенно в части "откроет паблик класс имярек" ) - страдает жюткой недостоверностью?
Жуткой недостоверностью чего?
И почему страдает (может наслаждается, кто ж её знает).

В том то и беда, мил друг, что с точки зрения ДБА (человека, который мала-мала отвечает за всё, что вы пытаетесь делать с сервером) этот ваш "код унутре класса" - есть сборище манной каши, размазанной по сотням шарпеевских файлов (кода, ресурсов и прочей фигне) и ну никак не поддерживаемо и не анализируемо.
В том то и радость, мил друг, что для нормального девелопера не составляет особого труда "открыть класс и посмотреть содержимое метода". Хоть для DB-девелопера, хоть для VB-девелопера.
Для дба в этом какая-то проблема? Да ну и ладно. Пусть датабейзадминистратор - сидит и администрирует датабазу. У него своя работа, нефиг по чужим проектам шариться. Не хватало еще, чтоб всякие там админы учили меня программировать. Этак и заправщики картриджей к ним подтянутся, будут рассказывать, как мне отчеты рисовать, чтоб тонера поменьше израсходовалось.

З.Ы. Ваше "человек, который мала-мала отвечает за всё" - дюже порадовало :). Лёню Федорова наверное любите слушать? Йааааа заведующий всеем, и всиооо из-за меняааа....

------------------------------------------------

2 iscrafm
в первую очередь процедуры нужны для реализации средствами СУБД алгоритмов, которые реализуются посредством процедурных языков, а не DML.
Истинная правда.
Тем удивительнее смотреть на фанатов T-SQL, в котором эти самые процедурные расширения застыли где-то на уровне бейсика для синклера, и ни в какую не хотят развиваться. Пятнадцать лет кряхтели-пыхтели-сопели-пердели - выродили - обкусок эксепшн хэндлинга. Теперь не надо после каждого запроса проверять @@error, бурные продолжительные апплодисменты.

Ладно ораклоиды, у них язык побогаче, логика хорошо и удобно пишется и без трехзвенок. А поклонники MS SQL Server куда лезут с недоделаным T-SQL? С рождения хромые инвалиды, кое-как научившиеся на костылях ходить - и теперь эти инвалиды рассказывают всем, что на костылях ходить хорошо и правильно, а еще можно на костылях бегать и в футбол играть (а кто ходит не на костылях, тому надо сломать ноги).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36283683
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Ладно ораклоиды, у них язык побогаче, логика хорошо и удобно пишется и без трехзвенок.
трехзвенки только не для этого создаются. Это распространили дезу (неправильный перевод?) по интернету про трехзвенки и пошла полная путаница между tier и layer.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36283759
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmЛП
Ладно ораклоиды, у них язык побогаче, логика хорошо и удобно пишется и без трехзвенок.
трехзвенки только не для этого создаются. Это распространили дезу (неправильный перевод?) по интернету про трехзвенки и пошла полная путаница между tier и layer.

Ну почему путаница :)
Тут как раз и обсуждается, на каком tier размещать application layer - в слое DB (реализуя через хранимки) или более отделено (например, на отдельном сервере).

Другое дело, что как-то принято любую реализацию логики средствами сервера БД обзывать "двузвенкой". Хотя хранимые процедуры - это вполне себе application layer (вернее, с их помощью его можно реализовать).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36283926
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 iscrafm
трехзвенки только не для этого создаются.
Простите - "только не для этого" или "не только для этого"?

Это распространили дезу (неправильный перевод?) по интернету про трехзвенки и пошла полная путаница между tier и layer.
Есть такое. Наличие присутствия путаницы.

По layer'ам надо делить приложение независимо от того, на каком tier'е находится реализация каждого конкретного layer'а. Я в общем-то это и имел в виду, когда писал про недопустимость размазывания логики по приложению, даже если это одно приложение внутри MS SQL Server'а (к примеру).

Мух от котлет надо отделять, уж хотя бы мысленно. Если решили, что мухи должны храниться в той же коробочке, что и котлеты, то хотя бы в фарш их не надо замешивать.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36283941
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПДля дба в этом какая-то проблема? Да ну и ладно. Пусть датабейзадминистратор - сидит и администрирует датабазу. У него своя работа, нефиг по чужим проектам шариться. Не хватало еще, чтоб всякие там админы учили меня программировать. Этак и заправщики картриджей к ним
Не хватало еще чтобы всякие веб- и прочие девелоперы шарились у меня в базе и творили "шопопало".
И уж тем более - не хватало чтобы они учили меня, какие способы доступа к данным являются кошерными, а какие - нет.
Если человек не понимает, каким образом при формальном анализе t-sql кода строятся зависимости, выявляются точки модификации, определяются потенциально проблемные места и паттерны - такой человек должен немедленно "прикинутся ветошью и не отсвечивать". например, сидеть и ваять очередную нетленку в виде "супер оптимизированного бабл-сорта".
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36283942
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП2 locky
А, ну да, ну да... Да здравствует поиск, бессмысленный и беспощадный :)
Ну что ж поделать, без поиска только волшебники справляются - которые по имени процедуры могут определить, где проблема в sql-коде.

:) Это шарпеи используют "поиск таблиц". дба используют тулзы, которые показывают граф зависимости объектов (ну, на крайний случай - дерево).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36283944
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
А что Вы хотите предложить? Уж неужто каскадное удаление? Может Вы еще и в защиту каскадного обновления что-нить скажете?

У вас какие-то религиозные предубеждения против такого метода решения? Хотите об этом поговорить?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36283945
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Жуткой недостоверностью чего?

Жуткой недостоверностью информации.
Ибо совершенно не факт, что таблица Table1 модифицируется только в класс CTable1.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284007
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП2 iscrafm
трехзвенки только не для этого создаются.
Простите - "только не для этого" или "не только для этого"?

не только для этого или вообще не для этого.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284013
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
Не хватало еще чтобы всякие веб- и прочие девелоперы шарились у меня в базе и творили "шопопало".
И уж тем более - не хватало чтобы они учили меня, какие способы доступа к данным являются кошерными, а какие - нет.

как говориться, комментарии излишни.

Его величество завхозТвердость характера- главнейшее из качеств, какие должны быть присущи Завхозу. Главнейшее, но не единственное. Потому что Завхоз должен еще иметь память профессионального разведчика. Попробуйте запомнить, в чьей байдарке, в чьем рюкзаке и в каком количестве хранятся продукты пятьсот четырех наименований!
Завхоз должен обладать неисчерпаемым запасом обаяния, красноречия и оптимизма. Первые два качества необходимы для того, чтобы уговорить продавщицу, разбуженную в половине двенадцатого ночи (хотя в село с магазином предполагали добраться еще засветло...), продать хлеб и два килограмма макарон.

Оптимизм же Завхозу необходим для того, чтобы окончательно не потерять веру в человечество. Потому что легко, очень легко решить, что homo sapiens если чем и отличается от остальных приматов, то лишь во много раз более неуемным аппетитом.

Увы, подобных гибридов-завхозов не бывает. Природа сотворила лишь два полярно различающихся типа.

Один из них рубаха-парень, балагур и весельчак. Первые шесть дней похода вы от него без ума. Кок смотрит на балагура влюбленными глазами, ибо столь широких и безотказных возможностей для проявления своего незаурядного мастерства у него еще никогда не было. Прочие участники похода одаривают Завхоза бурной любовью, потому что их кормят так, как не смогла бы этого сделать и теща, к которой вы впервые приехали погостить с молодой супругой. К исходу первой недели выясняется, что до конца похода остается девятнадцать дней, два килограмма ржаных сухарей и три пучка сухой петрушки.

Второй тип Завхоза - это сквалыга. Перед началом маршрута он вынимает заранее припасенный мешок и складывает в него все продукты. Отныне вся деятельность и все помыслы Завхоза-сквалыги поглощены лишь одной страстью: довезти мешок до конца похода в полной неприкосновенности. Однако сохранить мешок в абсолютной не- прикосновенности ему не удается. Все же три раза в день, перед едой, мешок приходится развязывать. При этом на физиономии Завхоза отражаются такие нечеловеческие муки, что у сентиментальной части коллектива на глазах вы- ступают слезы...
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284017
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlocky
Не хватало еще чтобы всякие веб- и прочие девелоперы шарились у меня в базе и творили "шопопало".
И уж тем более - не хватало чтобы они учили меня, какие способы доступа к данным являются кошерными, а какие - нет.

как говориться, комментарии излишни.

Я прошу прощения, вы, видимо, шарпей?
И вас, видимо, не удивляют посылы типа "еще не хватало чтобы всякие там учили меня гнать код на шарпе!".
А вы не можете себе помыслить, что ДБА - значительно лучше вас разбирается в БД? Что именно он знает что и как нужно делать? И что уж точно совершенно не ваше дело - указывать - каким образом осуществлять доступ к данным?
Ваше дело - лепить GUI, клепать странички на html, и заниматься прочей "весьма полезной деятельностью".
И, разумеется! Почтительно принимать рекомендации ДБА, брать под козырёк и выполнять в точности.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284019
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
Я прошу прощения, вы, видимо, шарпей?

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

locky
А вы не можете себе помыслить, что ДБА - значительно лучше вас разбирается в БД? Что именно он знает что и как нужно делать? И что уж точно совершенно не ваше дело - указывать - каким образом осуществлять доступ к данным?
Ваше дело - лепить GUI, клепать странички на html, и заниматься прочей "весьма полезной деятельностью".
И, разумеется! Почтительно принимать рекомендации ДБА, брать под козырёк и выполнять в точности.
ответ настоящего прапорщика! А то полковники распоясались совсем.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284023
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо, возникла некоторая путаница аббревиатурах. DBA - Data Base Administrator или Data Base Architector ?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284031
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmимхо, возникла некоторая путаница аббревиатурах. DBA - Data Base Administrator или Data Base Architector ?
Да какой уж там архитектор. Выше берите. ЗОДЧИЙ!!!
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284032
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmответ настоящего прапорщика! А то полковники распоясались совсем.
Это кодеры то на шарпе - "полковники"? :)
Спасибо, повеселили меня под вечер
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284034
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, что я к шарпу то привязался...
"Это кодеры то - полковники?" (С)

мастеровые. Это как максимум.

-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284040
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,
кодер = мастеровой, dba = завхоз. все правильно. Мастеровой приходит к завхозу за инструментом. Завхоз - охраняет инструмент и следит за порядком в каптерке. Каптерке, построенной разработчиком, как бы вас не вело от этого.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284043
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284044
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на самом деле все вышеперечисленные работают в связке. И здесь важно, чтобы связку не перекашивало, как в высказываниях выше.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284047
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlocky,
кодер = мастеровой, dba = завхоз. все правильно. Мастеровой приходит к завхозу за инструментом. Завхоз - охраняет инструмент и следит за порядком в каптерке. Каптерке, построенной разработчиком, как бы вас не вело от этого.

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

разработчики лепят GUI? Да ради бога, никто не в претензии.
Разработчик на шарпе делает умный вид и заявляет, что он де знает про СУБД больше чем ДБА? Пинком под зад, дабы знал своё место и впредь не высовывался.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284050
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmна самом деле все вышеперечисленные работают в связке. И здесь важно, чтобы связку не перекашивало, как в высказываниях выше.
Разумеется, в связке, а как иначе?
Шарпею - шарпеево, ДБА - дибиэево.
Я ведь не учу шарпеев - как нужно конкатенировать строки?
так почему первый-встречный-горе-кодер, с грехом пополам умеющий написать простой запрос делает вид, мол "я тут главный"?

зы хотя вот, что характерно, после первого же тыка носом - девелоперы становятся куда более покладисты :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284051
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,
вы о ком? Или сам с собой?

интересно, что же dba администрируют, если у разработчиков ничего не получается ? Логика просто отсутствует.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284053
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlocky,
вы о ком? Или сам с собой?

интересно, что же dba администрируют, если у разработчиков ничего не получается ? Логика просто отсутствует.

А ДБА приходится выкручиватся - и делать так, дабы "чудо-код", наваяный девелоперами - всё-таки работал.
И чтобы в девелоперской "каптёрке" помещался весь спектр товаров и услуг, который, по хорошему, должен был помещаться в здании.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284057
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,

вы о чем вообще? Помогите логику найти... темно...
ДБА делает код рабочим, а не разработчик? Жесть конечно.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284058
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlocky,

вы о чем вообще? Помогите логику найти... темно...
ДБА делает код рабочим, а не разработчик? Жесть конечно.

Это просто вы, батенька, слишком узко понимаете термин "ДБА".
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284060
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlocky,

вы о чем вообще? Помогите логику найти... темно...
ДБА делает код рабочим, а не разработчик? Жесть конечно.
А вообще - да, зачастую именно ДБА.
Потому как средневзвешенный разработчик способен просто дать код, который (даже!) проходит тесты на тестовом стенде.
но который, увы, весьма сомнителен в эксплуатации.

И несть числа таким примерам.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284064
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а средневзвешенный ДБА может наконец объяснить о ком здесь речь идет? Просмотрел ради интеререса профили участников дискуссии. Приверженцев шарпа или работников интерфейсной отрасли не обнаружил.

p.s. разработчики бывают разные. Одни дают архитектуру, другие код. Вы похоже несколько не в теме о том, как системы строятся, что в общем-то простительно. Или умышленно.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284065
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmlocky,

вы о чем вообще? Помогите логику найти... темно...
ДБА делает код рабочим, а не разработчик? Жесть конечно.

Это просто вы, батенька, слишком узко понимаете термин "ДБА".
я его понимаю в его прямой трактовке. Поэтому и спросил чуть выше...A, в абрревиатуре, что по вашему?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284079
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmа средневзвешенный ДБА может наконец объяснить о ком здесь речь идет? Просмотрел ради интеререса профили участников дискуссии. Приверженцев шарпа или работников интерфейсной отрасли не обнаружил.

p.s. разработчики бывают разные. Одни дают архитектуру, другие код. Вы похоже несколько не в теме о том, как системы строятся, что в общем-то простительно. Или умышленно.

Да, вы совершенно правы.
Я абсолютно не в курсе, как системы строятся.

Точнее - я как бы в курсе, как строятся "сферические кони в вакууме". И даже немного в курсе - к чему это обычно приводит.

А так - так нет, не в курсе, разумеется :)

Я, правда, знаю, что "в правильных системах" запросы к БД размазаны по коду приложения и эти самые запросы вроде как бы даже написаны разработчиками этого самого приложения (без участия ДБА пардон, "завхоза").

Неужели я ошибаюсь?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284082
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlockyiscrafmlocky,

вы о чем вообще? Помогите логику найти... темно...
ДБА делает код рабочим, а не разработчик? Жесть конечно.

Это просто вы, батенька, слишком узко понимаете термин "ДБА".
я его понимаю в его прямой трактовке. Поэтому и спросил чуть выше...A, в абрревиатуре, что по вашему?

Вашу "прямую трактовку" ("завхоз") я уже читал.
К сожалению, эта трактовка "не в полной мере описывает весь спектр товаров и услуг"
Хотя приличный ДБА и это тоже может.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284087
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
Я, правда, знаю, что "в правильных системах" запросы к БД размазаны по коду приложения и эти самые запросы вроде как бы даже написаны разработчиками этого самого приложения (без участия ДБА пардон, "завхоза").
Неужели я ошибаюсь?
я немного не понимаю, что означает "размазаны" по коду приложения. В "правильных системах" взаимодействие с БД обычно локализовано. Без участия ДБА общение в БД просто нереально, хотя бы потому, что именно ДБА раздает полномочия для этого. Я же говорю, все в связке.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284089
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyВашу "прямую трактовку" ("завхоз") я уже читал.

это трактовка модели поведения, но никак не термина.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284090
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmя немного не понимаю, что означает "размазаны" по коду приложения. В "правильных системах" взаимодействие с БД обычно локализовано. Без участия ДБА общение в БД просто нереально, хотя бы потому, что именно ДБА раздает полномочия для этого. Я же говорю, все в связке.
Да-да-да, подошли к самому главному. "ДБА даёт доступ" (С)
Так сказать, из завхоза - в вахтёры, пущать/не пущать.
И вся эта эволюция - в течение не более одного вечера произошла. Занятно.
Куда мы через полчаса придём? "ДБА - почетный выключатель света в храме программирования"?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284095
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlockyВашу "прямую трактовку" ("завхоз") я уже читал.

это трактовка модели поведения, но никак не термина.
Да? Занятно.
А какую "трактовку поведения" можно дать девелоперу, претендующему на "знание БД"?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284096
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyДа-да-да, подошли к самому главному. "ДБА даёт доступ" (С)
Так сказать, из завхоза - в вахтёры, пущать/не пущать.

это вахтеры думают что они управляют тем, кого пущать, а кого нет. На самом деле они открывают шлагбаум перед теми, кто у них в списке записан в колонке "пущать". Вот только список этот составляют совсем другие персонажи.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284101
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmВот только список этот составляют совсем другие персонажи.
да-да-да! Я знаю.
Это - девелоперы!
Которые приходят так и приказным тоном заявляют: "Нашей супернетленке необходимы для работы права уровня sysadmin и полный доступ ко всем всевозможным ресурсам".
После чего (изрядно пополнив свой словарный запас жаргонизмов) с задумчивым видом удаляются вдаль, в сторону заходящего солнца, по дороге, вымощенной желтым кирпичом, униженные и оскорблённые, но всё еще не сломленные и бодрые духом.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284102
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyА какую "трактовку поведения" можно дать девелоперу, претендующему на "знание БД"?
странно бы выглядел разработчик приложений для БД, не знающий в требуемом объеме этой самой БД.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284104
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmВот только список этот составляют совсем другие персонажи.
да-да-да! Я знаю.
Это - девелоперы!
Которые приходят так и приказным тоном заявляют: "Нашей супернетленке необходимы для работы права уровня sysadmin и полный доступ ко всем всевозможным ресурсам".

не знаю что такое "нетленка", но что делает ДБА? Неужели пустыми БД рулит? Логика где?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284110
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и что означает "размазаны по коду приложения", все же?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284113
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и причем здесь шарпеи, все же?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284118
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlockyА какую "трактовку поведения" можно дать девелоперу, претендующему на "знание БД"?
странно бы выглядел разработчик приложений для БД, не знающий в требуемом объеме этой самой БД.
К сожалению, у нас весьма и весьма не совпадает высота той самой планки "требуемого объема знаний".
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284119
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmи что означает "размазаны по коду приложения", все же?
Это когда sql код содержится не в процедурах на сервере, а содержится в чудесных литералах шарпейного кода. Либо (в особо продвинутых случаях) - в ресурсах вышеупомянутого шарпейного проекта.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284122
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmи причем здесь шарпеи, все же?
как яркий пример современного разработчика.
Впрочем, джависты с этой точки зрения ничем не лучше.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284129
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmlockyА какую "трактовку поведения" можно дать девелоперу, претендующему на "знание БД"?
странно бы выглядел разработчик приложений для БД, не знающий в требуемом объеме этой самой БД.
К сожалению, у нас весьма и весьма не совпадает высота той самой планки "требуемого объема знаний".
не высота, а границы, правильней, имхо. Многие вещи разработчику просто необязательно знать.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284131
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmи причем здесь шарпеи, все же?
как яркий пример современного разработчика.
Впрочем, джависты с этой точки зрения ничем не лучше.
понятно. Это тенденция. Если я правильно понял, что речь идет об "embeded sql". Мне она, кстати, не очень нравиться, еще со времен Pro*C и 5-го оракла.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284132
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нравиться
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284142
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
Не хватало еще чтобы всякие веб- и прочие девелоперы шарились у меня в базе и творили "шопопало".
Та нихто в Вашей базе не шарится, успокойтесь.
Есть у Вас база, есть там дцать таблиц с данными, есть там ноль целых хер десятых кода - всё, сидите, админьте, никто на Вашу вотчину не посягается. Делайте свою работу. Назвались администратором - администрируйте.

У вас какие-то религиозные предубеждения против такого метода решения? Хотите об этом поговорить?
Предубеждения против каскадного удаления/обновления - да. Причем предубеждения эти есть независимо от количества layer'ов и tier'ов.
Религиозные - нет.
Поговорить - всегда пожалуйста. Было б с кем. Не с завхозом же.

Жуткой недостоверностью информации.
Ибо совершенно не факт, что таблица Table1 модифицируется только в класс CTable1.
Правда?
И зачем люди какую-то там инкапсуляцию придумали... Какие-то датааксеслэйеры рисуют, локализуют работу с исходными данными в одном месте - а тут бац! нифига не в одном, внутренний вредитель всё порушил, написал еще миллион классов :))

А вы не можете себе помыслить, что ДБА - значительно лучше вас разбирается в БД? Что именно он знает что и как нужно делать? И что уж точно совершенно не ваше дело - указывать - каким образом осуществлять доступ к данным?
Ваше дело - лепить GUI, клепать странички на html, и заниматься прочей "весьма полезной деятельностью".
И, разумеется! Почтительно принимать рекомендации ДБА, брать под козырёк и выполнять в точности.
Напомнило, как в одной компании внедрение оракла зарубили на корню. Со словами "и чтоб ни один занюханый оракловый админ даже и думать не смел, будто бы от него тут хоть что-нибудь зависит" :)

Позвольте полюбопытствовать, Наполеоном Вы стали когда - до определения в козлятню на должность модератора ПТ, или после?

А ДБА приходится выкручиватся - и делать так, дабы "чудо-код", наваяный девелоперами - всё-таки работал.
Ога, ога.
А заправщику картриджей приходится за программистом отчет перерисовывать.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284154
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmне высота, а границы, правильней, имхо. Многие вещи разработчику просто необязательно знать.
Болльшинство разработчиков уверены, что им вообще необязательно ничего знать, кроме пары классов, тройки паттернов и десятка крутых и модных слов.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284155
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
понятно. Это тенденция. Если я правильно понял, что речь идет об "embeded sql". Мне она, кстати, не очень нравиться, еще со времен Pro*C и 5-го оракла.
Ни в коем разе. встроеный скуль - он как раз на своем месте. Ну, почти на своем.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284156
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
И зачем люди какую-то там инкапсуляцию придумали... Какие-то датааксеслэйеры рисуют

есть единственная причина для всего этого - создать видимость работы и прикрыть свою некомпетентность.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284157
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafm
Если я правильно понял, что речь идет об "embeded sql".
Ни в коем разе. встроеный скуль - он как раз на своем месте. Ну, почти на своем.
тогда не понятно о чем.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284158
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
Та нихто в Вашей базе не шарится, успокойтесь.
Есть у Вас база, есть там дцать таблиц с данными, есть там ноль целых хер десятых кода - всё, сидите, админьте, никто на Вашу вотчину не посягается. Делайте свою работу. Назвались администратором - администрируйте.

Ах, если бы!
Обычно прибегают девелоперы, и заливаясь слезами (или, что хуже - гневно потрясая тощими кулачками) - заявляют на голубом глазу, мол "база тормозит".
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284159
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlockyiscrafm
Если я правильно понял, что речь идет об "embeded sql".
Ни в коем разе. встроеный скуль - он как раз на своем месте. Ну, почти на своем.
тогда не понятно о чем.
О теме топика. "Код из приложения против хранимых процедур".
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284160
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛППозвольте полюбопытствовать, Наполеоном Вы стали когда - до определения в козлятню на должность модератора ПТ, или после?

Никогда не любил девелоперов.
За леность, самоуверенность, хамство и нежелание учится.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284161
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПНапомнило, как в одной компании внедрение оракла зарубили на корню. Со словами "и чтоб ни один занюханый оракловый админ даже и думать не смел, будто бы от него тут хоть что-нибудь зависит" :)

А, так вы вместо одного спеца по БД взяли десяток студентов-недочек-девелоперов? Весёлый ход, ничего не скажешь.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284162
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmне высота, а границы, правильней, имхо. Многие вещи разработчику просто необязательно знать.
Болльшинство разработчиков уверены, что им вообще необязательно ничего знать, кроме пары классов, тройки паттернов и десятка крутых и модных слов.
очень многие админы считают, что БД нужны "чтобы було". А про то, что БД являются частью приложений, почему-то забывают. Воспринимают ее как набор табличек, вьюшек, процедур и т.д., не понимая зачем они нужны. Дали порулить - рулю.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284164
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmочень многие админы считают, что БД нужны "чтобы було". А про то, что БД являются частью приложений, почему-то забывают. Воспринимают ее как набор табличек, вьюшек, процедур и т.д., не понимая зачем они нужны. Дали порулить - рулю.
каких-таких процедур?
Никаких процедур же нет! У нас есть датаакцесслейеры! У нас есть классы! У нас есть орм, в конце концов! Об чем вы говорите, милейший?

зы а вы что, серъезно думаете, что для поддержания оптимальной производительности сервера БД так уж необходимо разбираться в предметной области?
насчет того что это "было бы полезно" - я спорить не буду, ибо знания - лишними не бывают.
Однако вы делали уже допущения, мол "девелоперу не обязательно всё знать" - но почему-то не делаете таких допущений насчет ДБА. Уж не пристрастны ли вы, часом?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284166
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
Ах, если бы!
Обычно прибегают девелоперы, и заливаясь слезами (или, что хуже - гневно потрясая тощими кулачками) - заявляют на голубом глазу, мол "база тормозит".
Ну так и сделайте, чтобы база - не тормозила. И выдерживала нагрузку из многих несложных запросов.
Если не сумеете - что ж поделать. Девелоперы будут переписывать ресурсоемкие куски. Возможно с переносом частей в БД, возможно что и нет. Не хватит у шарпера квалификации - будет приглашен DB-девелопер. В любом случае эту работу не доверят админу (уж соверенно точно не доверят тому админу, для которого представляет сложность открыть класс и найти метод)

ЛППозвольте полюбопытствовать, Наполеоном Вы стали когда - до определения в козлятню на должность модератора ПТ, или после?

Никогда не любил девелоперов.
За леность, самоуверенность, хамство и нежелание учится.
Ну знаете... Если Вы в козлятне, то я то тут причем???
Совсем уж полная неадекватность...

А, так вы вместо одного спеца по БД взяли десяток студентов-недочек-девелоперов? Весёлый ход, ничего не скажешь.
Нет, в той конторе взяли девелопера - спеца по другой БД. Ну и студентов подтянули до нужного уровня.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284168
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
Никогда не любил девелоперов.
За леность, самоуверенность, хамство и нежелание учится.
locky
Не хватало еще чтобы всякие веб- и прочие девелоперы шарились у меня в базе и творили "шопопало".
И уж тем более - не хватало чтобы они учили меня, какие способы доступа к данным являются кошерными, а какие - нет.

смешно. Или грустно.
Так все же, откуда беруться БД, которые ДБА администрирует? Их создают самоуверенные хамы, которые никак не желают учится? Или непорочное зачатие? Где логика?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284170
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
Однако вы делали уже допущения, мол "девелоперу не обязательно всё знать" - но почему-то не делаете таких допущений насчет ДБА. Уж не пристрастны ли вы, часом?
нет. зачем разработчику знать, к примеру, в какую filegroup конкретный ДБА засунул конкретную базу? Гаечный ключ можно положить на любую полку в каптерке, лишь бы это удовлетворяло требования, которое предъявили к доступности ключа.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284171
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmочень многие админы считают, что БД нужны "чтобы було". А про то, что БД являются частью приложений, почему-то забывают. Воспринимают ее как набор табличек, вьюшек, процедур и т.д., не понимая зачем они нужны. Дали порулить - рулю.
каких-таких процедур?
Никаких процедур же нет! У нас есть датаакцесслейеры! У нас есть классы! У нас есть орм, в конце концов! Об чем вы говорите, милейший?

хорошо. пусть будет так:
Воспринимают ее как набор табличек, вьюшек, процедур и т.д., не понимая зачем они нужны.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284172
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПНу так и сделайте, чтобы база - не тормозила. И выдерживала нагрузку из многих несложных запросов.

Чудеса у нас, любезный, в соседнем отделе.
К сожалению, далеко не всё, что делают уважаемые девелоперы, можно оптимизировать.

ЛП
Девелоперы будут переписывать ресурсоемкие куски.

А прелесть иногда состоит в том что - нету их, ресурсоемких запросов :)

ЛПВ любом случае эту работу не доверят админу (уж соверенно точно не доверят тому админу, для которого представляет сложность открыть класс и найти метод)

Странно. Создание запросов доверили же девелоперу, для которого представляет сложность хотя бы просто спросить - как следует делать. Я уж не говорю о том, чтобы почитать что-нить по теме.

ЛПНет, в той конторе взяли девелопера - спеца по другой БД. Ну и студентов подтянули до нужного уровня.
А нафига ж там брали то "спеца по другой БД"? Девелоперы бы сами справились - классы, ооп, лейеры, тайеры, все дела....
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284174
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmсмешно. Или грустно.
Так все же, откуда беруться БД, которые ДБА администрирует? Их создают самоуверенные хамы, которые никак не желают учится? Или непорочное зачатие? Где логика?
Вы меня простите, но при современном развитии средств проективрования, набросать десяток-другой кривеньких сущностей (и даже автоматом сгенерировать для них любимые классы для доступа) способна даже обезьянка.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284176
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmхорошо. пусть будет так:
Воспринимают ее как набор табличек, вьюшек, процедур и т.д., не понимая зачем они нужны.
Вы меня простите, но зачастую это именно так и есть - не БД, а просто "набор табличек".
С которыми неизвестно кто неизвестно что делает.
И с такой БД что-либо можно выяснить только "по факту" - когда загорится, так сказать.
Ибо там просто нет объекта для анализа.
Можно проанализировать схему на предмет мелких блох.
но не более.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284179
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmнет. зачем разработчику знать, к примеру, в какую filegroup конкретный ДБА засунул конкретную базу? Гаечный ключ можно положить на любую полку в каптерке, лишь бы это удовлетворяло требования, которое предъявили к доступности ключа.
Незачем.
Вы совершенно правы - разработчику совершенно незачем знать кучу разных мелочей, которые знает ДБА. Зачем ему?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284180
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmхорошо. пусть будет так:
Воспринимают ее как набор табличек, вьюшек, процедур и т.д., не понимая зачем они нужны.
Вы меня простите, но зачастую это именно так и есть - не БД, а просто "набор табличек".
С которыми неизвестно кто неизвестно что делает.
И с такой БД что-либо можно выяснить только "по факту" - когда загорится, так сказать.
Ибо там просто нет объекта для анализа.
Можно проанализировать схему на предмет мелких блох.
но не более.
все потому, что один оперирует данными , а другой - информацией . Действительно, набор табличек..
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284181
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyС которыми неизвестно кто неизвестно что делает.

очень даже известно кто, что и зачем.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284185
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmвсе потому, что один оперирует данными , а другой - информацией . Действительно, набор табличек..
Да бог с ними, кто чем оперирует.
Главное, чтобы это было сделано квалифицировано.
Но большинство разработчиков воспринимают БД как вспогательный объект, эдакое досадное приложение к их замечательному GUI и красивой структуре классов. Что, вообще говоря, неверно.

В принципе, это можно даже проследить по наличию инструментов для контроля качества кода.
Существует масса всевозможного инструментария, который позволяет находить блох во всевозможном коде - начиная от TP6, заканчивая С и шарпом. Всевозможные решарперы, стайлкопы, полиси и проч.
А вот инструментария, который позволяет искать блох в коде SQL - по пальцам пересчитать. Один-два для оракла и полтора для сиквела.

Тем тяжелее становится задача оптимизации. Мало того что почти нет инструментов для анализа кода, так и самого кода, собственно, нет! Его нужно выискивать по десяткам классов, по сорс-файлам и т.д. Это напоминает мне анекдот про гамак и скафандр.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284187
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlockyС которыми неизвестно кто неизвестно что делает.

очень даже известно кто, что и зачем.
Увы, мой друг, увы.
Если я дам вам в руки проект, и спрошу - "какие действия и где производятся с табличкой имярек" - вы, скорее всего, вооружитесь банальным поиском и начнете копать.
Если я попрошу вас найти какие-то некошерные места - вы, я так думаю, потратите много и много усилий, но не достигнете сколь нибудь приемлимого результата.
А ведь в скуле существует масса моментов, на которые обычный девелопер просто не обращает внимания, но которые потом вылезают боком при эксплуатации.
И найти такие моменты в рассредоточенном коде - очень проблематично.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284188
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более того. мне кажется, что даже если я дам вам код и спрошу "что здесь не так" - вы мне не сможете ответить.

-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284192
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyБолее того. мне кажется, что даже если я дам вам код и спрошу "что здесь не так" - вы мне не сможете ответить.


Код: plaintext
UPDATE WHBATCH SET ST=- 1 ,PDATE=getdate(),POWNER='@OWNER'  WHERE ID = :ID and WHST= 2 ;
что здесь не так?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284202
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
ЛПНу так и сделайте, чтобы база - не тормозила. И выдерживала нагрузку из многих несложных запросов.

Чудеса у нас, любезный, в соседнем отделе.
К сожалению, далеко не всё, что делают уважаемые девелоперы, можно оптимизировать.
А не надо (Вам - не надо) оптимизировать то, что делают девелоперы.
Претензии к тому, что база тормозит - сделайте так, чтобы база не тормозила.
База справляется с нагрузкой из множества легких запросов - всё, спасибо, до свидания. Если база не тормозит, а application layer тем не менее еле дышит - ну и претензии будут к создателю application layer. А вовсе не к местному Наполеону на должности админа. Наполеон свою работу выполнил.

ЛП
Девелоперы будут переписывать ресурсоемкие куски.

А прелесть иногда состоит в том что - нету их, ресурсоемких запросов :)
Я не говорил "ресурсоёмкие запросы".
Но даже если их не было, этих ресурсоёмких запросов - они могут появится, стараниями девелоперов, или DB-девелоперов, но никак не стараниями админа.

Странно. Создание запросов доверили же девелоперу, для которого представляет сложность хотя бы просто спросить - как следует делать. Я уж не говорю о том, чтобы почитать что-нить по теме.
Ну это тем более не входит в компетенцию местного Наполеона - заботиться о профессионально уровне девелоперов. Об этом позаботятся либо они сами, либо их руководитель (в плохих случаях отдел кадров).

ЛПНет, в той конторе взяли девелопера - спеца по другой БД. Ну и студентов подтянули до нужного уровня.
А нафига ж там брали то "спеца по другой БД"? Девелоперы бы сами справились - классы, ооп, лейеры, тайеры, все дела....
Ну да, классы, лейеры, тайеры. Там была куча лейеров, но увы всего два тайера. И куча оракл-наполенов вместо искомого оракл-админа (девелопер типо был).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284204
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПА не надо (Вам - не надо) оптимизировать то, что делают девелоперы.
Претензии к тому, что база тормозит - сделайте так, чтобы база не тормозила.

:) Порадовали.
Оптимизировать - не надо.
Надо, чтобы не тормозило

затейник вы, батенька.
Однако, по прежнему - чудеса у нас в соседнем разделе
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284205
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlockyБолее того. мне кажется, что даже если я дам вам код и спрошу "что здесь не так" - вы мне не сможете ответить.


Код: plaintext
UPDATE WHBATCH SET ST=- 1 ,PDATE=getdate(),POWNER='@OWNER'  WHERE ID = :ID and WHST= 2 ;
что здесь не так?

Код: plaintext
1.
2.
declare @B bit
set @b = null

что здесь не так?

зы а у вас, по меньшей мере, не указана схема. что, вообще говоря, не есть гуд.
Плюс есть еще один момент, озвучивать который я не буду, дабы не вызывать "праведный гнев" и вопли "документировать надо!". Знаем мы как девелоперы документацию ведут :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284207
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
ЛПА не надо (Вам - не надо) оптимизировать то, что делают девелоперы.
Претензии к тому, что база тормозит - сделайте так, чтобы база не тормозила.

:) Порадовали.
Оптимизировать - не надо.
Для тупых повторяю:
Вам (админу) не надо оптимизировать то, что сделали девелоперы .

Надо, чтобы не тормозило
Ага. Надо, чтобы сервак справлялся с нагрузкой из кучи мелких запросов к базе, в которой дцать таблиц с данными и ноль целых хер десятых кода.
Справились - спасибо, до свидания.
Не справились - тем более до свидания, но уже без спасибо.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284208
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПДля тупых повторяю:
Вам (админу) не надо оптимизировать то, что сделали девелоперы .

Можете повторить это еще раз. М.б., скажем, те же девелоперы наконец-то поймут, мол "самим нужно думать"


ЛПАга. Надо, чтобы сервак справлялся с нагрузкой из кучи мелких запросов к базе, в которой дцать таблиц с данными и ноль целых хер десятых кода.

Чудеса, друг мой, они в соседнем разделе
Точнее, не то чтобы в соседнем разделе - но за совершенно иные деньги. По больше части - за железо. Советы я могу и бесплатно дать, так уж и быть :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284209
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
Точнее, не то чтобы в соседнем разделе - но за совершенно иные деньги. По больше части - за железо.
Вполне нормально, кстате.
Железа сейчас много и разного, денег стоит вполне вменяемых...

Советы я могу и бесплатно дать, так уж и быть :)
... зато ненужные советы железо даже и не пытается давать. И не рассуждает - кому, сколько и каких книжек читать.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284211
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП2 locky
Точнее, не то чтобы в соседнем разделе - но за совершенно иные деньги. По больше части - за железо.
Вполне нормально, кстате.
Железа сейчас много и разного, денег стоит вполне вменяемых...

Советы я могу и бесплатно дать, так уж и быть :)
... зато ненужные советы железо даже и не пытается давать. И не рассуждает - кому, сколько и каких книжек читать.
хм :)
Вы забавный.
насчет железа - это правда, железа сейчас много, самого разного.
но, как по мне, глупо выкидывать паре десятков тысяч баксов только из-за того, что девелоперы страдают врожденной косорукостью. Тем паче что решение проблемы будет ну совершенно временной :)

Дело в том, что однажды появляется умнейший девелопер, который отлично постиг дао ООП, разбирается в сетерах и гетерах, знает всё об экономии памяти и бизнес объектах.
И в лучший традициях сей студиоус лабает датаакцеслейер (для презентейше тайера), при помощи ОРМ (а также WPF и прочих модных штук).
И вместо банального до тошноты запроса select * from SomeTable, призванного извлечь пару сотен записей из настроечной таблички (к примеру), сей зело разумный отрок генерирует пару десятков тысяч простых запросов (например - получить список идентификаторов записей, дабы составить список объектов; для экономии памяти сей отрок не вычитывает всё содержимое строки за раз, а пишет умный геттер, который дёргает базу для получения значения) и всё в том же духе.

ну а потом, разумеется, возникает вопрос - с какого бодуна сервер то так тормозит то и медленно работает? И не нужно бы нам купить еще пару-тройку камней (да побольше, побольше!), а то, знаете-ли, не справляется он...
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284212
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
насчет железа - это правда, железа сейчас много, самого разного.
Не только разного, но еще и дешевого и производительного. По сравнению с совсем недалёкими годами в прошлом - очень дешевого, и очень производительного.

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

То есть вот как бы так получается. Либо платить немаленькую зарплату админу и выслушивать его советы (ага, хвост даёт люлей собаке), либо выгнать админа и купить новый сервак, решив тем самым проблему на какое-то время.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284213
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛПНе только разного, но еще и дешевого и производительного. По сравнению с совсем недалёкими годами в прошлом - очень дешевого, и очень производительного.

ну да, ну да :)

ЛП
Решение - да, временное. Но оно является решением хотя бы на время. Тогда как админ, сыплющий советами, решением не является.

Разумеется, временное. До следующего мудрого класса. А потом - новый сервер (благо, дёшев).
(замечу так, для галочки - исправление кода обойдётся баксов в 5, примерно).


ЛП
То есть вот как бы так получается. Либо платить немаленькую зарплату админу и выслушивать его советы (ага, хвост даёт люлей собаке), либо выгнать админа и купить новый сервак, решив тем самым проблему на какое-то время.
:) Да, решить проблему. на неделю, где-то. В одной точке.
Если же точек, скажем, порядка двух сотен.... надо бы побольше админов выгнать, чтобы купить побольше серверов
И не забывать это повторять раз в неделю.

Глупости вы, любезный, говорите.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284214
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky(замечу так, для галочки - исправление кода обойдётся баксов в 5, примерно).
Блин, я и забыл, что разговариваю с волшебником, который умеет лечить по фотографии, причем даже при отсутствии фотографии :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284215
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жалко только, что волшебник админить не умеет :(
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284287
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmlockyБолее того. мне кажется, что даже если я дам вам код и спрошу "что здесь не так" - вы мне не сможете ответить.


Код: plaintext
UPDATE WHBATCH SET ST=- 1 ,PDATE=getdate(),POWNER='@OWNER'  WHERE ID = :ID and WHST= 2 ;
что здесь не так?

Код: plaintext
1.
2.
declare @B bit
set @b = null

что здесь не так?

зы а у вас, по меньшей мере, не указана схема. что, вообще говоря, не есть гуд.
Плюс есть еще один момент, озвучивать который я не буду, дабы не вызывать "праведный гнев" и вопли "документировать надо!". Знаем мы как девелоперы документацию ведут :)
что попало уже пошло. Все то вы знаете, учите разработчиков.. смешно просто.

p.s. у меня там не схема не указана (жесть!), а попытка отправить в корзину документ утвержденный к отгрузке (whst=2). Не знали? А откуда бы вам знать. Во-первых, никто вас не будет ставить об этом в известность, а во-вторых, это все описано в документации, к которой вы не будете иметь доступа. Ваше дело за базой следить, архивы делать, правильно по дискам распределять и т.п.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284289
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по моему пуп земли развязался. Что уже похожее на бред пошло.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284375
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По теме топика:
Сама бизнес-логика приложения конечно-же не должна быть в ХП на сервере. Обьясняется это тем, что построив логику таким образом мы получим функциональную декомпозицию системы, а не объектную, как при ООП. Функциональная декомпозиция хуже устойчива к изменениям, т.к. функции имеют бОльшую тенденцию к изменению, чем объекты. Т.е. помимо более развитого языка программирования, ООП само по себе в этом смысле лучше.
А когда создали объектную модель, то можно думать как именно ее маппить и на что. Точнее, мы должны иметь (в идеале) 3 модели: сущностную, объектную и модель БД. Сущностная создается первой, на ее основе выводятся две остальные (правда некоторые уважаемые люди утверждают, что сущностная модель излишна, т.к. ее тоже надо сопровождать, но имхо это окупается).
Т.к. объектная модель отличается от реляционной, то надо их как-то друг с другом подружить. Это либо делается с помощью ОРМ (либо пишутся свои велосипеды).
Многие ОРМ (и самописные велосипеды) умеют маппиться на ХП, так что тут появляется 2 варианта - маппить сущности на ХП, или напрямую на таблицы (есть промежуточные вариант - на вью).
С таблицами получается быстрее всего, но и возможных проблем тоже больше. Мне лично больше нравиться вариант ХП, т.к. это инкапсулирует структуру БД и запросы, что позволяет ее менять и настраивать производительность без необходиомсти трогать клиентов. ДБА сможет изменять таблицы, вводить денормализацию, индексированные вью и прочее. Однако это приводит к невозможности написания объектных запросов напрямую программистами (например на linq), приходится писать ХП, создавать под него методы и прочее. Однако хуже это или лучше бабушка надвое сказала, т.к. ХП метода поиска опять-таки может быть оптимизирована ДБА
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284387
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис ИльинНу, плейсхолдеры особенно и не нужны.
Лично мне хватает возможности передавать в хранимую процедуру в качестве параметра какой нибудь XML. Вот честно - из почти 2-х тысяч хранимок динамический sql только в 5..6..и штучках, и то - в процедурках административного характера, пользователь их даже и не зовёт.
нашел чем хвастаться ... 2000 хранимок.. с ума сойти
полная лажа
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284464
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
p.s. у меня там не схема не указана (жесть!), а попытка отправить в корзину документ утвержденный к отгрузке (whst=2). Не знали? А откуда бы вам знать. Во-первых, никто вас не будет ставить об этом в известность, а во-вторых, это все описано в документации, к которой вы не будете иметь доступа. Ваше дело за базой следить, архивы делать, правильно по дискам распределять и т.п.
а также следить, дабы ваше поделие работало с более-менее приемлимой скоростью. И желательно, дабы ваше поделие не требовало для себя установки отдельного инстанса сервера, а могло быть проинсталлено на уже имеющийся инстанс.

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

Особенно меня порадовало "описано в документации". Чудеса, повторяю, в соседнем отделе.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284466
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmВсе то вы знаете, учите разработчиков.. смешно просто.

Ну, всё не всё, но что касается доступа к БД - многое.
По крайней мере, я занимаюсь только этим, в течение всего рабочего времени.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284469
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,

это очень плхохо :(
SQL сервер - просто прога и не самая важная, просто монополисты вдолии в башку клиентов, что без скула никуда, вот и приходится это дерьмо пользовать
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284474
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифовlocky,

это очень плхохо :(
SQL сервер - просто прога и не самая важная, просто монополисты вдолии в башку клиентов, что без скула никуда, вот и приходится это дерьмо пользовать
Не самая важная, согласен.
но без неё - никуда.
Посему - извольте юзать её нормально и прислушиваться к советам, которые дает специалист по этой проге.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284476
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов,

а для эстетов - есть флет-файлы и "компутерые с бесконечным быстродействием".
Фантастика у нас по прежнему - в соседней разделе.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284481
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerS Однако хуже это или лучше бабушка надвое сказала, т.к. ХП метода поиска опять-таки может быть оптимизирована ДБА

Да хуже некуда.
Я создаю метод, который вызывает метода (ХП).
Пока СКЛ не станет частью IDE будет гемор. Да и воще много там говна. Че только стоит
Select 'Эшак' as Человек from Самолет;
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284483
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyСахават Юсифов,

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

Что бы добиться более-менее производительности, приходится писать не то что надо,а то что может переварить низкоуровневый скул-динозавр, который остался мыслить на уровне рекорда.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284489
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават ЮсифовЧто бы добиться более-менее производительности, приходится писать не то что надо,а то что может переварить низкоуровневый скул-динозавр, который остался мыслить на уровне рекорда.
что называется - вы просто не умеете ЭТО готовить :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284491
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,

да ладно
даже на кодасил были целные струкутуры
СКЛ для детских задач, а приходится пользовать для взрослых
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284492
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafm
p.s. у меня там не схема не указана (жесть!), а попытка отправить в корзину документ утвержденный к отгрузке (whst=2). Не знали? А откуда бы вам знать. Во-первых, никто вас не будет ставить об этом в известность, а во-вторых, это все описано в документации, к которой вы не будете иметь доступа. Ваше дело за базой следить, архивы делать, правильно по дискам распределять и т.п.
а также следить, дабы ваше поделие работало с более-менее приемлимой скоростью. И желательно, дабы ваше поделие не требовало для себя установки отдельного инстанса сервера, а могло быть проинсталлено на уже имеющийся инстанс.

если вдруг потребует и вы этого не поймете, то поймет другой, а вы будете искать имеющийся инстанс.

lockyтак, теперь что касается поиска ошибок в вашем гениальном коде.
как минимум, в вашем коде не фиксируется кто сделал изменение и вообще - не ведётся история изменения состояния документа, что, вообще говоря, чревато.
проверить же все точки изменения состояния документа представляет из себя сложную задачу, т.к. код для изменения состояния вероятнее всего не сосредоточен в одном методе (по крайней мере вы не можете дать такую гарантию).
Особенно меня порадовало "описано в документации". Чудеса, повторяю, в соседнем отделе.
Вы это определили по одному SQL предложению? Позовите Вия уже.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284496
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyизвольте юзать её нормально и прислушиваться к советам, которые дает специалист по этой проге.
чур меня.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284497
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,

знаешь почему скл не развивается?
потому что нет возможности
как только заменишь форинкей на уровне таблиц на че нить другое, сразу облом
а такая целостность пудовые гири на ногах
все прогерство последние 5 лет занято изобретением прослойки над этой фигней
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284505
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmесли вдруг потребует и вы этого не поймете, то поймет другой, а вы будете искать имеющийся инстанс.

Если вдруг потребует - инстанс я ему подыму. Но обычно проблема в другом - в том, что "гениальные поделия" в силу тех или иных причин - не могут жить совместно с другими приложениями.


iscrafm
Вы это определили по одному SQL предложению? Позовите Вия уже.
А других там рядом нету.
И есть ли другие из вашей свалки кода выяснить весьма затруднительно.
Но вообще - да, по одной строке кода я это определил. И даже уже вижу еще одну потенциальную проблему. Которую, видимо, не видите вы.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284508
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень похоже на то, что появление среднего слоя и перенос на него логики обязано подобному общению с ДБА.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284510
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmочень похоже на то, что появление среднего слоя и перенос на него логики обязано подобному общению с ДБА.
Разумеется.
Ведь когда у ДБА нет доступа к коду - девелопер может делать умный вид, надувать щеки и важничать - никто ведь не может СРАЗУ сказать, что у него - фиговый код
Но, как обычно, девелопер ошибается на все 100%.
ДБА рано или поздно получит 80% кода девелоперов - и раскажет тем, как надо родину любить.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284512
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafm
Вы это определили по одному SQL предложению?

А других там рядом нету .

И есть ли другие из вашей свалки кода выяснить весьма затруднительно.


Где логика?

lockyНо вообще - да, по одной строке кода я это определил. И даже уже вижу еще одну потенциальную проблему. Которую, видимо, не видите вы.
заинтриговали.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284513
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,

а чего стоит дебилизм под название управление правами - брррр, права на колумн!!!!!(а кто то на запись, и радуется при этом - фича!!)
Вся моща СКЛ сосредоточено не там где надо (на таблицах)
Основная штука (граф связей) не используется практически, что приводит к детским вещам типа - СКЛ не может упорядочить изменения что бы понять - целостен ли весь пакет изменеий, проще сказать - конфликт :), там где и помине нет конфликта
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284515
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyкак обычно, девелопер ошибается на все 100%.
ДБА рано или поздно получит 80% кода девелоперов - и раскажет тем, как надо родину любить.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284518
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

ну он то воще непричем
скорее всего он и вправду лучше знает ту прогу на которой работает, чем ты или я
но суть то не в этом
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284519
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

судя по всё учащающимся личным выпадам с вашей стороны - нормальной аргументации у вас не осталось (даже если предположить, что оная была).
Очень жаль.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284520
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
суть в том, что ХП и триггеры не компенсируют слабость матаппарата
(интересно, будет флейм или нет? :))
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284522
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сахават Юсифов,

флейма не будет.
Девелоперы не готовы.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284525
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,

ну твы решил игнорировать мои выпады :)
но я закончу
подход к позиционироваию матаппарата (хранение данных для генерируюущей логики) неправильный
реализация подхода кривая
это фигня нужна там, где генерирующая данные логика и логика использования данных не перескаются (так и называли раньше БАНК ДАННЫХ)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284527
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafm,

судя по всё учащающимся личным выпадам с вашей стороны - нормальной аргументации у вас не осталось (даже если предположить, что оная была).
Очень жаль.
шутить изволите?
прочтите себя чуть выше. Аргументации чего? Что 1 (одно) SQL предложение это не свалка кода?
Что 100% разработчиков не ошибаются? Или того, что ДБА администрирует рабочую плошадку для приложений, которые создает разработчик?
После того, как в топике пошли какие-то галюцинации, вся аргументация сводится только к поиску смешных картинок.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284529
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,

кстати, многие вопросы остались без ответов. Так откуда появляются те базы, которые вы админите?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284531
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
вся аргументация сводится только к поиску смешных картинок.
А до этого вы искали смешные фразы

Впрочем, с вами почти всегда интересно. Вы постоянно подбрасываете небольшие изречения, которые я с вашего согласия включу в свой цитатник речей девелоперов.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284534
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyВпрочем, с вами почти всегда интересно. Вы постоянно подбрасываете небольшие изречения, которые я с вашего согласия включу в свой цитатник речей девелоперов.
пожалуйста.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284537
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlocky,

кстати, многие вопросы остались без ответов. Так откуда появляются те базы, которые вы админите?
Судя по изначальному содержимому - самозарождаются в корзинах с грязным бельем.
а что?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284545
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmlocky,

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

p.s. locky, ничего личного. Речь уже идет о сферическом админе, мировозрение которого вы озвучиваете.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284549
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

При вскрытии не обнаружены НИКАКИЕ структуры (ни тебе списков, ни деревьев, ни графа, ни стека, ни очереди...) хотя называлась СКЛ
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284551
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
если продолжить вашу мысль, то наверное потом за дело берется админ и из грязной тряпки делает флаг?
p.s. locky, ничего личного. Речь уже идет о сферическом админе, мировозрение которого вы озвучиваете.
Ну, флаг не флаг, но работать это начинает с более-менее приемлимым качеством.
Чтобы из этого получился флаг нужно было изначально по крайней мере советоваться с ДБА - в конце концов это одна из его основных задач - предоставлять консультации по работе с БД.
Вы ведь сами писали - девелоперу необходимы относительно небольшие знания в этой части, он действительно может не знать всех аспектов и нюансов.

Однако многие девелоперы трансформируют фразу "не обязательно знать всё" во фразу "я знаю всё что нужно" - а это, вообще говоря, неправильно.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284552
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати... наверняка настоящий админ, как истинный знаток, обеспечивает предприятие, на котором работает, всем необходимым программным обеспечением, лишенным свалки грязного кода.
хотя... хм.. Он же в этом случае станет разработчиком. А нет ничего хуже, чем нелюбовь к себе. Мистика какая-то...
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284555
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,

разработчики используют интерфейсы, которые предоставляет СУБД, штатно. Задача конкретного ДБА - обеспечить безупречную работу этих интерфейсов на своей площадке.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284559
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlocky,

разработчики используют интерфейсы, которые предоставляет СУБД, штатно. Задача конкретного ДБА - обеспечить безупречную работу этих интерфейсов на своей площадке.


глубочайшая ошибка, величайшее заблуждение.
Задачей ДБА также является консультирование разработчиков на тему "как лучше использовать СУБД", в противном случае всё вырождается в требования к ДБА "обеспечить время выполнение запроса не более 0.001 секунды", для запросов с кросс-джойном десяти таблиц по 100м записей
А чудеса (устал уже повторять) - в соседнем разделе.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284560
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmкстати... наверняка настоящий админ, как истинный знаток, обеспечивает предприятие, на котором работает, всем необходимым программным обеспечением, лишенным свалки грязного кода.
хотя... хм.. Он же в этом случае станет разработчиком. А нет ничего хуже, чем нелюбовь к себе. Мистика какая-то...
Разработчиком может стать любой индивид, способный более-менее успешно попадать по кнопкам.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284561
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyА чудеса (устал уже повторять) - в соседнем разделе.
соседний раздел - это что?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284564
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlockyА чудеса (устал уже повторять) - в соседнем разделе.
соседний раздел - это что?
Это где-то рядом. Рекомендую спросить у Малдера.
Или у того самого девелопера, который всё знает лучше всех.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284572
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,
цирк какой-то. Весело с вами. Давайте поговорим на тему посылок счастья предприятиям, которые отправляет сферический ДБА, с вашими взглядами. Итак... предприятие на котром он работает, как я понял, использует исключительно его гениальные БД? Если бизнесу требуется решить какую-то задачу, то к нему (ДБА) на поклон направляется разработчик и получает все что сможет унести, и побои и унижения (с). Через некоторое время ДБА проверяет кучу грязного белья, принесенную разработчиком, и устраивает чистку. Бизнесу в это время лучше не высовываться, потому что страшен ДБА в гневе, вызванном вонючими носками (или что там в корзине). Хотя стоп... какой разработчик, остался же только ДБА. В общем, мистика
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284574
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

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

и только мудрых, но уставший от суеты ДБА, тихо сидя в своем кабинете, грустно улыбается в седые усы и думает, насколько всё было бы проще и лучше, если бы от каждого брали "по способностям".
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284576
Сахават Юсифов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

и главно то что он разоваривает токо с приглнувшимся разарботчиком
остальные его ДБАшества пофиг :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284579
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmкстати... наверняка настоящий админ, как истинный знаток, обеспечивает предприятие, на котором работает, всем необходимым программным обеспечением, лишенным свалки грязного кода.
хотя... хм.. Он же в этом случае станет разработчиком. А нет ничего хуже, чем нелюбовь к себе. Мистика какая-то...
Разработчиком может стать любой индивид, способный более-менее успешно попадать по кнопкам.
продолжая вашу мысль... А ДБА нужно родиться.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284582
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmпродолжая вашу мысль... А ДБА нужно родиться.
Ты знаешь, наверное, да.
Потому как вообще говоря - работа довольно специфическая, и даже местами - очень скучная.
Даже так - ОЧЕНЬ СКУЧНАЯ.
Требующая внимательности и временами - недюжиной фантазии и воображения.
В общем - работа на любителя, что называется.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284583
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafm,

нет, вы немного неправы.
На предприятии девелоперы творят что хотят
это что за предприятия такие?


lockyи только мудрых, но уставший от суеты ДБА, тихо сидя в своем кабинете, грустно улыбается в седые усы и думает, насколько всё было бы проще и лучше, если бы от каждого брали "по способностям".
...и каждому давали "по потребностям"
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284584
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmэто что за предприятия такие?
Ну то, гипотетическое, идеальное по вашим понятиям :)

iscrafm...и каждому давали "по потребностям"
Да, разумеется. Потому как если объективно девелоперу под задачу нужен сервер начального уровня, а он требует "зверь-машину" - значит, перебъется девелопер.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284585
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,
если работа требует фантазии и воображения, то она уже определенно не может быть скучной. имхо
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284590
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlocky,
если работа требует фантазии и воображения, то она уже определенно не может быть скучной. имхо
Еще одно величайшее заблуждение.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284595
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmlocky,
если работа требует фантазии и воображения, то она уже определенно не может быть скучной. имхо
Еще одно величайшее заблуждение.
что-то полная депрессия. Разработчики мусор подкидывают, работа скучная... Да еще все кругом заблуждаются.

Иван ВасильевичВот вы говорите, царь, царь... А вы думаете, Марья Васильевна, нам, царям, легко? Да ничего подобного! Обывательские разговорчики. У всех трудящихся два выходных дня в неделю. Мы цари работаем без выходных. Рабочий день у нас ненормированный.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284597
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmчто-то полная депрессия. Разработчики мусор подкидывают, работа скучная... Да еще все кругом заблуждаются.

Ну а что ж ты хотел то? Это и есть нормальное течение жизни - всё по плану, всё скучно, без всякого героизма, строго по плану.

Что же касается заблуждений - дык, так оно и есть.
Вот взять хотя бы вас. Вы через раз заблуждаетесь, а через раз сами себе противоречите.
Вот это - не скучно, это - весело.
А в работе... А что в работе. Там неожиданностей быть не должно. И не допускаем, собственно.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284606
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyВот взять хотя бы вас. Вы через раз заблуждаетесь, а через раз сами себе противоречите.

не перепутали? Где логика - вопрос к вам, звучавший неоднократно, к сожалению, без ответа... О чем речь идет?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284621
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlockyВот взять хотя бы вас. Вы через раз заблуждаетесь, а через раз сами себе противоречите.

не перепутали? Где логика - вопрос к вам, звучавший неоднократно, к сожалению, без ответа... О чем речь идет?
О вас, любезный, о вас.
Например, вы что там декларировали?
"Ваше дело за базой следить, архивы делать, правильно по дискам распределять и т.п."? И, как я понял "из недосказанного" - не лезть в предметную область - девелоперы знают, что делают?
Я ничего не исказил?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284623
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,
нет, не перепутали. Разработчики действительно знают что делают (особые случаи конечно не рассматриваются). Только о чем это?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284627
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlocky,
нет, не перепутали. Разработчики действительно знают что делают (особые случаи конечно не рассматриваются). Только о чем это?
Окей, значит, я не перепутал.
Однако, вы приводите пример кода и спрашиваете - "что в нём не так".
Я даю вам рекомендацию исключительно со своей точки зрения - с точки зрения перформанса, а не с точки зрения предметной области.
Однако вы делаете "умный вид" и заявляете, мол - "ошибка в предметной области и нельзя кого-то там относить в корзину". Рекомендацию по перформансу вы, судя по всему, даже не поняли.
Было такое?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284631
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky, о да! dbo. - серьезный перформанс.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284636
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmlocky, о да! dbo. - серьезный перформанс.
Вообще говоря - да.
В том случае, если у вас порядочное к-во объектов в базе, и на сервер сыпется масса относительно небольших динамических запросов - то таки да, это может дать существенный прирост.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284658
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmlocky, о да! dbo. - серьезный перформанс.
Вообще говоря - да.
В том случае, если у вас порядочное к-во объектов в базе, и на сервер сыпется масса относительно небольших динамических запросов - то таки да, это может дать существенный прирост.
в случае, который я привел, этот прирост значительно меньше усилий на написание dbo.... К тому же какой-то выигрыш это даст если в БД много юзеров, разные схемы, много процедур, чтобы не конфликтовали блокировки при перекомпиляции... но это все фантазии.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284674
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmв случае, который я привел, этот прирост значительно меньше усилий на написание dbo.... К тому же какой-то выигрыш это даст если в БД много юзеров, разные схемы, много процедур, чтобы не конфликтовали блокировки при перекомпиляции... но это все фантазии.
Ну, усилий на написание имя схемы требуется совсем чуть-чуть.
Насчет всего остального - вы совершенно правы. в программных комплексах по учету выданных фуфаек всё это играет не слишком значительную роль :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284677
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmв случае, который я привел, этот прирост значительно меньше усилий на написание dbo.... К тому же какой-то выигрыш это даст если в БД много юзеров, разные схемы, много процедур, чтобы не конфликтовали блокировки при перекомпиляции... но это все фантазии.
Ну, усилий на написание имя схемы требуется совсем чуть-чуть.
Насчет всего остального - вы совершенно правы. в программных комплексах по учету выданных фуфаек всё это играет не слишком значительную роль :)
ну не скажите. Билинг фуфаек - это серьезно. Просто некоторые админы советуют строить базы таким образом, чтобы у них было с чем возиться. Например загнать в СУБД 500 юзеров, все операции редактирования табличек оформить в виде хранимых процедур, причем чем больше, тем лучше (выше проскакивала цифра 2000). А без всего этого искуственного геммороя - нет смысла жизни, скучно.

Иван ВасильевичУ меня вот тоже один такой был. Крылья сделал. - Ну-ну-ну-ну... - Что ну-ну. Я его на бочку с порохом посадил. Пущай полетает.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284684
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmну не скажите. Билинг фуфаек - это серьезно. Просто некоторые админы советуют строить базы таким образом, чтобы у них было с чем возиться. Например загнать в СУБД 500 юзеров, все операции редактирования табличек оформить в виде хранимых процедур, причем чем больше, тем лучше (выше проскакивала цифра 2000). А без всего этого искуственного геммороя - нет смысла жизни, скучно.

искуственный гемор - это когда толпа полоумных девелоперов гонят чёрти какие запросы к базе, когда для выполнения тривиальных задач требуется совершенно нетривиальные железки и ПО, когда для выяснения - откуда же блин берутся такие данные (или куда они деваются) приходится устанавливать полный аудит - ведь черт его знает - кто, как и откуда осуществляет доступ.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284692
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyiscrafmну не скажите. Билинг фуфаек - это серьезно. Просто некоторые админы советуют строить базы таким образом, чтобы у них было с чем возиться. Например загнать в СУБД 500 юзеров, все операции редактирования табличек оформить в виде хранимых процедур, причем чем больше, тем лучше (выше проскакивала цифра 2000). А без всего этого искуственного геммороя - нет смысла жизни, скучно.

искуственный гемор - это когда толпа полоумных девелоперов гонят чёрти какие запросы к базе, когда для выполнения тривиальных задач требуется совершенно нетривиальные железки и ПО, когда для выяснения - откуда же блин берутся такие данные (или куда они деваются) приходится устанавливать полный аудит - ведь черт его знает - кто, как и откуда осуществляет доступ.
Шок - это по нашему! Сезон 2009.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36284735
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
искуственный гемор - это когда <sensored> гонят чёрти какие запросы к базе, когда для выполнения тривиальных задач требуется совершенно нетривиальные железки и ПО, когда для выяснения - откуда же блин берутся такие данные (или куда они деваются) приходится устанавливать полный аудит
хотя согласен конечно, это действительно утомительно. Правда это не совсем developer-dba тема, потому что могут быть как на одной стороне подобные пробои, так и на другой. Если в бессознательном состоянии делать что-то.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36286030
MGY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!MGYНичего не понял причем тут фенсед и препроцессор, и подстановка фетчей ?
при том, что pl/sql имеет общее с субд адресное пространство, а sqlj в db2 это внешний и чуждый для субд процесс

Может я чего не понял но тут сравнивали, я так понял, возможности оракл и дб2, а сравнивать велосипед с феррари никто и не собирался.
Если говори о тормознутости жава в хранимых дб2, то следует аналогии проводить из других субд именно с жавой.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36286533
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!sqlj в db2 это внешний и чуждый для субд процесс который лезет в базу через тот же JDBC. просто писанины чуть меньше. Забавно, а почему взята статья именно от 2003 года? Там еще за 2000 найти можно, еще раритетнее :)
На самом деле, даже в приведенной Вами сказано, что SQLJ использует коннект от JDBC для получения ConnectionContext, а не "лезет через него в базу". А в случае SP и его не использует - коннект-то там уже есть.
JDBC работает с динамическими запросами, а SQLJ обращается к уже скомпилированным пакаджам. Еще раз - при прекомпиляции запросы SQLJ превращаются фактически в вызовы "плана № X" на сервере, JDBC тут вообще никакого участия не принимает.
По поводу "чуждого" процесса - в DB2 есть 2 режима работы Java драйвера - type 2 и type 4. Type 2 является прослойкой над нативным для ОС клиентом, type 4 от него и ОС независим и сам писан на джаве. Для SP используется именно type 2, т.е. Java процедура работает практически как fenced процедура на C, например. Т.е. при локальном коннекте (в т.ч. в случае SP) вместо сетевых прелестей используется нормальное межпроцессное взаимодействие в рамках ОС (через shared memory, например).
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36286679
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Yo.!
К слову, при компиляции процедуры на SQL PL создают в БД фактически такие же пакаджи, содержащие скомпилированные в планы статические запросы и логику. Просто вызываются они тем же процессом, что и выполняются, а не "сторонним". Так что по сравнению с SQL PL "попадалово" для Java тут только на переключение контекстов и передачу данных в ОП.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36287247
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MGY
Если говори о тормознутости жава в хранимых дб2, то следует аналогии проводить из других субд именно с жавой.
почему именно с жавой ? вот у мсскл нет вменяемого варианта с жава, зато есть с .Net. важно не чем конкретно решается задача, а на сколько эффективно и удобно.
но даже если говорить о жава в том же оракле жава интегрирована в ядро субд, т.е. более тесно чем у db2.

2Favn

покажите более подробное описание, я не лингвист и фразу "The SQLJ runtime relies on a JDBC driver to obtain a database connection in order to access the database." понял, что access тоже тоже идет по jdbc.
мое рассуждение просто - раз жава отдельный процесс, чуждый к SQL значит от нее и к ней нужно гонять входящие/исходящие данные как не крути. оракл же может биндить pl/sql переменные сразу, не гоняя их через тормознутый jdbc и не конвертируя не совпадающие форматы. не понятно чем заменить %rowtype и иже с ним, никаких bulk insert/collect, отслеживаний зависимостей и сотни других важных фич.

к стате в бимерском sql pl есть какой-то error handling ?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36288731
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!почему именно с жавой ? вот у мсскл нет вменяемого варианта с жава, зато есть с .Net. важно не чем конкретно решается задача, а на сколько эффективно и удобно.К слову - любители могут писать SP/UDF на .Net и в DB2 :)
Yo.!но даже если говорить о жава в том же оракле жава интегрирована в ядро субд, т.е. более тесно чем у db2.Что значит "интегрирована"? Как я понимаю, у Оракл просто есть своя имплементация JVM, поставляемая с СУБД. Но у IBM тоже своя JVM и свой Java SDK, тоже поставляемые с DB2 и работающие с ней. Куда "интегрированней"? Или Оракл сам исполняет байт-код, в обход своей JVM? Тогда Java там должна быть быстрее PL/SQL - он-то, бедный, VM использует! ;)
Более того, бесплатно можно скачать IBM Data Studio, после чего в единой среде Eclipse со всеми ее вкусностями писать SP ( в т.ч. с удаленной отладкой) как на SQL PL, так и на Java. И там же с БД работать.

Yo.!покажите более подробное описание, я не лингвист и фразу "The SQLJ runtime relies on a JDBC driver to obtain a database connection in order to access the database." понял, что access тоже тоже идет по jdbc.В том контексте сие значит, что отдельное Java приложение использует JDBC для коннекта. Дальше SQLJ получает ConnectionContext и живет своей жизнью, используя JDBC только для динамических запросов. Подробнее здесь , но там много. :) В случае Java SP коннект уже есть, просто берется default. Еще раз - у JDBC и SQLJ общий драйвер . Работая в режиме type 2 он является надстройкой над клиентом DB2, т.е. в случае SP - над собственно native API сервера.
Yo.!мое рассуждение просто - раз жава отдельный процесс, чуждый к SQL значит от нее и к ней нужно гонять входящие/исходящие данные как не крути. оракл же может биндить pl/sql переменные сразу, не гоняя их через тормознутый jdbc и не конвертируя не совпадающие форматы.Опять - DB2 jdbc type 2 не более тормознутый, чем C CLI, например. И "гонять данные" нужно не больше, чем в SP на C, например. Или при native compilation PL/SQL (например, как вроде самый быстрый вариант PL/SQL) в вызовах процедур передача параметров не используется, оно само там как-то? :)
А приведение типов - да, для сложных типов нужно . И что, это большие потери? Кажется, мы договорились, что логику массированной обработки данных лучше делать в SQL PL, а внешние задачи - на Java.
Yo.!не понятно чем заменить %rowtype и иже с ним, никаких bulk insert/collect, отслеживаний зависимостей и сотни других важных фич.Трудно сказать, не разбираясь в Оракл, но навскидку:
1. %rowtype в Java - видимо ничем. Тем не менее, можно работать с возвращаемым rowset или параметром типа cursor. В SQL PL заменим на row data type .
2. bulk insert - в Java на batch update , который не только INSERT, но и все остальное, включая MERGE. Чем BULK COLLECT в SP лучше курсора - не понял, видимо это специфично для Оракл.
3. отслеживания зависимостей - именно для этого и существует SQLJ с хранимыми в БД package с запросами (к Oracle package и к Java package никакого отношения не имеют).
4. Про сотни важных фич - со столькими не знаком :) Но опять-таки подозреваю, что важны они именно для обработки данных, а для нее я Java SP и не предлагаю. А в самой Java как в универсальноq платформе важных фич - тьма.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36288767
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!к стате в бимерском sql pl есть какой-то error handling ?А как же! Только точнее - condition handlers. Если коротко - реагировать можно вообще на SQLEXCEPTION, SQLWARNING, NOT FOUND, или на что-то конкретное, в т.ч. пользовательское событие, выдаваемое SIGNAL .
Объявляем обработчик с нужным кодом, по завершении которого произойдет EXIT (из процедуры), CONTINUE или UNDO (последний - в ATOMIC блоках). В обработчике можно сделать RESIGNAL события.
Дальше пишем собственно SP, обработчики вызываются сами при возникновении заданных условий. Примеры тут , в конце.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36290513
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FavnЧто значит "интегрирована"? Как я понимаю, у Оракл просто есть своя имплементация JVM, поставляемая с СУБД. Но у IBM тоже своя JVM и свой Java SDK, тоже поставляемые с DB2 и работающие с ней. Куда "интегрированней"?
терминами ibm - в оракле жаба not fenced и живет в SGA, тесно интегрирована с типами и прочая. у db2 же интеграции по сути нет, ему по барабану даже, что там за jvm - хочешь хоть сановскую запускай, субд пофигу, кто там через драйвер jdbc/jsql лезет ...
еще раз java stored procedures в db2 это просто syntax shugar, на которую из jvm вешать не суть важно. вся интеграция сделана на уровне синтаксиса, а не на уровне архитектуры и структур памяти. у оркла примерно так же сторед процедуры на .net прикручены.

Favn Еще раз - у JDBC и SQLJ общий драйвер . Работая в режиме type 2 он является надстройкой над клиентом DB2, т.е. в случае SP - над собственно native API сервера.
это единый драйвер, он одинаково работает как c jdbc так и с sqlj, хрен с ним пусть в режиме type 2 но драйвер один и тормозной из-за жава прослойки.

Yo.!И "гонять данные" нужно не больше, чем в SP на C, например. Или при native compilation PL/SQL (например, как вроде самый быстрый вариант PL/SQL) в вызовах процедур передача параметров не используется, оно само там как-то? :)
про что я и толкую - само. SQL движек их возьмет из структур памяти pl/sql машины. а вот db2-шная fenced жава будет их гонять копии и их преобразовывать растрачивая ресурсы.

Java has its own set of supported data types. DB2 also has its own set of data types. As an example, the DB2 data type VARCHAR does not exist in Java. However Java has a String object that can be used instead. DB2 UDB has a set of "preferred" data type mappings that is best to use for Java applications and stored procedures
http://www.ibm.com/developerworks/data/library/techarticle/dm-0510law/index.html

Yo.! И что, это большие потери? Кажется, мы договорились, что логику массированной обработки данных лучше делать в SQL PL, а внешние задачи - на Java.
да, вроде уже раза два до этого договорились, но вы каждый раз выпячиваете жава как альтернативу pl/sql.
херовая она альтернатива в плане серьезного перелопачивания данных, если нужно серьезно перелопачивать много данных нужен нормальный, развитый язык 4GL с серьезной интеграцией с субд. а жаву, если уж и использовать, то как полноценное ООП (в виде 3-tier), а не процедуры на жаве лабать.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36296028
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нравится жаба ? Вот вам тогда альтернатива PL/SQL.
Заюзать Progress DB. Тогда родной для нее - язык Progress 4GL. И на нем где модуль обработки событий клиентского ввода, а где триггерная функция - не разберешь. И выполняются в одном месте.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36301893
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наконец нашел время почитать про Oracle JVM.
Yo.!терминами ibm - в оракле жаба not fenced и живет в SGA, тесно интегрирована с типами и прочая. у db2 же интеграции по сути нет, ему по барабану даже, что там за jvm - хочешь хоть сановскую запускай, субд пофигу, кто там через драйвер jdbc/jsql лезет ...Начнем сначала - JVM есть интерпретатор намеренно простого байт-кода, плюс мусорщик, JIT и RTTI с рефлексией. Остальное - в библиотеках пакетов, к которым относится "драйвер" СУБД. Можно уточнить (или ссылочку дать) какие именно данные , с кем и по какому поводу делит сей механизм в SGA? Моей скудной фантазии не хватает, и мне кажется, что "субд пофигу" - верное описание. :)
Как я понял отсюда , основные фичи интеграции JVM в Оракл - это общий heap для read-only данных (хотя при чем тут СУБД?), управление мусорщиком шедулером Оракл и загрузка пакетов Java из СУБД. 1-е вполне соответствует not fenced Java в DB2 (с общей JVM). Остальное м.б. удобно, м.б. не очень - дело вкуса, но уж точно не решающее преимущество. И где тут SGA, или я что-то пропустил?
Yo.!это единый драйвер, он одинаково работает как c jdbc так и с sqlj, хрен с ним пусть в режиме type 2 но драйвер один и тормозной из-за жава прослойки.Теперь о драйвере DB2 - сдается мне, что тут у Вас путаница в терминах. Он "единый" только в том смысле, что упакован в единый пакет, но в него входят множество компонентов для разных режимов работы. Прочитал про 3 драйвера JDBC в Oracle:
1. JDBC Thin driver
2. JDBC OCI driver
3. JDBC server-side internal driver.
О чудо - полное соответствие с DB2! 1 - type 4, 2 - type 2, 3 - type 2 при работе на сервере (локальный коннект). Разница только в компоновке пакетов - 3 отдельных или 1 общий.
Заметим, что в любом случае "тормозная" Java прослойка есть, только в Оракл она общается с ОС не напрямую, а посредством Oracle Database libraries. Т.е. через еще одну прослойку. ;) С СУБД же они общаются примерно одинаково, причем не на уровне JVM, а на уровне "драйверов", т.е. интерфейсных библиотек.
Yo.!еще раз java stored procedures в db2 это просто syntax shugar, на которую из jvm вешать не суть важно. вся интеграция сделана на уровне синтаксиса, а не на уровне архитектуры и структур памяти. у оркла примерно так же сторед процедуры на .net прикручены.Еще раз - при чем тут JVM? Все дело в пакетах интерфейса с СУБД ("драйверах"), а не в JVM. А SQLJ является syntax shugar именно в Оракл, где он тупо превращается в JDBC вызовы:
"When your SQLJ application runs, the SQLJ run time calls JDBC to communicate with the database."
В DB2 же SQLJ, как и любой другой static SQL - принципиально другой способ работы, не использующий не только JDBC, но даже CLI (аналог OCI). Причем другой не только со стороны Java, но и со стороны СУБД. И возможная экономия ресурсов именно СУБД на выполнении запросов, а также иные вкусности, тут куда значительней затрат на копирование переменных. Кстати, о копировании.
Yo.!про что я и толкую - само. SQL движек их возьмет из структур памяти pl/sql машины. а вот db2-шная fenced жава будет их гонять копии и их преобразовывать растрачивая ресурсы.С PL/SQL - понятно, но то же самое, как я понял из Ваших утверждений, можно сказать и про Java в Oracle? Посмотрим на первый попавшийся пример :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
String name;
int id= 37115 ;
float salary= 20000 ;
PreparedStatement pstmt = conn.prepareStatement
("SELECT ename FROM emp WHERE empno=? AND sal>?");
pstmt.setInt( 1 , id);
pstmt.setFloat( 2 , salary);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
  name=rs.getString( 1 );
  System.out.println("Name is: " + name);
}
rs.close()
pstmt.close();
Я правильно понял, что в случае выполнения подобного кода в Oracle Java SP объект PreparedStatement на самом деле не будет создаваться и его методы, копирующие id и salary не будут выполняться? А name получит ссылку на область внутри SGA, без копирования данных? Хотелось бы посмотреть на ссылку на такие чудеса.
Yo.!As an example, the DB2 data type VARCHAR does not exist in Java. However Java has a String object that can be used instead.Что-то я не заметил, чтобы в примере выше вместо String использовалось что-то волшебное :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36302012
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!да, вроде уже раза два до этого договорились, но вы каждый раз выпячиваете жава как альтернативу pl/sql.
херовая она альтернатива в плане серьезного перелопачивания данных, если нужно серьезно перелопачивать много данных нужен нормальный, развитый язык 4GL с серьезной интеграцией с субд.Для серьезного перелопачивания как альтернативу я каждый раз "выпячиваю" SQL PL, и все еще не очень понимаю чем именно для этого он принципиально хуже. Скажу больше - перелопачивать куда эффективнее самим SQL. И что-то внешнее отн. СУБД куда лучше по возможности делать из UDF, вызывая их из SQL, не нагружая сервер своими представлениями о процедурах перелопачивания. И только если получается криво - в SP на Java, и только для "внешних" действий. Но тема топика - именно SP.
Yo.!а жаву, если уж и использовать, то как полноценное ООП (в виде 3-tier), а не процедуры на жаве лабать.Заметьте, не я это предложил! (с) ;)
И я полностью согласен, но в рамках данного разговора считал оффтопиком, имеющим отношение к проектированию. У нас, как правило, SP и table UDF на SQL PL используются для изоляции разработчиков на всяком PHP и т.д. от не вполне понятного им SQL, т.е. для абстрагирования и разделения задач. А внутри SP - в основном запросы, без всякой надобности в "универсальном" 4GL.
Так что да - в 3-tier оно лучше, но в Oracle по поводу Java SP все-таки тоже зачем-то заморочились. :)
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36302299
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Favn,

не пойму в чем смысл отрицать столь очевидное ? честно говоря мне не интересно обсуждать чья жава более тормознутая, но факты очевидны - оракл переколбасил жава, как в плане архитектуры (ту же стратегию гарбадж коллектора) так и в плане структур памяти (вот ссылка о jvm в SGA/PGA) . IBM же так заморачиваться не стал и гоняет обычную жаву, любую, хоть сановскую, ограничившись слегка подпиленными драйверами. если вы на полном серьезе считаете, что подпиленные драйвера, будь они хоть трижды более нативны дают основание считать что такая интеграция не менее тесна чем оракловая то аргументированный разговор у нас не получится.

далее по драйверам IBM, в том самом "driver for JDBC and SQLJ type 2" , точно та же жава прослойка "Drivers that are written partly in the Java™ programming language and partly in native code.", которая на OCI нифига не похожа. с чего вы взяли, что для sqlj в db2 используется что то другое, более нативное чем jdbc для меня так и осталось загадкой учитывая, что в доку четко сказано "The SQLJ runtime relies on a JDBC driver to obtain a database connection in order to access the database.".

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

ЗЫ. если вам хватает усеченного языка для полноценного реализации логики в SP я не спорю, просто лично я предпочел бы иметь полноценный универсальный язык усеченному, раз уж я решил писать SP.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36302718
Фотография Zhora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Actually there are 2 types of DBA now:
1. Regular DBA (storage, backups, user creation, etc...)
2. Application DBA (query optimization for already developed code)

Regarding original question: average time sp execution 2 times faster than embedded sql or api.
though as already mentioned if query plan is obsolete than it might be vise versa.

Relational model is beautiful and based on more or less strong mathematics.
OOP is just method to create better program code, do not see so far much mathematics there.
ORM things, LINQ does not work well.

I would prefer to have more table oriented languages on client like Oracle Forms, APEX, etc...,
which would allow to create user interface much faster then OOP does + good report writer
(Oracle Report, Crystal) + powerful server SQL language (PL/SQL is better than T-SQL , but anyway
there is absolutely no need in Java or VB on db server) - that' s all you need to create so-called business application.

SQL is progressing. New features, aggregate functions (Oracle, Sybase Anywhere).
Interesting idea now - convert everything (like linear programming algorithms, graph algorithms, etc..) to SQL (PL/SQL,T-SQL).

If you need references I could give you "ih vam".


Sorry for English,
Russian Virtual keyboard stopped working - msg about Compuserve ?
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36302739
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhoraЧто касается оригинального вопроса: среднее время исполнения Sp в 2 раза быстрее, чем у динамического (?) SQL или API.
хотя, как уже упоминалось, если план запроса является устаревшим, то может быть обратная ситуация.

Реляционная модель красивая и, более или менее, сильнее математически обоснована.
ООП просто метод для создания лучшего программного кода, но не ищите здесь математической подоплеки. ORM-ы, LINQ не являются образцом хорошей работы.

Я предпочел бы такие инструменты как Oracle Forms, APEX, и т.д. .., которые позволили бы быстро создать пользовательский интерфейс + хороший дизайнер отчетов (Oracle Reports, Crystal) + мощный серверный язык SQL (PL / SQL лучше, чем T-SQL, но, в любом случае, нет абсолютно никакой необходимости в Java или VB на сервере БД) - вот и все вам нужно для создания, так называемых, бизнес-приложений.

SQL развивается. Появляются новые функции, такие как аналитические (?) функции (Oracle, Sybase Anywhere). Интересная идея в настоящее время - конвертировать все (методы линейного программирования, графовые алгоритмы и т.д..) в SQL (PL / SQL, T-SQL).
имхо, сложный алгоритмический язык позволяет отключить мозговую "декомпозцию" для разложения алгоритма на примитивы, не все это могут. Поэтому и востребовано. Хотя,... есть задачи, для решения которых действительно возможностей SQL может не хватать. Но это чистая системщина, типа генерации уникальных ключей определенного формата и т.п. Не царское (SQL) это дело подобными вещами заниматься
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36302755
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Zhora
Actually there are 2 types of DBA now:
1. Regular DBA (storage, backups, user creation, etc...)
2. Application DBA (query optimization for already developed code)
Второй упомянутый тип - это не DBA, а DBO (датабейз оптимайзер), младший брат SEO, внук администратора всея Руси ака локи :)

Regarding original question: average time sp execution 2 times faster than embedded sql or api.
Почему в 2? Почему не в 3? Почему не в 10? Для каких СУБД? Для каких БД? Для каких ХП?
Цифра с потолка, в общем. Для красного словца. К действительности не имеет отношения.

ORM things, LINQ does not work well.
Поподробнее можно?

SQL is progressing.
Ага. SQL is progressing. А его продедурные расширения стоят где стояли.
Открываю BOL, читаю чего нового придумали в T-SQL в 2008-ой версии.
Если отфильтровать DML (безусловно-развивающийся) и нейтральные мелочи типа "Улучшенная функция CONVERT допускает преобразования между двоичными и символьными шестнадцатеричными значениями", то останется могучий улучшайзинг. Не могу не процитировать его из BOL:
Улучшенные способы программирования (компонент Database Engine)Доступны операторы, выполняющие операцию и присваивающие ее результат некоторой переменной, например SET @x += 2
Фсё. За три года разродились.

Как с таким "sql is progressing" могут приходить в голову мысли типа "convert everything (like linear programming algorithms, graph algorithms, etc..) to SQL (PL/SQL,T-SQL)" - чесслово, понять не могу.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36315671
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!не пойму в чем смысл отрицать столь очевидное? честно говоря мне не интересно обсуждать чья жава более тормознутаяВ том, что "очевидное" часто оказывается просто PR бредом, у любого вендора. И мне просто интересно разобраться в действительных механизмах работы.
А вот чья тормознутее - мне тоже не интересно. И Оракл, и IBM утверждают, что их JVM куда круче остальных, так что скорее всего примерно одинаково. :)
Намеки же на общую тормознутость жабы при наличии JIT и inline в runtime я рассматривать не буду. Все-таки не о GUI разговариваем.
Yo.!но факты очевидны - оракл переколбасил жава, как в плане архитектуры (ту же стратегию гарбадж коллектора) так и в плане структур памяти (вот ссылка о jvm в SGA/PGA) .Вот мерси, наконец-то информативная ссылка. Если я правильно ее осознал, то вся немерянная мощь переколбашивания заключается (для shared server) в выделении внутри SGA фиксированного Java pool memory, с которой и живет JVM. Особенно впечатлило:
"Because the Java pool memory size is fixed, you must estimate the total requirement for your applications and multiply by the number of concurrent sessions the applications want to create, to calculate the total amount of necessary Java pool memory. Each UGA grows and shrinks as necessary. However, all UGAs combined must be able to fit within the entire fixed Java pool space."
Делаю выводы:
1. Pool задается статически, без перебалансировки, т.е. его надо задавать с большим запасом и мириться с не оптимальным расходом на него памяти. Великолепная интеграция! :)
2. Понятно, что мусорщика переписали - раз память в SGA, ей и управлять надо с подачи Оракл СУБД, который этой SGA заведует. Мера вынужденная, и преимуществ тут не наблюдаю, т.к. pool все равно отдельный от всего остального.
Yo.!IBM же так заморачиваться не стал и гоняет обычную жаву, любую, хоть сановскую, ограничившись слегка подпиленными драйверами. если вы на полном серьезе считаете, что подпиленные драйвера, будь они хоть трижды более нативны дают основание считать что такая интеграция не менее тесна чем оракловая то аргументированный разговор у нас не получится.Я на полном серьезе со ссылками показал, что Oracle JVM с БД работает ровно так же, как и IBM JVM, с теми же 3-мя вариантами драйверов, за исключением SQLJ. Я не говорил, что кто-то более нативен, я говорил, что все одинаково. Вопросы управления памятью, как выяснилось, к интерфейсу с СУБД отношения не имеют.
Я так и не понял, почему именно "встроенная" Java является достоинством - может, просто не нашел. :) А вот недостатком в бюджетных лицензиях она может быть, т.к. тратит лицензируемые ресурсы. Да и в XE не входит.
Yo.!далее по драйверам IBM, в том самом "driver for JDBC and SQLJ type 2" , точно та же жава прослойка "Drivers that are written partly in the Java™ programming language and partly in native code.", которая на OCI нифига не похожа.Естественно, на Oracle OCI похожа DB2 CLI, а не Java-прослойка. "The JDBC OCI driver accesses Oracle-specific native code". Именно "accesses" через JNI, и в Оракл (OCI), и в DB2 (CLI). Еще раз - Java-часть тут просто прокси к OCI/CLI, для обеих СУБД. А написать "нативный" драйвер на Java без самой Java возможности нет, т.к. собственно JNI - это тоже часть Java, как и стандартная описательная часть классов JDBC. :)
Yo.!с чего вы взяли, что для sqlj в db2 используется что то другое, более нативное чем jdbc для меня так и осталось загадкой учитывая, что в доку четко сказано "The SQLJ runtime relies on a JDBC driver to obtain a database connection in order to access the database."Устал, но повторю - получить контекст коннекта от JDBC не значит использовать JDBC для собственно работы с данными, это просто стандартный для Java способ коннекта. Аналогично программа (SP) с embedded SQL на C может использовать коннект от CLI , не используя CLI собственно для работы (если не надо).
Цитата : "You can use one of six techniques to connect to a data source in an SQLJ program. Two use the JDBC DriverManager interface, two use the JDBC DataSource interface, one uses a previously created connection context, and one uses the default connection."
SQLJ не интересно, какой был коннект, он просто работает с его контекстом.
По поводу "более нативное чем jdbc" - посмотрите, скажем, Figure 2. Expansion of application layer . Видно, что SQLJ runtime работает не только мимо JDBC, но и мимо CLI, как и положено embedded SQL в DB2.
Принципиальная разница с Оракл в том, что при прекомпиляции не только проверяется синтаксис и связи, но в БД создается спец. объект - embedded SQL package , аналогов которому в Оракл нет. И если стандартный Java-пакет sqlj.runtime в Оракл дергает JDBC для выполнения SQL, в DB2 он просто обращается к выполнению определенного запроса внутри package, ничего не зная о собственно SQL этого запроса, минуя кучу стадий синт. разбора, переформулирования и, по умолчанию, оптимизации с построением плана. Фактически это прямой вызов готового плана выполнения, а не собственно запроса SQL.
Yo.!про бинд переменные в оракловой жаве однозначно не нашел (потому и не утверждал), но по косвенным признакам выглядит, что переменные гоняются от jvm к sql движку растрачивая ресурсы.Что еще раз показывает одинаковую работу JVM с БД что в Оракл, что в DB2.
Yo.!ЗЫ. если вам хватает усеченного языка для полноценного реализации логики в SP я не спорю, просто лично я предпочел бы иметь полноценный универсальный язык усеченному, раз уж я решил писать SP.Полостью согласен - вопрос вкуса. Для обработки данных я предпочитаю язык, код которого выполняется непостредственно SQL движком, а то и inline поставляется в текст запроса, а не живет на отдельной VM, как PL/SQL.
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36315715
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сравнили меня к SEO, да еще и обозвали "младшим братом". А я и огрызнутся не успел


-------------------------
There’s no silver bullet!
...
Рейтинг: 0 / 0
использование хранимых процедур
    #36317403
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Favn И мне просто интересно разобраться в действительных механизмах работы.
... Если я правильно ее осознал, то вся немерянная мощь переколбашивания заключается (для shared server) в выделении внутри SGA фиксированного Java pool memory, с которой и живет JVM.
не правильно поняли. shared server на то и эксзотика, чтоб все запихнуть в SGA, читайте внимательней о Dedicated варианте. структуры памяти жавы переколбасили по образу и подобию pl/sql, ну и раз уж вам "интересно разобраться" - ну почитайте, там не так много. реально в оракловой jvm переколбашено все, включая тхредовость.

Favn
Особенно впечатлило:
"Because the Java pool memory size is fixed, you must estimate the total requirement for your applications and multiply by the number of concurrent sessions the applications want to create, to calculate the total amount of necessary Java pool memory. Each UGA grows and shrinks as necessary. However, all UGAs combined must be able to fit within the entire fixed Java pool space."

было бы удивительно если бы жаве позволялось сожрать всю память и вырубить всю систему. причем опять же, поскольку жава пул интегрирован в SGA на него распространяется automatic memory management, который будет тюнить жабовские пулы в том числе. т.е. если вы вынуждены прописывать жестко JAVA_OPTS=" -Xmx800M", то оракл сможет "predict how changes in the size of the Java pool can affect the parse rate"

FavnМера вынужденная, и преимуществ тут не наблюдаю, т.к. pool все равно отдельный от всего остального.
читайте внимательней, преимущества переколбашеного сбора мусора там расписаны.

Favn
Я так и не понял, почему именно "встроенная" Java является достоинством - может, просто не нашел. :)
про достоинства имхо рано, давайте сначала с этим вопросом доразберемся:
Favn
Что значит "интегрирована"? Как я понимаю, у Оракл просто есть своя имплементация JVM, поставляемая с СУБД. Но у IBM тоже своя JVM и свой Java SDK, тоже поставляемые с DB2 и работающие с ней. Куда "интегрированней"?

в этот раз я убедил, что есть куда ?

Favnпосмотрите, скажем, Figure 2. Expansion of application layer . Видно, что SQLJ runtime работает не только мимо JDBC, но и мимо CLI, как и положено embedded SQL в DB2.
ну не знаю, я вижу на рисунке ровно противоположное. то что java процедуры работают через sqlj/jdbc type2 драйвер, а не universal jdbc драйвер это и коню ясно, а вот то что из sqlj выходит только одна стрелка говорит о том, что нет никакой разницы в использовании jdbc и sqlj в sqlj процедурах. это единый драйвер, единый механизм общения с субд, именно это и показано на рисунке.

Favn
Принципиальная разница с Оракл в том, что при прекомпиляции не только проверяется синтаксис и связи, но в БД создается спец. объект
да нет никакой принципиальной разницы с прекомпилерами оракла аля PRO*CABOL из 80х ...
...
Рейтинг: 0 / 0
343 сообщений из 343, показаны все 14 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / использование хранимых процедур
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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