powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / лог для вьюхи
12 сообщений из 12, страница 1 из 1
лог для вьюхи
    #40100726
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!
Вопрос вот в чем - есть вьюха, которая собирает данные из нескольких разных баз и серверов (разные версии MS SQL, не оракл), как проще всего реализовать лог на изменение результирующего набора данных (добавилась запись/ушла/поменялось неключевое поле)?
Понятно, сходу джобом выгружать в табличку по дате времени и сравнивать с предыдущим состоянием. Более элегантного решения нет?
...
Рейтинг: 0 / 0
лог для вьюхи
    #40100728
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зависит от того, есть ли возможность вносить изменение в "нескольких разных баз и серверов"


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

Можно попробовать поиграться с CHECKSUM_AGG с группировкой до диапазонам ключей, чтобы не тащить все данные по сети, а отсекать только диапазоны с изменениями.
...
Рейтинг: 0 / 0
лог для вьюхи
    #40100742
Фотография StarikNavy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_viktorovich,

вьюха это только запрос, что вы делаете с его результатами?
...
Рейтинг: 0 / 0
лог для вьюхи
    #40100749
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
denis_viktorovich,
вариант навешать триггеры на все входящие в view таблицы рассматривается?
ну или CDC на них?
а если есть доступ только в этой view, а к источникам-таблицам на удалённых серверах неть, то "не элегантный вариант" самый элегантный
...
Рейтинг: 0 / 0
лог для вьюхи
    #40100750
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно, а зачем?
Что вы хотите получить в итоге?
...
Рейтинг: 0 / 0
лог для вьюхи
    #40100752
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
uaggster
Собственно, а зачем?
Что вы хотите получить в итоге?

Ваши специалисты еще не в курсе, что логи можно править в своих интересах? Тогда мы идём к Вам!
...
Рейтинг: 0 / 0
лог для вьюхи
    #40100774
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_viktorovich Более элегантного решения нет?Если запись добавилась/ушла то ничего элегантного нет. Тупо в лоб.
Самое сложное поймать изменение неключегого поля. Сравнивать все поля со всеми полями (тем более индексировать все поля) накладно.
Можно или добавить rowversion на таблицу источник, или считать хэш от всех полей .
А вот этот вот хэш/rowversion можно индексировать и/или исключать по CHECKSUM_AGG

И да, в итоге будет не вьюха, а честная таблица на приемнике.
Опять же, если можно трогать источник то лучше поигратся с CDC/репликацией
...
Рейтинг: 0 / 0
лог для вьюхи
    #40100787
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257
..Самое сложное поймать изменение неключегого поля. Сравнивать все поля со всеми полями (тем более индексировать все поля) накладно..

ну вы, блин, даёте...
вьюха с разных серверов, какое тут не "накладно"
Код: sql
1.
2.
3.
4.
insert into Получатель
select * from Источник
except
select * from Получатель


В получателе дописать поле с датой-временем добавления записи, которое исключить при except.
Можно ограничить глубину поиска, дабы не очень сильно грузить инфраструктуру.
И так раз в минуту.
После чего по ключикам (которые в новой табличке перестанут быть pk) можно будет будет посмотреть всю историю изменения.
...
Рейтинг: 0 / 0
лог для вьюхи
    #40100801
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_viktorovich,

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

вьюха это только запрос, что вы делаете с его результатами?



Есть скажем объект аля заказ, плановые сроки, даты запуска/выпуска, параметры хранятся в одной системе, данные об изготовлении в другой, данные о контрагенте и контракте в третьей. Версии скуля разные, где то и 2005. И есть задача интеграции с другой системой, и как тут правильно сказали затратность процесса высокая, выгружать все подряд не получится (просто не будет хватать ночи со временем). Брать им надо только измененные объекты и желательно понимать, что изменилось (дабы не все обновлять, ну и хранить причину изменений). Итого, как я понял - или логи на все входящие таблицы или периодическая выгрузка в таблицу и уже анализ ее содержимого. И наверное в данном случае применимее второе.
...
Рейтинг: 0 / 0
лог для вьюхи
    #40100853
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
uaggster
Собственно, а зачем?
Что вы хотите получить в итоге?

Ваши специалисты еще не в курсе, что логи можно править в своих интересах? Тогда мы идём к Вам!

хм, не могу представить себе интересанта подобного безобразия. Это как наступать себе на ногу :-).
...
Рейтинг: 0 / 0
лог для вьюхи
    #40100860
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
denis_viktorovich
andy st
пропущено...
Ваши специалисты еще не в курсе, что логи можно править в своих интересах? Тогда мы идём к Вам!

хм, не могу представить себе интересанта подобного безобразия. Это как наступать себе на ногу :-).

иногда встречаются люди, которые если могут с помощью update переложить ответственность за косяк на коллегу или просто подставить его, то делают этот update
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / лог для вьюхи
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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