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

Может у кого-нибудь более интересные и простые варианты есть?
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39634592
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex1975,

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

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

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

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

разворачивайте боевой бэкап на тестовом сервере. Но для чего это? Нагрузочное тестирование?

Не вариант.

Клиенты торгуют акциями.

Все их результаты попадают в боевую.

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

Задача этого предрелизного сервера, окончательно оттестить какие-то баги, которые прошли мимо разработчиков и отдела тестирования на тестовом сервере.

Аналог мне показывали на Postgree. Там в базе только таблицы лежат, а весь код на PHP. И можно к боевой базе пробросить сколько угодно внешних сервисов, которые чем-то отличаются.

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

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

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

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

Спасибо. Хороший вариант.

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

Спасибо. Хороший вариант.

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

Копия тянет за собой кучу проблем синхронизации данных.

А так вариант что если предрелиз не рабочий по каким-то причинам, то могут перейти на боевую и спокойно работать до момента багфикса.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39634809
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex1975,

выглядит как какая-то безумная экономия на QA c ещё более странными оправданиями
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39634830
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKAlex1975,

выглядит как какая-то безумная экономия на QA c ещё более странными оправданиямиВыглядит как стандартное решение для ответственных проектов, с большим количеством пользователей.
После тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные.
Тестовые системы не абсолютно адекватны боевым, вон, даже производители машин делают отзывы, а уж в софтостроении бета-версии вообще стандартная практика.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39634837
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgПосле тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные.ну, собственно это я и написал Дедушкато заведите этих бета-тестеров на копию системы но у ТСа Alex1975Копия тянет за собой кучу проблем синхронизации данных.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39634839
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgTaPaKAlex1975,

выглядит как какая-то безумная экономия на QA c ещё более странными оправданиямиВыглядит как стандартное решение для ответственных проектов, с большим количеством пользователей.
После тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные.
Тестовые системы не абсолютно адекватны боевым, вон, даже производители машин делают отзывы, а уж в софтостроении бета-версии вообще стандартная практика.
всё звучит не плохо до того момента, что они всё это делают на одних и тех же объектах, что значить как минимум
1. Таблицы они никогда не меняют
2. Соотвественно триггеры/представления
А что они тогда делают? Отчёты?
Есть вариант что накатывают объекты сразу на прод, остальное на препрод, но тут ещё больше удивления, ну и так далее
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39634842
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex1975Копия тянет за собой кучу проблем синхронизации данных.т.е. у вас пользователи не изолированны и состояние системы для одних зависит от действий других.
в таком случае у вас только один путь - эмулировать нагрузку на копии боевой системы где проводится финальное тестирование.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39634853
Alex1975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKвсё звучит не плохо до того момента, что они всё это делают на одних и тех же объектах, что значить как минимум
1. Таблицы они никогда не меняют
2. Соотвественно триггеры/представления
А что они тогда делают? Отчёты?
Есть вариант что накатывают объекты сразу на прод, остальное на препрод, но тут ещё больше удивления, ну и так далее
Структура таблиц меняется очень редко. И понятно что изменение таблиц после тестового сервера сразу попадут в бой без предрелизного сервера. Это минимальный риск.
Триггеров тоже мало
Представления также через синонимы использовать.

Меняются постоянно процедуры в которых обрабатываются данные из таблиц. Их и надо через разные уровни тестирования провести.

Дедушкат.е. у вас пользователи не изолированны и состояние системы для одних зависит от действий других.
в таком случае у вас только один путь - эмулировать нагрузку на копии боевой системы где проводится финальное тестирование.

А смысл? Это же обычные пользователи, которые работают как и на боевом и выйти за рамки и похерить данные никак не могут.
И нагрузочное тестирование не нужно. Нужно вылавливание мелких багов, которые можно ловить вылизанным ТЗ, юнит тестами и хорошей и дорогой командой тестеров. Либо так.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39634974
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какие синонимы?! а если у вас какой-нибудь delete/update будет над синонимом?

только один вариант: поднимать копию каждый день, возможно, копию на "почти прямо сейчас", после чего накатывать туда релиз, заказчиков проинформировать о том, что на предрелизном сервере будет такая-то задержка относительно боевого, поэтому смотреть нужно не самые свежие данные
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39635012
Очень лысый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я с подобной задачей справлялся следующим образом: восстанавливал базу из боевого бэкапа, удалял скриптом весь программный код и накатывал его с помощью liquibase из соответствующей ветки в SVN. Получалось довольно быстро это делать. Тем более, что таковые манипуляции обычно не приходится проделывать каждый день.
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39635013
Очень лысый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень лысыйЯ с подобной задачей справлялся следующим образом: восстанавливал базу из боевого бэкапа, удалял скриптом весь программный код и накатывал его с помощью liquibase из соответствующей ветки в SVN. Получалось довольно быстро это делать. Тем более, что таковые манипуляции обычно не приходится проделывать каждый день.
Ах, да. Бэкап не канает, ибо данные должны быть живыми и тестеры ещё и менять их дожны иметь возможность. Или не должны?
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39635019
Очень лысый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вообще сама схема тестирования выглядит как-то стрёмно. Я бы такое точно не разрешил делать. Хочешь работать на боевых данных - поднимай базу из бэкапов, или пользуй стендбай для чтения. Что за писание работы тестеров в боевую базу? Мало ли что там кодеры накодят, и, при доступе на прод, этот код там что-то похерит ненароком? Или, если есть доступ на чтение основных данных на проде, кодеры напишут неудачный запрос, который нагнёт прод на некоторое время? Кто будет убытки компенсировать?
...
Рейтинг: 0 / 0
Разделить процедуры и таблицу
    #39635070
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKalexeyvgпропущено...
Выглядит как стандартное решение для ответственных проектов, с большим количеством пользователей.
После тестирования на девелоперском окружении тестируется на стабильной тестовой системе, потом на версию переводится часть пользователей, и только потом уже все остальные.
Тестовые системы не абсолютно адекватны боевым, вон, даже производители машин делают отзывы, а уж в софтостроении бета-версии вообще стандартная практика.
всё звучит не плохо до того момента, что они всё это делают на одних и тех же объектах, что значить как минимум
1. Таблицы они никогда не меняют
2. Соотвественно триггеры/представления
А что они тогда делают? Отчёты?
Есть вариант что накатывают объекты сразу на прод, остальное на препрод, но тут ещё больше удивления, ну и так далееТак ТС пишет - "только для процедур".

Когда планируется менять модель, то действуют так, как предполагаете вы и Дедушка - то есть тестируют на тестовых системах, потом заливают на прод, минуя стадию бета-тестирования.

Собственно, модель данных ведь намного стабильнее кода, так что в принципе это работающая, годная стратегия.
Дедушкану, собственно это я и написал Дедушкато заведите этих бета-тестеров на копию системыНужно же на реальных данных тестировать. Иначе это не называют "бета-тестированием".
Как могут часть пользователей работать в системе, вместе с остальными пользователями, но не на реальных данных? 10 кассиров из ста работают со своей базой??? Бета тестеры - это обычные работающие с продуктом люди, но работающие не с текущей стабильной версией, а с кандидатом на неё.

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


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