powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возрат набора данных из DML-триггера
25 сообщений из 50, страница 2 из 2
Возрат набора данных из DML-триггера
    #40034078
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
Складывается впечатление, что концепция не верна в корне.
+1
именно

Во всей этой "концепции" отсутствует главное:
- где гарантия, что "приёмник" принял и/или обработал этот датасет ?
... нуу отправили вы его (датасет) приёмнику, - а в это время он, как раз, отвалился от питания, ... - как это решается ? :)
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034079
helengood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ptr128

... через PipeLineDB и/или TimeScaleDB. Эти то легко смогут перемалывать свыше сотни тысяч записей в секунду.


Огромное спасибо!
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034081
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helengood
N-писателей и один читатель. Ему и должны высылаться данные для дальнейшей обработки.
Читатель сам должен забирать данные. Иначе поимеете проблемы, если в дальнейшем придется увеличить число читателей.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034084
helengood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court, Apache Kafka "...Одной из особенностей реализации инструмента является применение техники, сходной с журналами транзакций, используемыми в системах управления базами данных" (сразу оговариваюсь "только что-то слышала")?
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034085
helengood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm
helengood
N-писателей и один читатель. Ему и должны высылаться данные для дальнейшей обработки.
Читатель сам должен забирать данные. Иначе поимеете проблемы, если в дальнейшем придется увеличить число читателей.


Спасибо, поняла
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034088
helengood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court
invm
Складывается впечатление, что концепция не верна в корне.
+1
именно

Во всей этой "концепции" отсутствует главное:
- где гарантия, что "приёмник" принял и/или обработал этот датасет ?
... нуу отправили вы его (датасет) приёмнику, - а в это время он, как раз, отвалился от питания, ... - как это решается ? :)


Тогда клиент должен быть реализован как фоновый процесс, готовый всегда откликнуться. Между СУБД и этим фоновым процессом брокер собщений, который обменивает в транзакции. Не принятые сообщения возвращаются поставщику (СУБД) и передаются снова до удачной транзакции.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034107
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helengood
court
пропущено...
+1
именно

Во всей этой "концепции" отсутствует главное:
- где гарантия, что "приёмник" принял и/или обработал этот датасет ?
... нуу отправили вы его (датасет) приёмнику, - а в это время он, как раз, отвалился от питания, ... - как это решается ? :)


Тогда клиент должен быть реализован как фоновый процесс, готовый всегда откликнуться. Между СУБД и этим фоновым процессом брокер собщений, который обменивает в транзакции. Не принятые сообщения возвращаются поставщику (СУБД) и передаются снова до удачной транзакции.
так, стоп !
а что, собственно, вы там "изобритаете" ?
DISTRIBUTED TRANSACTION - это не про вас ? :)
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034113
helengood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court, я уже согласна, что против клиент-серверной природы лучше не идти. Пусть будет серверу - серверово, а клиенту - клиентово :). И регулярный опрос таблицы будет самым дешевым и простым варианатом. Но, PostgreSQL я посмотрю ...

Спасибо за советы !
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034126
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helengood,

Погодите, не уходите. In-memory tables уже советовали? Посмотрите, может приглянется чего. Как минимум, обчитаться можно до упора, пока сетки хватает.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034134
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ennor Tiegael
helengood,

Погодите, не уходите. In-memory tables уже советовали? Посмотрите, может приглянется чего. Как минимум, обчитаться можно до упора, пока сетки хватает.

У тредстартера нет ни наносекунд, ни терабайт.
Нафига ему эти таблицы?
Обычные справятся с запасом в мильен процентов.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034245
helengood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ennor Tiegael
helengood,

Погодите, не уходите. In-memory tables уже советовали? Посмотрите, может приглянется чего. Как минимум, обчитаться можно до упора, пока сетки хватает.


Ennor Tiegael, добрый вечер! Я согласна :)...

Ну, вот мои рассуждения на это:

Хотя у таблиц In-Memory много ограничений и пока не могу сказать, какие из них могут все испортить, можно поступить так: таблица в памяти + триггер на INSERT (не нашла нигде, что DML-триггеры в таких таблицах не разрешены)-->он передает выборку (не более 30 строк) в хранимую процедуру, а там по ней пройтись курсором и сформировать план развозки--> отправить его куда надо...
В этом случае и посредника никакого не нужно. Все решается в одном месте.

Как-то так...Что скажете?
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034257
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helengood,

Давно я с ними не игрался, но in-memory таблицы в 2017 сервере позволяли делать INSERT в них только в один поток. Поэтому, рекомендую сначала убедиться, что вставка в них будет быстрее, чем в обычную таблицу с использованием нескольких ядер на хорошем SSD.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034266
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы на месте ТС забирал заявки из шины (периодически/по накоплению n штук) и передавал их в хп формирования плана развозки. Причем только в самом первом приближении (по-хорошему планов должно быть много и формироваться они должны динамически) .

Но я не на месте ТС и вообще не логист ни разу.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034332
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helengood
выборку (не более 30 строк) в хранимую процедуру, а там по ней пройтись курсором и сформировать план развозки--> отправить его куда надо...
В этом случае и посредника никакого не нужно. Все решается в одном месте.


Тредстартерша просто издевается над почтенным сообществом.

30 (ТРИДЦАТЬ!!!!) строк.
Курсор! КУРСОР!!!

О чем тут рассуждать?
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034359
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helengood
триггер на INSERT (...)-->он передает выборку (не более 30 строк) в хранимую процедуру, а там по ней пройтись курсором и сформировать план развозки--> отправить его куда надо...
В этом случае и посредника никакого не нужно. Все решается в одном месте.

Как-то так...Что скажете?
Скажу, что если у вас батчи по 30 строк, и вы собираетесь по ним курсором гулять, то ин-мемори не нужен. С такими объемами можно делать на чем угодно, хоть на текстовых файлах, которые потом пересылаются по мылу.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034388
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helengood
Есть множество разбросанных по всему городу терминалов, с которых в СМО поступают заявки на обслуживание (например, привезти пицуу, роллы, пирожки и т.д.). СМО должна отследить момент наступления достаточного накопления заявок, рассчитать план развозки и передать его курьеру.

И вот что вам сейчас мешает посчитать реальную частоту поступления заявок? 1-2 заявки в минуту?
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034436
helengood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

skyANA
helengood
Есть множество разбросанных по всему городу терминалов, с которых в СМО поступают заявки на обслуживание (например, привезти пицуу, роллы, пирожки и т.д.). СМО должна отследить момент наступления достаточного накопления заявок, рассчитать план развозки и передать его курьеру.

И вот что вам сейчас мешает посчитать реальную частоту поступления заявок? 1-2 заявки в минуту?


Поток сильно зависит от , как говорят, гравитационных центров в бассейне маршрута.
Про пирожки написала упрощенно,т.к. не думала, что будет такой отклик.
Смотрите, может обслуживаться 30-40 пунктов причем в двух направлениях(в зависимосит от величины населенного пункта). Каждый из них может быть как источником развозки, так и приемником (кроме крайних).На каждом из этих пунктов поток заявок варьируется в течение суток. В какие-то моменты, например когда все на\с работы едут, на некоторых пунктах могут быть по 10-30 заявок в минуту в течение двух часов, в какие-то по 1-2 .
В основе алгоритма лежит матрица корреспонденций (для двух направлений, соответственно, 2 матрицы), сторится по заявкам с терминалов. Соответственно, если 30 пунктов, то размер 30*30. Составленный план должен занимать пару минут. В зависимости от алгоритма (их несколько) матрица может обрабатываться построчно либо целиком. Вчера я написала только про обработку строки матрицы из 30 элементов и в этом случае, согласна, все просто: прошелся от одного конца к другому и все получилось.
Но если нужно обработать матрицу целиком и переходы по набору могут быть в обоих направлениях разной длины, то не уверена, что курсор лучше, обработки на клиенте ...
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034441
helengood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И да...Матрицы или строки формируются как только накопилось достаточно заявок. А это значит циклы формирования и обработки могут протекать сразу же один за одним. Или даже параллельно.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034448
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helengood,

У вас объемы копеечные, поэтому делайте как будет дешевле.
Обзовите ПО прототипом. Через годик, после накопления статистики переделаете, если будет нужно.

Имхо, пока глупо делать идеально, это будет дорого. Под идеально я понимаю возможность масштабирования на 2-3 порядка от текущего объема.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034455
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
helengood,

У вас объемы копеечные, поэтому делайте как будет дешевле.
Обзовите ПО прототипом. Через годик, после накопления статистики переделаете, если будет нужно.

Имхо, пока глупо делать идеально, это будет дорого. Под идеально я понимаю возможность масштабирования на 2-3 порядка от текущего объема.
Поддерживаю. При таких объемах практ. любая реализация взлетит. Потом, когда обнаружите узкое место, будет понятно, что поменять, чтобы его устранить.

Касательно матричных вычислений, я бы рекомендовал делать это не на SQL - в языке просто нет средств, как-либо помогающих в данной задаче.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034461
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helengood,

чем-то мне это симплекс-метод напомнило...
Хотя, если ограничений нет, то и алгоритм Дейкстера подойдет.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034566
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
helengood
skyANA,

skyANA
пропущено...

И вот что вам сейчас мешает посчитать реальную частоту поступления заявок? 1-2 заявки в минуту?


Поток сильно зависит от , как говорят, гравитационных центров в бассейне маршрута.
Про пирожки написала упрощенно,т.к. не думала, что будет такой отклик.
Смотрите, может обслуживаться 30-40 пунктов причем в двух направлениях(в зависимосит от величины населенного пункта). Каждый из них может быть как источником развозки, так и приемником (кроме крайних).На каждом из этих пунктов поток заявок варьируется в течение суток. В какие-то моменты, например когда все на\с работы едут, на некоторых пунктах могут быть по 10-30 заявок в минуту в течение двух часов, в какие-то по 1-2 .
В основе алгоритма лежит матрица корреспонденций (для двух направлений, соответственно, 2 матрицы), сторится по заявкам с терминалов. Соответственно, если 30 пунктов, то размер 30*30. Составленный план должен занимать пару минут. В зависимости от алгоритма (их несколько) матрица может обрабатываться построчно либо целиком. Вчера я написала только про обработку строки матрицы из 30 элементов и в этом случае, согласна, все просто: прошелся от одного конца к другому и все получилось.
Но если нужно обработать матрицу целиком и переходы по набору могут быть в обоих направлениях разной длины, то не уверена, что курсор лучше, обработки на клиенте ...


Горе - алгоритмисты.
1. 40 пунктов = 2^40 вариантов маршрута. (до 2^64 масштабируется бес проблем)
2. 1 (один) раз ВСЕ считаем.
3. Потом тупо выбираем.
4. За 10-20 мс справится сервер.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034582
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

даже 2^40 это, простите, триллион вариантов. Если же есть ограничения (максимальная загрузка курьера, особенности ассортимента, его наличие, скорость производства и т.п.), то это уже явно задача для линейного программирования, эвристики или нейросети, в которой SQL Server Вам мало поможет.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034620
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128
aleks222,

даже 2^40 это, простите, триллион вариантов. Если же есть ограничения (максимальная загрузка курьера, особенности ассортимента, его наличие, скорость производства и т.п.), то это уже явно задача для линейного программирования, эвристики или нейросети, в которой SQL Server Вам мало поможет.


Поговорить не с кем?
Вы, батенька, в алгоритмистике не сильно дальше тредстартерши смыслите.
...
Рейтинг: 0 / 0
Возрат набора данных из DML-триггера
    #40034750
helengood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну...Наверное, обсуждать больше нечего...Еще раз благодарю всех, давших советы. Буду пробовать. Как протестирую, отпишусь.

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


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