powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
22 сообщений из 22, страница 1 из 1
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38979579
victor79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли и в каких СУБД и как эта тема называется, что бы я отправил запрос, получил управляющих хэндел на выборку, и после СУБД оповещала бы об изменениях, которые затрагивают этот запрос. Что бы не отсылать его заново по таймеру для отслеживания новых данных.
Или как это вообще делается для одно и многопользовательских СУБД?
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38979586
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor79Есть ли и в каких СУБД и как эта тема называется
В Interbase и Firebird это events.
В Oracle это Change Subscription.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38980074
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но на самом деле это всё от лукавого...
Сервер должен быть всегда пассивен, это -- основа производительности СУБД. (одна из).
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38980194
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Postgresql имеет возможность посылать уведомления.
LISTEN/NOTIFY
Сообщение уйдёт по завершению транзакции
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38980207
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только драйвер должен это поддерживать,
иначе придётся слать запрос
LISTEN <имя канала>;
руками. И ещё есть ограничения
процесс должен иметь постоянное соединение, чтоб ему пришло сообщение,
иначе не придёт.
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38980289
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor79,

в InterBase XE7 сделано "пассивное оповещение". То есть, подписавшись на изменения можно переключением режимов для одного и того же select видеть или актуальные данные, или только измененные (с признаком изменения - upd/del/ins).
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38981585
victor79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivНо на самом деле это всё от лукавого...
Сервер должен быть всегда пассивен, это -- основа производительности СУБД. (одна из).
не согласен. Именно повторные опросы по таймеру и будут загружать сервер.
А постоянный коннект, с подпиской на изменения отображаемых на просмотр данных избавит от этого. Ну или таблички будут не обновляемые, что не очень красиво.

Спасибо ответившим.

Еще, а есть ли какие методы для такого оповещения из Qt?
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38981587
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor79есть ли какие методы для такого оповещения из Qt?
Никогда не слышал о такой СУБД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38982200
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor79MasterZivНо на самом деле это всё от лукавого...
Сервер должен быть всегда пассивен, это -- основа производительности СУБД. (одна из).
не согласен. Именно повторные опросы по таймеру и будут загружать сервер.


Я разве тебе рекомендовал делать повторные опросы БД по таймеру ?
Я такого тебе не говорил.
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38982207
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНо на самом деле это всё от лукавого...
Сервер должен быть всегда пассивен, это -- основа производительности СУБД. (одна из).

Я хочу пояснить, если вы не понимаете.

Представьте себе БД и 10 пользователей к ней.
Каждый пользователь делает изменение. N изменений (N=10).
СУБД должна разослать оповещения, M оповещений. M = тоже 10, каждому пользователю ( в реальности может быть не каждому, а
k*N, где k < 1, но это не очень важно).

Вычислим объём работы для СУБД по рассылке.

O() = M*N = N**2

O(10 пользоват) = 100 -- вроде бы и не так страшно.

Теперь увеличиваем количество пользователей до 100 и 1000.

O(100 пользоват) = 10000
O(1000 пользоват) = 1000000

Ну и так далее...
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38982570
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

кстати, да. в InterBase и Firebird есть events, которые рассылаются подписчикам на конкретные события. Причем, рассылаются только по commit. Events, накопленные в транзакции, рассылаются по commit пачкой.
Так вот. Были запросы на расширение функциональности, чтобы ловить эвенты не по конкретному значению строки, а по маске.
Разработчики Firebird сделали такой билд, протестили, и пришли к выводу, что отдавать людям такой билд нельзя, потому что вот это самое получение событий по маске элементарно может убить сеть.

"так и не отведали они райских яблочек".
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38982767
victor79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivMasterZivНо на самом деле это всё от лукавого...
Сервер должен быть всегда пассивен, это -- основа производительности СУБД. (одна из).

Я хочу пояснить, если вы не понимаете.

Представьте себе БД и 10 пользователей к ней.
Каждый пользователь делает изменение. N изменений (N=10).
СУБД должна разослать оповещения, M оповещений. M = тоже 10, каждому пользователю ( в реальности может быть не каждому, а
k*N, где k < 1, но это не очень важно).

Вычислим объём работы для СУБД по рассылке.

O() = M*N = N**2

O(10 пользоват) = 100 -- вроде бы и не так страшно.

Теперь увеличиваем количество пользователей до 100 и 1000.

O(100 пользоват) = 10000
O(1000 пользоват) = 1000000

Ну и так далее...

Ну я поясню. Предположим, есть 100 пользователей, у которых в текущий момент открыто по окошку с табличкой, в которой отображается по 40 строк. Скорей всего у них будут преимущественно разные множества и таблиц и подмножества строк. И сервер должен отсылать событие, лишь тогда, когда изменение касается открытого множества. Что на стороне сервера сделать не сложно, храня индексированно активные селекты.

Отображаются в основном только таблицы введенные вручную, а не генерируемые. И изменения вручную. Т.е. одна точечная запись, должна отобразить изменения пусть будет в не более чем пяти пользователей. Это будет актуально, если это скажем таблица остатков, за которые менеджеры грызуться резервируя. Либо отослать события пяти пользователям, либо все сто, каждые 10 сек будут переопрашивать свой селект.

Но может быть Вы и правы, я просто теоретизирую.
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38982771
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor79сервер должен отсылать событие, лишь тогда, когда изменение касается
открытого множества.
Тогда остаётся только Оракул с его Query Change Notification.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38982778
wamaco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovvictor79сервер должен отсылать событие, лишь тогда, когда изменение касается
открытого множества.
Тогда остаётся только Оракул с его Query Change Notification.


или interbase 7
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38982868
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wamacoили interbase 7
Нет. Появившиеся в Interbase XE7 Change View это совсем другая вещь и она относится всё
таки к классу pull-технологий, а автору нужен push.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38982873
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor79Ну я поясню. Предположим, есть 100 пользователей, у которых в текущий момент открыто по окошку с табличкой, в которой отображается по 40 строк. Скорей всего у них будут преимущественно разные множества и таблиц и подмножества строк. И сервер должен отсылать событие, лишь тогда, когда изменение касается открытого множества. Что на стороне сервера сделать не сложно, храня индексированно активные селекты.

Отображаются в основном только таблицы введенные вручную, а не генерируемые. И изменения вручную. Т.е. одна точечная запись, должна отобразить изменения пусть будет в не более чем пяти пользователей. Это будет актуально, если это скажем таблица остатков, за которые менеджеры грызуться резервируя. Либо отослать события пяти пользователям, либо все сто, каждые 10 сек будут переопрашивать свой селект.

Но может быть Вы и правы, я просто теоретизирую.
Сложность имплементации этой задачи растёт астрономически, если вспомнить что пользователь
выбирает вовсе не ТАБЛИЧКУ а курсор. Это важное смыловое ограничение которое на порядки
усложняет желаемый мониторинг.

Решения на всяких там Streams, GoldenGate возможно взлетают но наверное для них нужен very specific
клиент и это не просто драйвер.
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38982942
Искусственная все-таки ситуация. Невозможно, по-моему, работать по такой технологии - менеджер должен глазками следить за табличкой в окошке и реагировать на изменения. Нужно ведь помнить, в какой строке какое значение было, чтобы понять, что оно изменилось. А если было 150, потом стало 200, а через секунду снова 150 ? И прилетит ивент, что значение изменилось, а менеджер смотрит - ни фига и не изменилось, те же 150 светятся.

В таких случаях, имхо, ПО должно уметь автоматически делать нужные транзакции по заранее составленным заявкам менеджеров - например, если значение в поле достигнет 180, то делаем транзакцию.
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38983006
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю что это особый класс ПО наподобие диспетчерских центров и центров управления
но у них свои стандарты и протоколы отличные от "односторонних" наподобие SQL-RDBMS
или классического синхронного http.
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38983334
victor79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нудный ламерИскусственная все-таки ситуация. Невозможно, по-моему, работать по такой технологии - менеджер должен глазками следить за табличкой в окошке и реагировать на изменения. Нужно ведь помнить, в какой строке какое значение было, чтобы понять, что оно изменилось. А если было 150, потом стало 200, а через секунду снова 150 ? И прилетит ивент, что значение изменилось, а менеджер смотрит - ни фига и не изменилось, те же 150 светятся.

В таких случаях, имхо, ПО должно уметь автоматически делать нужные транзакции по заранее составленным заявкам менеджеров - например, если значение в поле достигнет 180, то делаем транзакцию.

я это теоретизирую. Что менеджер следящий за остатками, что программист, который хочет что бы с базой было удобно работать. Программист может захотеть сделать для менеджера отслеживание появления остатка, даже когда таблица закрыта. Типа пользователь поставил галочку, если появится остаток под эту заявку, пока она актуальна, то оповестить. Сервер это должен помнить, либо как активный запрос, либо как поставленное оповещение... Упс. Вывел новое определение желаемоего. Не активный запрос, а запомненное событие. Впрочем это почти то же самое.
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38983341
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот помню у меня когда я начинал работать с sql тоже такие же желания были. А сейчас даже мыслей не возникает.
События, на которые сервер должен реагировать, надо на самом сервере и обрабатывать, а юзер когда ему надо тогда и посмотрит
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38987225
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
victor79я это теоретизирую. Что менеджер следящий за остатками, что программист, который хочет что бы с базой было удобно работать. Программист может захотеть сделать для менеджера отслеживание появления остатка, даже когда таблица закрыта. Типа пользователь поставил галочку, если появится остаток под эту заявку, пока она актуальна, то оповестить. Сервер это должен помнить, либо как активный запрос, либо как поставленное оповещение... Упс. Вывел новое определение желаемоего. Не активный запрос, а запомненное событие. Впрочем это почти то же самое.
Можно для этих особых менеджеров-диспетчеров создать math-views или таблички которые обновляются
по триггеру из основной схемы. И долбить их из приложения каждые 3 секунды. (А чё нормальный интервал
для принятия решения.) Быстрее вроде и не надо. Чё там. Не 3d action игра всё таки.
...
Рейтинг: 0 / 0
а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
    #38988387
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ долбить их из приложения каждые 3 секунды.
Это хорошо пока у системы нет большого количества пассивных клиентов.
Иначе это способ перевести их из пассивных в активных.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / а есть ли api, что бы драйвер базы оповещал программу о новых,удаленных,и пр. изменениях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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