|
|
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. подскажите пожалуйста что можно придумать или настроить при таких условиях: больше 3 000 000 операций в одной транзакции, проходят очень долго больше 4 часов. С издателя на репликатор быстро заливаются, а с репликатора на подписчик, медленно. RServer 12.6 ASE 12.5.3 Как можно увеличить скорость? Ресурсы сервера загружены меньше половины. А репликатора вообще не загружены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 18:02 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
Александр123Здравствуйте. подскажите пожалуйста что можно придумать или настроить при таких условиях: больше 3 000 000 операций в одной транзакции, проходят очень долго больше 4 часов. С издателя на репликатор быстро заливаются, а с репликатора на подписчик, медленно. RServer 12.6 ASE 12.5.3 Как можно увеличить скорость? Ресурсы сервера загружены меньше половины. А репликатора вообще не загружены. Увеличьте параметры dsi_xact_group_size и dsi_cmd_batch_size Детальней тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 18:16 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
спасибо, но уже эти параметры подкручены. Мож еще чтото? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2009, 19:55 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
Александр123 пишет: > Здравствуйте. подскажите пожалуйста что можно придумать или настроить > при таких условиях: > больше 3 000 000 операций в одной транзакции, проходят очень долго > больше 4 часов. С издателя на репликатор быстро заливаются, а с Вообще, большие транзакции не для конфигураций с репсервером. Хорошо, что ещё вообще прошло. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2009, 09:36 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
moris dsi_xact_group_size и dsi_cmd_batch_size я еще кеш dsi_sqt_max_cache_size конкретному коннекшену увеличивал и размер сетевого пакета db_packet_size ... и грозил страшным "джанглкингом" програмисту :) ЗЫЖ второе помогает больше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2009, 11:15 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
0rc, А если избежать таких больших транзакций никак не получается, то посмотрите на RS15.2, там появились классные фичи для оптимизации таких больших транзакций. Если 3000000 операций - это следствие какой-то одной операции, которая делает update или delete, затрагивающей 3000000 строк, то передается только та команда, которая в оригинале изменила эти строки, вместо 3 млн единичных (см SQL statement replication ) Если же это инсерты 3 млн строк, то Support for DSI bulk copy-in ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2009, 11:23 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
не ошибаюсь что , для сказаного Moris надо обновить и датасервер до Adaptive Server Enterprise 15.0.3 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2009, 11:45 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
нет не ошибаетесь. ASE чтобы поддерживал SQL statement replication должен быть 15.0.3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2009, 14:16 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
Проблема не решена :( Возможности перейти на 15ую версию реп сервера нету. Пробовал играться с паралельными дси, но все выполняется в одном потоке; Заметил что в процессе переливки этой транзакции растет количество локов 1000000 и увеличивается; Нагрузка на подписчик не увеличивается. dsi_serialization_method to 'no_wait' dsi_partitioning_rule to 'none' dsi_num_threads 10 оно в спокойном режиме переливает себе данные и никуда не торопится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2009, 17:47 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
Идут запросы типа делиты и инсерты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2009, 17:49 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
merphy9, по моему скромному имхо паралелизм не получится... все от одного пользователя да и я как-то встречал советы насчет того что больше 5 (реально 2-3) потоков лучше не ставить... может проще запрос как-то переработать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 11:08 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
+1 0rc Да от одного пользователя, и операции по одной таблице, эффективно распаралеллить почти не реально.. Рассмотрите вариант репликации подобных операций через репликацию сохраненных процедур.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 11:46 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
Ребята спасибо попробую почитать про репликацию сохраненных процедур. Если не сложно опишите в кратце как это работает. Еще вопрос по счетчикам как можно посмотреть сколько транзакций проходит в секунду. Я пытался смотреть в рссд таблице rs_counters там я так понял значения счетчиков для примера стоят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 12:13 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 15:01 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
merphy9Ребята спасибо попробую почитать про репликацию сохраненных процедур. Если не сложно опишите в кратце как это работает. Еще вопрос по счетчикам как можно посмотреть сколько транзакций проходит в секунду. Я пытался смотреть в рссд таблице rs_counters там я так понял значения счетчиков для примера стоят. Транзакций где проходят ?? с PrimaryDB или же применяются на ReplicateDB.. Это разные понятия, так как на ReplicateDB транзакции группируются.. Лучше смотрите счетчики типа кол-ва команд (CmdsRead) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 15:08 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
moris, спасибо, буду так делать и тестировать. Результаты выложу на следующей неделе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 15:11 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
Те что репликейт дб. Ну я так и смотрел по єтому счетчику, а еще в admin who,sqt тоже можно посмотреть сколько в очереди операций. Думал может есть какойто счетчик как TPS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 15:42 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
Это не Asynchronous Procedures Чтото у меня не получается. Я сначала подписываю табличку в репликацию потом подписываю процедуру в репликацию. Или нужно выбрать только одну из table repdef и function repdef? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2009, 16:14 |
|
||
|
RepServer 3000000 операций в одной транзакции
|
|||
|---|---|---|---|
|
#18+
Может быть и таблица отмечена для репликации и 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 (см. мой пример выше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2009, 16:48 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=38&tid=2011054]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 394ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...