|
|
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Хотите сказать, что MS отрастил своему SQL серверу cost-based оптимизатор? В какой версии? а в какой версии у него был rule-based ? =) Зачем отращивать то, что уже было с рождения ? (как минимум с 2000 версии) А вообще динамический sql (при желании) ведь тоже параметризуется (что исключает инджекшен) и кэшируется. Так что имхо ХП более важны с точки зрения безопасности и интерфейса БД к своим клиентам, чем с точки зрения скорости Кстати иногда динамический sql все равно нужен (что-бы не положить сервер неподьемным запросом), но собираться он должен все равно в ХП для инкапсуляции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2009, 13:46 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov lockyА можно с этого места немного поподробнее? Хотите сказать, что MS отрастил своему SQL серверу cost-based оптимизатор? В какой версии? Насчет 6.5. не уверен (давно было), так что скажу - минимум с 7-ки. Лет 11 уже, поди, минуло. хотя и в 6.5, кажись, уже было.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2009, 14:39 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
StalkerS А вообще динамический sql (при желании) ведь тоже параметризуется (что исключает инджекшен) В оракле с этим получше будет :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2009, 14:40 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov пишет: > Хотите сказать, что MS отрастил своему SQL серверу cost-based > оптимизатор? В какой версии? Он в MSSQL с рождения cost-based. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2009, 18:02 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
locky пишет: > Насчет 6.5. не уверен (давно было), так что скажу - минимум с 7-ки. Лет > 11 уже, поди, минуло. С 3-ки. Хотя вы даже не знаете наверное о существовании такой версии. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2009, 18:04 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
MasterZiv С 3-ки. Хотя вы даже не знаете наверное о существовании такой версии. И называлась она совсем не MSSQL ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2009, 18:22 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
MasterZiv locky пишет: > Насчет 6.5. не уверен (давно было), так что скажу - минимум с 7-ки. Лет > 11 уже, поди, минуло. С 3-ки. Хотя вы даже не знаете наверное о существовании такой версии. Ну, с трёшки так с трёшки, спорить не буду. Я начал с 6.5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2009, 20:03 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
locky В оракле с этим получше будет :( инджекшн там вообще не возможен ? А это как ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2009, 01:05 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
StalkerSlocky В оракле с этим получше будет :( инджекшн там вообще не возможен ? А это как ? Возможен. Но, емнип, при помощи чего-то вроде DBMS_SQL можно создавать запросы с переменным к-вом параметров. в скуле мне пока известен единственный способ создать такое Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2009, 01:11 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Ну, плейсхолдеры особенно и не нужны. Лично мне хватает возможности передавать в хранимую процедуру в качестве параметра какой нибудь XML. Вот честно - из почти 2-х тысяч хранимок динамический sql только в 5..6..и штучках, и то - в процедурках административного характера, пользователь их даже и не зовёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2009, 08:54 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
SergSupr В MS SQL появились индексы по битовым полям? Даже в 2000 были. Из EM их создать нельзя было, но вручную - пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2009, 09:14 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
hvlad пишет: > И называлась она совсем не MSSQL ;) Да, называлась она SQLServer. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2009, 10:07 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Ну, про производительность вроде бы все уже сказали (что по сравнению с просто SQLем разницы никакой, прирост может быть за счет экономии сетевого трафика при реализации последовательности select с промежуточной обработкой, падение может быть из-за логики пересчета плана запроса). Раньше, когда миром правили двузвенки, хранимки активно использовались для отделения бизнес-логики (собственно хранимки) от логики хранения (таблички) и визуализации (клиент). По мере перехода на трехзвенки, смысл хранимок несколько снижается (ну, кроме совсем уж экстремальных задач с требованиями к производительности). Правда, вроде бы еще используют хранимки для обхождения ограничений и проблем ORMов (по крайней мере в мире .Net это обычная практика, судя по форумам). Зачем они сейчас еще нужны - не знаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2009, 13:54 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
DPH3Ну, про производительность вроде бы все уже сказали (что по сравнению с просто SQLем разницы никакой, прирост может быть за счет экономии сетевого трафика при реализации последовательности select с промежуточной обработкой, падение может быть из-за логики пересчета плана запроса). Раньше, когда миром правили двузвенки, хранимки активно использовались для отделения бизнес-логики (собственно хранимки) от логики хранения (таблички) и визуализации (клиент). По мере перехода на трехзвенки, смысл хранимок несколько снижается (ну, кроме совсем уж экстремальных задач с требованиями к производительности). Правда, вроде бы еще используют хранимки для обхождения ограничений и проблем ORMов (по крайней мере в мире .Net это обычная практика, судя по форумам). Зачем они сейчас еще нужны - не знаю :) Нужны еще как. Помимо производительности еще и облегчение администрирования, все права даются на хранимки, а напрямую с таблицами клиент работать не должен. Да и изменение логики проходит проще - без сборки новой версии клиента, а просто заменой логики хранимки на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 09:44 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
barrabas Да и изменение логики проходит проще - без сборки новой версии клиента, а просто заменой логики хранимки на сервере. Можно посмотреть на пример такого изменения логики? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:02 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov barrabas Да и изменение логики проходит проще - без сборки новой версии клиента, а просто заменой логики хранимки на сервере. Можно посмотреть на пример такого изменения логики? да легко. 1. банальная трудновыявляемая ошибка, неправильный результат на определенных параметрах, подправил процедуру и всё, никаких пересборок проекта. 2. Добавить например аудит или ещё чего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:07 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
2 barrabas DPH3... По мере перехода на трехзвенки , смысл хранимок несколько снижается (ну, кроме совсем уж экстремальных задач с требованиями к производительности). ... Зачем они сейчас еще нужны - не знаю :) Нужны еще как. Помимо производительности еще и облегчение администрирования, все права даются на хранимки, а напрямую с таблицами клиент работать не должен. Да и изменение логики проходит проще - без сборки новой версии клиента, а просто заменой логики хранимки на сервере. Выделенное цветом Вы с первого раза не заметили? В трехзвенках (многозвенках) - клиент не работает с таблицами, изменение логики происходит без пересборки клиента, итд. Т.е. плюсов от использования хранимок не наблюдается. А минусы наблюдаются (размазывание логики, дополнительная раздача прав, и прочие мелкие радости администрирования). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:08 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
Проще на самом деле. Меньше действий с процедурами: 1. исправил / закомитил в svn/cvs/меркуриал 2. выполнил без процедур: 1. Исправил / закомитил 2. собрал 3. выложил / в зависимости от слоя еще и всех выгнать из проги может понадобится 4. сказал всем перезайти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:11 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
ЛП2 barrabas DPH3... По мере перехода на трехзвенки , смысл хранимок несколько снижается (ну, кроме совсем уж экстремальных задач с требованиями к производительности). ... Зачем они сейчас еще нужны - не знаю :) Нужны еще как. Помимо производительности еще и облегчение администрирования, все права даются на хранимки, а напрямую с таблицами клиент работать не должен. Да и изменение логики проходит проще - без сборки новой версии клиента, а просто заменой логики хранимки на сервере. Выделенное цветом Вы с первого раза не заметили? В трехзвенках (многозвенках) - клиент не работает с таблицами, изменение логики происходит без пересборки клиента, итд. Т.е. плюсов от использования хранимок не наблюдается. А минусы наблюдаются (размазывание логики, дополнительная раздача прав, и прочие мелкие радости администрирования). а средний слой пересобирать не нужно ? стопить сервис там и другие прелести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:13 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
ИХМО средний слой бы тоже делал без логики, а чисто передатчиком команд и результатов, на нем бы сделал кэширование (если нужно), ну и что то специфическое с чем нормальная субд хуже справится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:17 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
barrabasМеньше действий с процедурами: 1. исправил / закомитил в svn/cvs/меркуриал 2. выполнил Получил в лоб "object in use", пошёл всех выгонять из базы. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:27 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
2 barrabas а средний слой пересобирать не нужно ? Вы таки определитесь, про Вы клиентскую часть говорили или нет - когда отвечали на сообщение про трехзвенки. А так я могу и серверные (СУБД-шные) хранимые процедуры пересобирать. На дотнете хранимку наваяю, в сиквел засуну. И такую модификацию логики придумаю, что пользователей выгнать придется. ИХМО средний слой бы тоже делал без логики, а чисто передатчиком команд и результатов, на нем бы сделал кэширование (если нужно), ну и что то специфическое с чем нормальная субд хуже справится. Вот и занахуа такой средний слой нужен, спрашивается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:28 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
ЛПВот и занахуа такой средний слой нужен, спрашивается? чтобы исключить ЛПразмазывание логики, дополнительная раздача прав, и прочие мелкие радости администрирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:31 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
iscrafmЛПВот и занахуа такой средний слой нужен, спрашивается? чтобы исключить ЛПразмазывание логики, дополнительная раздача прав, и прочие мелкие радости администрирования. Так убить его совсем, этот "средний слой без логики". И не будет никакого размазывания, раздачи прав, и прочих мелких радостей. Всё в СУБД жить будет Уж с кэшированием(которое barrabas предлагает оставить в среднем слое) сервер БД справится как-нибудь. Приложение или двузвенное, или многозвенное. Если решили (по каким-либо причинам) делать многозвенку - то совершенно логично именно туда и запихнуть логику, права, и прочие мелкие радости. А иначе просто зачем. Сделать средний слой, но ничего туда не положить - ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:39 |
|
||
|
использование хранимых процедур
|
|||
|---|---|---|---|
|
#18+
ЛППриложение или двузвенное, или многозвенное. Если решили (по каким-либо причинам) делать многозвенку - то совершенно логично именно туда и запихнуть логику, права, и прочие мелкие радости. А иначе просто зачем. Сделать средний слой, но ничего туда не положить - ??? много ложится на средний слой. А вот логика - не всегда. Действительно, часто проще и оптимальней отдать обработку данных тому, кто эти данные хранит - СУБД. Но, кроме обработки данных есть куча другой логики, а вообще: 1. управление контентом системы 2. права доступа 3. управление данными (в смысле различные БД) 4... впрочем этого уже достаточно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2009, 13:50 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36271363&tid=1552871]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 416ms |

| 0 / 0 |
