powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Comparer - View
25 сообщений из 50, страница 1 из 2
Comparer - View
    #38785855
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда меняю вьюху, в дифф скрипте идет пара команд сначала дроп, потом крейт ор альтер. Зачем там дроп? попытка дропнуть вьюху приводит к тому, что еще кучу метаданных надо перетряхнуть. А если я вдруг где-то забыл селект из вьюхи закоммитить, то дропнуть вообще нельзя.
Почему не просто альтер?
...
Рейтинг: 0 / 0
Comparer - View
    #38787167
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что ALTER VIEW только в 2.5 появился.
...
Рейтинг: 0 / 0
Comparer - View
    #38787186
mvb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

а нельзя добавить в опции компарера галку типа "use ALTER VIEW instead drop/create view" и разрешить ее для 2.5 и выше?
...
Рейтинг: 0 / 0
Comparer - View
    #38787350
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertПотому что ALTER VIEW только в 2.5 появился.слезно просимо фичу, если 2.5 то по-умолчанию не дропать бедную вьюху перед альтером. Опционально так себя или всегда не знаю как лучше, наверно тебе видней.
mvbв опции компарераИ чтобы оно работало в том числе и через ibescript.dll было бы вообще супер.
...
Рейтинг: 0 / 0
Comparer - View
    #38787946
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, ALTER VIEW во всех случаях срабатывает? Даже когда вьюха используется в процедуре, например, и в результате ALTER изменяется количество полей, возвращаемых вьюхой, или их тип?
...
Рейтинг: 0 / 0
Comparer - View
    #38788238
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertА что, ALTER VIEW во всех случаях срабатывает?Я этого не утверждал. И не требую чтобы альтер срабатывал ВСЕГДА, я в курсе, что метаданные надо менять монопольно. Вопрос был про дроп, который сильно раздувает дифф скрипт.

Частое, относительно остальных изменений, это добавление полей и изменение внутренней логики вьюхи, без уменьшения выходных параметров или изменения их типов.
Уже несколько раз сталкивался, что применение штатного дифф-а приводит к перекомпиляции кучи хранимок, тогда как применение руками одного альтера вполне решает задачу и ничего не надо перетряхивать.
Убирание дроп-а приведет к усложению дифф скрипта?
...
Рейтинг: 0 / 0
Comparer - View
    #38788381
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyУбирание дроп-а приведет к усложению дифф скрипта?

Я ж не зря спрашиваю, в любом ли случае сработает ALTER VIEW? Если он срабатывает не всегда, то как я должен определять, когда ALTER VIEW использовать, а когда нужно сначала подропать все зависимости??
...
Рейтинг: 0 / 0
Comparer - View
    #38788676
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо провести изыскания, бум ставить эксперимент. Пока что альтера хватало, вьюх не так много, я их разносил руками(когда ленился уводить базы приемники в шатдаун, только выгонял юзеров из соотв. АРМа), потом обычным (подзывая экпертовскую либу) компарером.

Может как вариант, когда я начинаю компарить 2 базы у меня в источнике вполне консистентые метаданные, те хранимки, которые зависят от вьюхи и попадают в дифф сначала сделать вида begin suspend(exit);end ты это уже умеешь в других случаях, потом проальтерить вьюху, потом уже новыми телами процедуры.

Если более формально:
1. находим изменившуюся вьюху.
2. находим изменившиеся хранимки, с депенденсами от этой самой вьюхи.
3. зачищаем текст хранимок
4. альтер вьюхи
5. заливаем текст хранимок.
...
Рейтинг: 0 / 0
Comparer - View
    #38789506
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyЕсли более формально:
1. находим изменившуюся вьюху.
2. находим изменившиеся хранимки, с депенденсами от этой самой вьюхи.
3. зачищаем текст хранимок
4. альтер вьюхи
5. заливаем текст хранимок.

Ну и чем это по сути отличается от того, что есть сейчас? Вместо ALTER делается DROP и CREATE, а все остальное не меняется.
Про незакомиченный селект из вьюхи не будем: предполагается, что скрипт накатывается на базу в монопольном режиме.
...
Рейтинг: 0 / 0
Comparer - View
    #38789887
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertНу и чем это по сути отличается от того, что есть сейчас?
1. Не трогаем те хранимки, которые не менялись в источнике.
2. Нет дроп-а вьюхи.

По первому пункту разница в дифф скрипте довольно значительна по объему.

IBExpertПро незакомиченный селект из вьюхи не будем: предполагается, что скрипт накатывается на базу в монопольном режиме.Не будем.
...
Рейтинг: 0 / 0
Comparer - View
    #38790219
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky1. Не трогаем те хранимки, которые не менялись в источнике.
2. Нет дроп-а вьюхи.


1. Как это не трогаем? Трогаем все, что использует изменившуюся вьюху. Телепатера у меня нет.
2. Да без разницы уже, когда зависимостей нет.
...
Рейтинг: 0 / 0
Comparer - View
    #38790464
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertТелепатера у меня нет.Не надо телепатора, все вполне логично. Нашли вьюху, которая изменилась, потом находим все связанные с ней хранимки, которые тоже изменились (те что не менялись не трогаем). Если вьюха менялась так, что не менялись связанные хранимки, то вполне достаточно просто альтер вьюхи (это я проверил).
IBExpertДа без разницы уже, когда зависимостей нет.Истребление зависимостей зело раздувает скрипт, потом трудно понять, что же на самом деле поменялось и применяется он дольше, особенно с филиальными базами, которые сидят на не шибко широком интернет канале.
...
Рейтинг: 0 / 0
Comparer - View
    #38794697
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyНе надо телепатора, все вполне логично. Нашли вьюху, которая изменилась, потом находим все связанные с ней хранимки, которые тоже изменились (те что не менялись не трогаем). Если вьюха менялась так, что не менялись связанные хранимки, то вполне достаточно просто альтер вьюхи (это я проверил).

Это слишком муторно, заниматься этим сейчас я совершенно точно не буду.

Ivan_PisarevskyИстребление зависимостей зело раздувает скрипт, потом трудно понять, что же на самом деле поменялось и применяется он дольше, особенно с филиальными базами, которые сидят на не шибко широком интернет канале.

А что делать? Зато универсально.
...
Рейтинг: 0 / 0
Comparer - View
    #38795097
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertЭто слишком муторноМожно изложить чуть проще: альтерим изменившиеся процедуры как обычно(у кого нет депенденсов на вьюхи). Те что завязаны на изменившиеся вьюхи альтерим в 2 этапа: сначала делаем их "пустотелыми", потом алтерим вьюхи, потом уже заливаем собственно тела в процедуры.

По большому счету мне кажется дешевле тупо проальтерить все хранимки в 2 этапа.
1. зачистили все хранимки.
2. проальтерили все вьюхи.
3. влили тела хранимок.
...
Рейтинг: 0 / 0
Comparer - View
    #38795391
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyПо большому счету мне кажется дешевле тупо проальтерить все хранимки в 2 этапа.
1. зачистили все хранимки.
2. проальтерили все вьюхи.
3. влили тела хранимок.

Дык, а сейчас как? Ну, кроме того, что в пункте 2 - drop и create view?
Я так понял, что весь сыр-бор как раз из-за того, что лишние процедуры "зачищаются", которые можно было бы и не трогать при alter view.

В любом случае, что-то серьезное в компарере я сейчас делать не буду. Он не мой, там только врубаться - ящик водки надо.
Вот буду под тройку его точить, тогда может быть...
...
Рейтинг: 0 / 0
Comparer - View
    #38795617
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertЯ так понял, что весь сыр-бор как раз из-за того, что лишние процедуры "зачищаются", которые можно было бы и не трогать при alter view.Весь сыр-бор в команде дроп, которая мне кажется лишней, зачистка лишних Хп это побочный эффект дроп-а (нежелательный).

IBExpertДык, а сейчас как?Не совсем так.

IBExpertВот буду под тройку его точить, тогда может быть...Спасибо, что не отказали.
...
Рейтинг: 0 / 0
Comparer - View
    #38795737
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyВесь сыр-бор в команде дроп, которая мне кажется лишней, зачистка лишних Хп это побочный эффект дроп-а (нежелательный).


Зачистка процедур все равно останется, даже с альтером.
...
Рейтинг: 0 / 0
Comparer - View
    #38796093
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertЗачистка процедур все равно останетсяЗачищать можно только те, что менялись в источнике, а не все.

Чую пошли на третий круг.
...
Рейтинг: 0 / 0
Comparer - View
    #38796194
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyЗачищать можно только те, что менялись в источнике, а не все.

Чую пошли на третий круг.

Ага:
http://www.sql.ru/forum/1122672/comparer-view?mid=16792805#16792805
...
Рейтинг: 0 / 0
Comparer - View
    #38796210
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саша, будет возможность, погляди пожалуйста, для тройки, так для тройки, я так полагаю ты понял о чем я просил.

Проблема не является фатальной/блокирующей, но некоторые хлопоты доставляет.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Comparer - View
    #39564260
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно повторить свою просьбу?

заменить 2 строки в скрипте drop+create на на один оператор create or alter для вьюх?

Сейчас, по факту, я применяю руками ДДЛ для вьюх по всем базам, потом натравливаю штатный компарер. Либо рукам правлю скрипты, тупо выкидываю дропы и меняю крейты на алтеры.

Если вьюху не дропать, то все срабатывает хорошо, я даже проверил, если из этой вьюхи есть недофетченный на клиента резалтсет и то алтер срабатывает. Хотя это и нарушения правила "апдейтить метаданные только монопольно".

Если изменилась вьюха, то делаем пустышками все завязанные с ней хранимки, делаем крейт ор алтер вьюхе, потом заливает тела хранимок обратно.
...
Рейтинг: 0 / 0
Comparer - View
    #39564337
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyЕсли изменилась вьюха, то делаем пустышками все завязанные с ней хранимки, делаем крейт ор алтер вьюхе, потом заливает тела хранимок обратно.

Можно я тоже повторю свой вопрос? Чем это принципиально отличается от того, что есть сейчас?
Я разницы не вижу.
...
Рейтинг: 0 / 0
Comparer - View
    #39564370
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дроп вьюхи требует ОБЯЗАТЕЛЬНО всех выгнать из базы. Альтер не требует.
...
Рейтинг: 0 / 0
Comparer - View
    #39564383
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyДроп вьюхи требует ОБЯЗАТЕЛЬНО всех выгнать из базы. Альтер не требует.

Понятно.
Костылик в предложенном виде я делать не буду: мороки много, а выхлоп околонулевой.
Если уж делать, то нормально. Т.е., вместо дропа - ALTER с фейковым селектом из RDB$DATABASE, с тем же набором полей тех же типов. Затем нормальный ALTER. Как-то так.
...
Рейтинг: 0 / 0
Comparer - View
    #39564399
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertТ.е., вместо дропа - ALTER с фейковым селектом из RDB$DATABASE, с тем же набором полей тех же типов. Затем нормальный ALTER.До такого простого маневра я что-то не догадался. Да, так пожалуй будет лучше, он отпустит депенденсы не хуже дропа.

Готов потестить, у меня есть и хранимки делающие селект из вьюх, и вюьхи селектящие из хранимок, рекурсивных только нет.
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 1 из 2
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Comparer - View
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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