|
|
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Подскажите, в каких случаях уместнее использовать хранимые процедуры, а в каких создавать вьюхи? Слышал такую позицию: для измения базы - использовать хп, для вывода из базы - view. Может, кто-то подскажет точнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:21 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
Немного переформулипую вопрос. Для вывода данных, что из этого использовать? Стоит ли делать хранимки типа getStudents(group_id) или лучше view? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:24 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
sky2highдля измения базы - использовать хп, для вывода из базы - view. внезапно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:33 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
вьюхи могут вполне редактируемыми быть хранимки могут возвращать наборы данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:12 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
Если можете сделать view - лучше сделать view. Бывает так что view сделать не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:27 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинЕсли можете сделать view - лучше сделать view. Я бы сказал чуть иначе: если можете обойтись без view - не делайте view. С процедурами - аналогично. Ибо при использовании не к месту наносят больше вреда чем пользы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:34 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
sky2highЗдравствуйте. Подскажите, в каких случаях уместнее использовать хранимые процедуры, а в каких создавать вьюхи? Слышал такую позицию: для измения базы - использовать хп, для вывода из базы - view. Может, кто-то подскажет точнее? Для всего -- ХП. View практически бесполезно использовать. Можно какие-то часто используемые повторно части запросов оформлять в виде view, но это нужно уметь делать так, чтобы это не влияло на производительность. Фактически там можно использовать только фильтры и JOIN-ы и выражения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:38 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
MasterZivДля всего -- ХП. в какой СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:44 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovПодскажите, в каких случаях уместнее использовать хранимые процедуры, а в каких создавать вьюхи? Ну вроде они могут совместно использоваться. Вьюхи, например, можно использовать в ХП, чтобы избежать использования в оных таблиц. Что как бы повышает независимость ХП от структуры БД: в каких-то случаях удастся поменять структуру БД и вьюху, а код ХП не трогать.. Вообще цель представления: как бы представлять данные в виде соотвествующем взглядам группы пользователей. Тогда как в таблицах наиболее абстрактные данные, их которых могут быть получены представления. Например, в таблице "Люди" (Пиплы, если по англицки), а в представлении "Студенты" ХП - это типа процедурное расширение декларативных языков БД, например SQL. Т.е. как бы нет явного отрицания одного другим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 18:42 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
vadiminfoВообще цель представления: как бы представлять данные в виде соотвествующем взглядам группы пользователей. Это так в каком-нибудь Access-е. В остальных СУБД view это просто хранимый запрос (иногда с материализованным result set-ом). Соответственно и применяется исключительно для упрощения запросов, посылаемых из приложения. При избыточном использовании способны провалить производительность под плинтус. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 18:49 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovvadiminfoВообще цель представления: как бы представлять данные в виде соотвествующем взглядам группы пользователей. Это так в каком-нибудь Access-е. В остальных СУБД view это просто хранимый запрос (иногда с материализованным result set-ом). Соответственно и применяется исключительно для упрощения запросов, посылаемых из приложения. При избыточном использовании способны провалить производительность под плинтус. И в каком-нибудь Access-е, это тоже "просто хранимый запрос". Способ хранения это что-то физическое, а там было исключительно про логическое. Имеет значение именнованность и что возвращает. Потому можно применять и для представления пользоватей, и для повышения независимости и для повторности: например, какой-то запрос часто юзается в других. Я, например, в коде ХП стараюсь исключать в принципе использования таблиц напрямую. Оракл типа берет много физики на себя, потому подминать логику ради физики вроде не часто приходится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 19:11 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
sky2high, для вывода из базы view уместно использовать в случае "горизонтального" распределения прав доступа на таблицу. Когда не надо видеть всю таблицу, а только определенный набор полей (если СУБД не поддерживает функционал). К примеру, по пользователям - для всех доступна вьюха "имя + роль + внутренний телефон", в схеме администратора "имя+роль+хэш пароля+персональные данные+CVV банковской карты с балансом". Все перечисленные поля и куча других = лежат в одной таблице. Второй вариант использования - инкапуслирование типичных сложных запросов ТОЛЬКО в случае если планируется периодическое объединение структуры в рамках других запросов. Если же конечная цель - вывод данных на клиента - имхо удобнее пользовать хранимую процедуру вместо представления. Хранимые же процедуры - ИМХО наиболее предпочтительны для использования во всех остальных случаях, особенно для ввода/изменения данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 10:53 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
sky2highЗдравствуйте. Подскажите, в каких случаях уместнее использовать хранимые процедуры, а в каких создавать вьюхи? View и ХП предназначены для облегчения работы с БД. View чтобы не писать большой и сложный запрос, которым часто пользуются. ХП, для облегчения работы по изменению данных. Хотя это не "стандарт". Например в PostgreSQL можно создать view который по поведению не я отличаться от обычной таблицы (можно описать действия на SELECT, INSERT, UPDATE) А так все зависит от конкретной задачи которая стоит перед вами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 10:55 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
Mikle83sky2high, для вывода из базы view уместно использовать в случае "горизонтального" распределения прав доступа на таблицу. Когда не надо видеть всю таблицу, а только определенный набор полей (если СУБД не поддерживает функционал). это не актуально для интернет и других многозвенных приложений. Если обычный клиент-сервер, то здесь конечно различные горизонтальные, вертикальные, диагональные и т.п. права нужно настраивать и поддерживать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 12:25 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
iscrafmMasterZivДля всего -- ХП. в какой СУБД? В любой, где есть ХП, разумеется.... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 13:23 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
vadiminfoDimitry SibiryakovПодскажите, в каких случаях уместнее использовать хранимые процедуры, а в каких создавать вьюхи? Ну вроде они могут совместно использоваться. Вьюхи, например, можно использовать в ХП, чтобы избежать использования в оных таблиц. Да ну, не... Ты шутишь, да ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 13:24 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
ХП существенно повышают безопасность, т.к. пользователь не имеет доступа к таблицам. В отличие от запроса, ХП может содержать очень сложную логику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 13:28 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
mad_nazgulView и ХП предназначены для облегчения работы с БД. View чтобы не писать большой и сложный запрос, которым часто пользуются. ХП, для облегчения работы по изменению данных. Не. View -- это как подпрограммы на SQL. Предназначены для возможности повторного использования кода на SQL. Но, к сожалению, в 80% случаев для этой цели они не подходят, потому что в итоге не работают. Процедуры предназначены для реализации логики на стороне БД, и они, напротив, подходят очень хорошо для этого и очень хорошо работают. Для именно облегчения работы -- это ORM, но они для аналитических запросов не подходят от слова "совсем". ХП трудно назвать облегчением, потому что писать-то кода приходится больше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 13:29 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
MasterZivВ любой MS SQL , где есть ХП, разумеется.... Так будет всё же точнее. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 13:42 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovMasterZivВ любой MS SQL , где есть ХП, разумеется.... Так будет всё же точнее. еще нужно добавить что в старых двухзвенных приложениях построенных на множестве программного кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 13:47 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
MasterZivvadiminfoпропущено... Ну вроде они могут совместно использоваться. Вьюхи, например, можно использовать в ХП, чтобы избежать использования в оных таблиц. Да ну, не... Ты шутишь, да ? Ну тада еще типа шутка: ф-ии ХП могут использоваться во Вьхах. Продолжение скептическое отношение к идее противопочтавления ХП и Вьюх. MasterZivView -- это как подпрограммы на SQL. Предназначены для возможности повторного использования кода на SQL. Возможно, это все же это принижение достоинства РМД в наличии в нем View. Например, против ООМД. Чисто кодерская сторона дела. Однако, БД может быть использована разными типами потребителей (тем более программ). И данные могут иметь много разных представлений. Да и если брать кодерскую сторону дела, то все же есть еще нежелание лезть лишний паз в код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 14:32 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
sky2highСтоит ли делать хранимки типа getStudents(group_id) или лучше view? Хранимки удобнее в тех случаях, когда набор данных может получаться разными способами (например, в зависимости от group_id обращение должно идти к разным таблицам). Вьюхи удобнее в тех случаях, когда один набор данных должен фильтроваться и/или агрегироваться разными способами (например, то по group_id, то по student_id, то по среднем баллу в зачётке). Итого в нормально спроектированной базе вьюхи почти всегда удобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 15:54 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
MasterZivНе. View -- это как подпрограммы на SQL. Предназначены для возможности повторного использования кода на SQL. Об этом и речь. MasterZivНо, к сожалению, в 80% случаев для этой цели они не подходят, потому что в итоге не работают. У меня с точностью до наоборот. View всегда был удобным инструментом. MasterZivПроцедуры предназначены для реализации логики на стороне БД, и они, напротив, подходят очень хорошо для этого и очень хорошо работают. Опять же для меня с точностью до наоборот. Все что не укладывается в РМД, лучше в ХП не делать, а делать в более удобных ЯП. :-) MasterZivДля именно облегчения работы -- это ORM, но они для аналитических запросов не подходят от слова "совсем". ХП трудно назвать облегчением, потому что писать-то кода приходится больше... Ну мое знакомство с ORM, показало для меня, что ORM скорее он мешает чем помогает. Хотя для самых простых случаев облегчает разработку. Но шаг влево, шаг в право, проще самому написать SQL запрос, чем пытаться сделать "нужный" Entity. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 15:56 |
|
||
|
ХП и вьюхи
|
|||
|---|---|---|---|
|
#18+
sky2highНемного переформулипую вопрос. Для вывода данных, что из этого использовать? Стоит ли делать хранимки типа getStudents(group_id) или лучше view? Конечно же view - это просто "виртуальная table" которая может объединять данные из нескольких физических, процедура - функция, которая может возвращать и результирующий набор в том числе. Ну и одно принимает параметры, другое - нет. p.s. не слушайте вредных советов о типа "нормально спроектированных базах" где view по определению больше чем процедур. От качества проектирования это конечно же не зависит. Отличие выше, что удобнее или чего требует задача, то и используйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2015, 17:22 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=17&tid=1540431]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 383ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...