powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / использование хранимых процедур
25 сообщений из 343, страница 2 из 14
использование хранимых процедур
    #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
25 сообщений из 343, страница 2 из 14
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / использование хранимых процедур
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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