|
Сильно тупит репликация
|
|||
---|---|---|---|
#18+
Есть таблица на 1.5 млн записей, которая реплицируется транзакционной репликацией на другой mssql сервер с фильтром, отбирающим около 800 тыс записей В один момент на главной базе выполняется запрос типа Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Изменения на базу дистрибьютора попадают почти сразу же, однако на базе подписчика изменения не отображаются более 3х часов. Оценка времени распространения команд около часа В процессе ожидания на базе подписчика выполняли запрос с грязными чтениями, позволяющий оценить текущий прогресс операции Код: sql 1. 2. 3.
Видно что количество записей сначала довольно резво доходит до почти 450к, затем эта цифра также резво начинает падать, после чего вновь расти и на моменте обработки 80% записей скорость изменения падает до критической (по 1 записи в секунду). Т.е все выглядит так как будто он реплицирует первый запрос, затем откатывает его, затем начинает очень долго переливать оставшиеся 63 тыс записей Повторная инициализация подписки с генерацией нового снепшота при этом пересоздает все данные на базе подписчика (а это еще порядка 10 таблиц такого же или бОльшего размера) за 15 минцт Пробовали переписать запрос таким образом Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
С таким запросом все еще хуже, 12к записей переливаются за 45 минут Как можно объяснить такое странное поведение, куда копать? MSSQL Server 2012 Enterprise, другие сессии во время выполнения не работают с обоими серверами, блокировок нет В сессии которая выполняет прием данных на подписчике висит WAIT = async_network_io, cpu time практически не растет Сетевые проблемы исключены ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 18:50 |
|
Сильно тупит репликация
|
|||
---|---|---|---|
#18+
Быдло__кодер, async_network_io - это ожидания передачи по локальной сети. Может вам трафик поджимают по каналам? Попробуйте в другое время передавать, например или посмотрите на маршрутизаторе, что с трафиком происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 19:09 |
|
Сильно тупит репликация
|
|||
---|---|---|---|
#18+
Не, сеть вообще не загружена, перегенерили снепшот сразу после того как поняли что репу не дождаться и данные передались за 15 минут, хотя трафик на переливку таблиц наново в разы должен превышать апдейт 9 полей в 30% одной таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 19:17 |
|
Сильно тупит репликация
|
|||
---|---|---|---|
#18+
Быдло__кодер, Следует знать, что update на издателе, затрагивающий N строк, будет отреплицирован как N однострочных update на подписчике. А в вашем случае еще в одной транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2020, 19:44 |
|
|
start [/forum/topic.php?fid=46&fpage=50&tid=1685711]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 149ms |
0 / 0 |