powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разделить процедуры и таблицу
14 сообщений из 39, страница 2 из 2
Разделить процедуры и таблицу
    #39635072
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень лысыйЧто за писание работы тестеров в боевую базу? Мало ли что там кодеры накодят, и, при доступе на прод, этот код там что-то похерит ненароком?Не тестеров, а пользователей.

Вы подготовили версию, она должна утром появиться на компах 10 000 сотрудников.
Но вам стрёмно, 10 000!!! Вас же порвут, а вдруг что то не так? Вы думаете, "а не залить ли эту версию на компы отдела маркетинга, всё равно их никто не слушает, да и их всего сотня? Если что, откатим."
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39635158
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex1975, дам ссылку на такой опыт компании Авито:

https://habrahabr.ru/company/avito/blog/342946/

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

Вы подготовили версию, она должна утром появиться на компах 10 000 сотрудников.
Но вам стрёмно, 10 000!!! Вас же порвут, а вдруг что то не так? Вы думаете, "а не залить ли эту версию на компы отдела маркетинга, всё равно их никто не слушает, да и их всего сотня? Если что, откатим."

Все именно так. Схема рабочая, обсуждена с заказчиком. Риски и пути их минимизации все понимают.

alexeyvgСмысл в том, что каждый релиз ХП льется в отдельную схему - для переключения с одной версии кода на другую достаточно в настройках приложения указать схему, на которую он смотрит, название хранимых процедур менять не надо. Так, боевое и тестовое окружение может смотреть на одну и ту же базу, но в разные схемы. При выкатке релиза в прод достаточно просто поменять имя схемы в боевом приложении (или сделать TRANSFER всем объектам).

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

Alex1975И вызов функций требует указания схемы. А т.к. схема будет меняться, то непонятно как быть.
С функциями проблема, да. Если в них у вас много логики и она часто меняется - то вариант скорее не подходит.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39635684
Очень лысый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgОчень лысыйЧто за писание работы тестеров в боевую базу? Мало ли что там кодеры накодят, и, при доступе на прод, этот код там что-то похерит ненароком?Не тестеров, а пользователей.

Вы подготовили версию, она должна утром появиться на компах 10 000 сотрудников.
Но вам стрёмно, 10 000!!! Вас же порвут, а вдруг что то не так? Вы думаете, "а не залить ли эту версию на компы отдела маркетинга, всё равно их никто не слушает, да и их всего сотня? Если что, откатим."
Ясно, я просто не до конца понял идею. Оно, конечно, прикольно, но несмотря на все согласования и пути минимизации, возможные издержки выглядят гораздо более внушительными, нежели предполагаемый профит. Я имею в виду в случае размещения в одной базе. Тем не менее, скорее всего условный "маркетинг" меняет лишь ограниченное количество данных. Посему, возможно, получится держать "маркетологов" в отдельной базе, куда подливать данные из постоянно изменяемых больших таблиц репликацией, а то, что они там нагерерируют, время от времени сливать в основную боевую базу провереным скриптом. А утром пересобирать для них новую базу из свежено бэкапа с основного прода.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39635787
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex1975,

create sysnonym
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39635830
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень лысыйПосему, возможно, получится держать "маркетологов" в отдельной базе, куда подливать данные из постоянно изменяемых больших таблиц репликацией, а то, что они там нагерерируют, время от времени сливать в основную боевую базу провереным скриптом. А утром пересобирать для них новую базу из свежено бэкапа с основного прода.Я про этот вариант писал, и не только я.
Но это черезмерно сложно для такой задачи. Сделать для тестирования распределённую систему из продакшена и теста - нереально, это будет по стоимости сравнимо с созданием всей системы.
Для очень больших и ответственных систем, которые уже сделаны распределёнными, можно (и обязательно нужно) предусматривать работу разных частей системы в разных версиях, это при той же сложности хотя бы даст дополнительные плюсы, эта адская работа хотя бы не будет сделана только для тестирования.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39636908
Очень лысый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgОчень лысыйПосему, возможно, получится держать "маркетологов" в отдельной базе, куда подливать данные из постоянно изменяемых больших таблиц репликацией, а то, что они там нагерерируют, время от времени сливать в основную боевую базу провереным скриптом. А утром пересобирать для них новую базу из свежено бэкапа с основного прода.Я про этот вариант писал, и не только я.
Но это черезмерно сложно для такой задачи. Сделать для тестирования распределённую систему из продакшена и теста - нереально, это будет по стоимости сравнимо с созданием всей системы.
Для очень больших и ответственных систем, которые уже сделаны распределёнными, можно (и обязательно нужно) предусматривать работу разных частей системы в разных версиях, это при той же сложности хотя бы даст дополнительные плюсы, эта адская работа хотя бы не будет сделана только для тестирования.
На самом деле, в общем случае реализовать такую схему, как я описал, не так уж трудно и дорого, если база не слишком сложная по структуре и таблиц в ней не сотни. Ибо она не является в полном смысле слова распределённой системой. Другое дело, что если восстановление из бэкапа будет занимать несколько дней, то тогда, конечно, не вариант. Но поставить диагноз по фотографии, не видя исходный солюшен, понятно, задача неблагодарная.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39637061
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень лысыйНа самом деле, в общем случае реализовать такую схему, как я описал, не так уж трудно и дорого, если база не слишком сложная по структуре и таблиц в ней не сотни. Ибо она не является в полном смысле слова распределённой системой.Не вижу, почему "не является". Совершенно бескомпромиссно-полноценная распределённая система. Разве что одно упрощение - 2 узла, а не произвольное количество.

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

Может в каких-то не сильно больших системах где десяток транзакций в секунду и можно реализовать.
Но в больших тяжело. Я даже представить боюсь трудозатраты и количество багов которые огребем при реализации такой схемы. А все для того чтобы исключить гипотетическую вероятность того что кто-то через процедуры сможет покосить много не своих данных.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39638160
Guest993
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как много процедур должны отличаться от боевых?
что насчет дополнительной прослойки по вызову процедур (и в ней проверять юзера и какую процедуру ему вызывать боевую или бета)? но это все места где идет вызов процедур боевых должны переписаться..
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39638236
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest993что насчет дополнительной прослойки по вызову процедур (и в ней проверять юзера и какую процедуру ему вызывать боевую или бета)? но это все места где идет вызов процедур боевых должны переписаться..Зачем такие сложности? Уже подсказали простое и надёжное решение.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39638237
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex1975Очень лысыйНа самом деле, в общем случае реализовать такую схему, как я описал, не так уж трудно и дорого, если база не слишком сложная по структуре и таблиц в ней не сотни. Ибо она не является в полном смысле слова распределённой системой. Другое дело, что если восстановление из бэкапа будет занимать несколько дней, то тогда, конечно, не вариант. Но поставить диагноз по фотографии, не видя исходный солюшен, понятно, задача неблагодарная.

Может в каких-то не сильно больших системах где десяток транзакций в секунду и можно реализовать.
Но в больших тяжело. Я даже представить боюсь трудозатраты и количество багов которые огребем при реализации такой схемы. А все для того чтобы исключить гипотетическую вероятность того что кто-то через процедуры сможет покосить много не своих данных.Мало того, непонятна идея Очень лысый, как можно таким образом уберечь данные.
Кривая процедура накосячит в данных, и они перенесутся репликацией в рабочую базу.
Результат тот же, но с адской работой и дополнительными ошибками от самой распределённой схемы.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39638566
Очень лысый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgAlex1975пропущено...


Может в каких-то не сильно больших системах где десяток транзакций в секунду и можно реализовать.
Но в больших тяжело. Я даже представить боюсь трудозатраты и количество багов которые огребем при реализации такой схемы. А все для того чтобы исключить гипотетическую вероятность того что кто-то через процедуры сможет покосить много не своих данных.Мало того, непонятна идея Очень лысый, как можно таким образом уберечь данные.
Кривая процедура накосячит в данных, и они перенесутся репликацией в рабочую базу.
Результат тот же, но с адской работой и дополнительными ошибками от самой распределённой схемы.
Ну я реплицировать предполагал из боевой в тестовую наоборот. Но оно, конечно, не для всякого случая подойдёт и вообще уже подсказали хороший вариант, так что извините, если что не так.
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разделить процедуры и таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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