powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / RepServer 3000000 операций в одной транзакции
19 сообщений из 19, страница 1 из 1
RepServer 3000000 операций в одной транзакции
    #35854162
Здравствуйте. подскажите пожалуйста что можно придумать или настроить при таких условиях:
больше 3 000 000 операций в одной транзакции, проходят очень долго больше 4 часов. С издателя на репликатор быстро заливаются, а с репликатора на подписчик, медленно.
RServer 12.6 ASE 12.5.3
Как можно увеличить скорость?
Ресурсы сервера загружены меньше половины. А репликатора вообще не загружены.
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35854203
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр123Здравствуйте. подскажите пожалуйста что можно придумать или настроить при таких условиях:
больше 3 000 000 операций в одной транзакции, проходят очень долго больше 4 часов. С издателя на репликатор быстро заливаются, а с репликатора на подписчик, медленно.
RServer 12.6 ASE 12.5.3
Как можно увеличить скорость?
Ресурсы сервера загружены меньше половины. А репликатора вообще не загружены.


Увеличьте параметры
dsi_xact_group_size и dsi_cmd_batch_size
Детальней тут
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35854370
спасибо, но уже эти параметры подкручены.
Мож еще чтото?
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35855011
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр123 пишет:

> Здравствуйте. подскажите пожалуйста что можно придумать или настроить
> при таких условиях:
> больше 3 000 000 операций в одной транзакции, проходят очень долго
> больше 4 часов. С издателя на репликатор быстро заливаются, а с

Вообще, большие транзакции не для конфигураций с репсервером.
Хорошо, что ещё вообще прошло.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35855298
0rc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moris
dsi_xact_group_size и dsi_cmd_batch_size

я еще кеш dsi_sqt_max_cache_size конкретному коннекшену увеличивал и размер сетевого пакета db_packet_size ...
и грозил страшным "джанглкингом" програмисту :)

ЗЫЖ второе помогает больше :)
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35855326
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0rc,

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

Если 3000000 операций - это следствие какой-то одной операции, которая делает update или delete, затрагивающей 3000000 строк, то передается только та команда, которая в оригинале изменила эти строки, вместо 3 млн единичных (см SQL statement replication )

Если же это инсерты 3 млн строк, то Support for DSI bulk copy-in
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35855402
Сергей08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не ошибаюсь что , для сказаного Moris надо обновить и датасервер до
Adaptive Server Enterprise 15.0.3 ?
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35855984
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет не ошибаетесь. ASE чтобы поддерживал SQL statement replication должен быть 15.0.3.
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35936917
merphy9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема не решена :(
Возможности перейти на 15ую версию реп сервера нету.
Пробовал играться с паралельными дси, но все выполняется в одном потоке;
Заметил что в процессе переливки этой транзакции растет количество локов 1000000 и увеличивается;
Нагрузка на подписчик не увеличивается.
dsi_serialization_method to 'no_wait'
dsi_partitioning_rule to 'none'
dsi_num_threads 10
оно в спокойном режиме переливает себе данные и никуда не торопится.
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35936930
merphy9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идут запросы типа делиты и инсерты
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35938042
0rc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
merphy9,
по моему скромному имхо паралелизм не получится... все от одного пользователя
да и я как-то встречал советы насчет того что больше 5 (реально 2-3) потоков лучше не ставить...
может проще запрос как-то переработать ?
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35938182
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1 0rc
Да от одного пользователя, и операции по одной таблице, эффективно распаралеллить почти не реально..
Рассмотрите вариант репликации подобных операций через репликацию сохраненных процедур..
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35938311
merphy9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята спасибо попробую почитать про репликацию сохраненных процедур. Если не сложно опишите в кратце как это работает.
Еще вопрос по счетчикам как можно посмотреть сколько транзакций проходит в секунду.
Я пытался смотреть в рссд таблице rs_counters там я так понял значения счетчиков для примера стоят.
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35938860
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
merphy9,

Как вкратце работает репликация SP

Допустим у вас update/delete большого кол-ва строк.. update some_tab where pk>1000
в результате у вас произойдет много изменений и запишутся в лог как
update some_tab where pk=1001
update some_tab where pk=1002
...
update some_tab where pk=9998
update some_tab where pk=9999

т.е. 8000 подобных строк должны передаваться через RS. и потом эти же 8000 будут применяться DSI, предварительно разбив их еще и на группы и постоянно изменяя rs_lastcommit

Если же вы сделает SP как
create procedure sp_for_update
as
benig
update some_tab where pk>1000
end

и подпишите эту sp на репликацию, то вместо 8000 строк, будет передаваться по репликации только одна - - exec sp_for_update. DSI ее проведет на StbDB и там уже произойдет фактический update..

Детальней см. sp_setrepproc
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35938885
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
merphy9Ребята спасибо попробую почитать про репликацию сохраненных процедур. Если не сложно опишите в кратце как это работает.
Еще вопрос по счетчикам как можно посмотреть сколько транзакций проходит в секунду.
Я пытался смотреть в рссд таблице rs_counters там я так понял значения счетчиков для примера стоят.

Транзакций где проходят ?? с PrimaryDB или же применяются на ReplicateDB.. Это разные понятия, так как на ReplicateDB транзакции группируются.. Лучше смотрите счетчики типа кол-ва команд (CmdsRead)
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35938896
merphy9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
moris, спасибо, буду так делать и тестировать. Результаты выложу на следующей неделе.
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35939032
merphy9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Те что репликейт дб.
Ну я так и смотрел по єтому счетчику, а еще в admin who,sqt тоже можно посмотреть сколько в очереди операций. Думал может есть какойто счетчик как TPS
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35952994
merphy9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это не Asynchronous Procedures
Чтото у меня не получается.
Я сначала подписываю табличку в репликацию потом подписываю процедуру в репликацию.
Или нужно выбрать только одну из table repdef и function repdef?
...
Рейтинг: 0 / 0
RepServer 3000000 операций в одной транзакции
    #35953089
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть и таблица отмечена для репликации и SP (которая изменяет эту таблицу), тогда когда выполняется из клиентской сессии стандартная DML, то эта DML передается на RS. Если же выполняется из клиентской сессии вызов SP, которые меняет подписанную таблицу, то передается только вызов SP, изменения, которые делает эта SP - отдельно не передаются

If you have marked the stored procedure for replication with sp_setrepproc, Replication Server copies execution of the procedure to the standby database. It does not copy the effects of the stored procedure to the standby database.

Вам надо выполнять из клиента не update some_tab where pk>1000 ... а exec sp_for_update (см. мой пример выше)
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / RepServer 3000000 операций в одной транзакции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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