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

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
08.08.2018, 17:24
|
|||
|---|---|---|---|
|
|||
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
Доброе. Копируем данные до актуального состояния из одной таблицы в другую. Каждую минуту в агенте выполняется задание по синхронизации основной таблицы и вторичной с этим кодом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Это действительно правильный способ? Может есть более правильный способ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2018, 17:37
|
|||
|---|---|---|---|
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
MathewSunЭто действительно правильный способ? Может есть более правильный способ? это заново изобретенный велосипед оригинальное решение от микрософт - репликация https://docs.microsoft.com/en-us/sql/relational-databases/replication/transactional/transactional-replication ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2018, 17:46
|
|||
|---|---|---|---|
|
|||
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
Синхронизация с nolock? O_o ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2018, 18:22
|
|||
|---|---|---|---|
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
MathewSun, репликация слишком банальна... 1:1, статью исключить - проблема, те же джобы постоянно крутятся, не дай бог разъедется восстановить без бэкапов - тоже проблема. конфликты если возникли - убиться можно пока разберешься.. в этом плане интереснее change tracking + service broker.. легкий, простой, шустрый и стока понаворотить можно.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2018, 18:30
|
|||
|---|---|---|---|
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
ShIgor, почему 1:1 ? там же фильтры есть https://www.mssqltips.com/sqlservertip/4116/sql-server-transactional-replication-static-row-and-column-filters/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2018, 18:53
|
|||
|---|---|---|---|
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
komrad, про это и говорю, что банально. нет, я не против репликации, просто описал на что нарывался и чем проблему решил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2018, 13:47
|
|||
|---|---|---|---|
|
|||
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
MathewSun, Интересно, а в исходной таблице данные никогда не обновляются, удаляются, а только вставляются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2018, 20:19
|
|||
|---|---|---|---|
|
|||
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
uaggster, Да, это собирается статистика посещения, в день приходит по 300.000 записей, в Агенте SQL Server этот код запускается каждую минуту. Что-то мне подсказывает что это кривое решение..) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.08.2018, 10:38
|
|||
|---|---|---|---|
|
|||
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
MathewSun, И в чем Вы видите кривоту? В принципе, простое и надежное решение для Вашей задачи. С репликацией, скорее всего, не справитесь. В день приходит 300000 записей, обновление производите каждую минуту, т.е. скорость изменения 300000/(24*60)=208 строк в минуту. C top 10000 можно обойтись и без цикла while, и даже без top, т.к. есть where id>idMin. Да у Вас и id это nvarchar(15), ужас! 30 байт вместо 4! Есть ли смысл синхронизировать так часто? Что произойдет если интервал синхронизации увеличить до 60 минут? Мироздание не рухнет? В смысле статистика не протухнет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.08.2018, 11:38
|
|||
|---|---|---|---|
|
|||
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
Проблема этого решения в том, что при каноническом подходе чтения будут ожидать записи и наоборот. Если простои в записи недопустимы, то можно использовать Read Uncommitted чтения, что автоматически приводит к чтению неподтвержденных транзакций, переключить сервер или базу в режим версионирования, использовать In-memory таблицу и тому подобное. Но все эти методы имеют недостатки. Более-менее сбалансированным решением мне видится настройка CDC, но она требует определенной практики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.08.2018, 12:41
|
|||
|---|---|---|---|
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
Владислав Колосов, зачем для статистики посещений CDC? СТ за глаза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.08.2018, 14:36
|
|||
|---|---|---|---|
|
|||
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
ShIgor, В СТ "каждая таблица, включенная для отслеживания изменений, содержит внутреннюю таблицу на диске, которая используется функциями отслеживания изменений для определения версии изменения и строк, измененных после определенной версии". Т.е. в планы модифицирующего запроса к отслеживаемой таблице будут включены операции вставки во внутреннюю таблицу информации об изменениях, что увеличивает нагрузку. О чем и беспокоится Владислав Колосов. К тому же ТС хочет иметь копию на другом сервере, т.е. нужна операция копирования из этих внутренних таблиц в таблицу ТС. В данной задаче копируются только те строки, которые появились после последней синхронизации. Связь между серверами уже есть, исходное решение работает, но у ТС есть сомнение, не криво ли оно? С моей точки зрения это нормальное решение, не требующее дополнительных настроек сервера. Его можно немного упростить: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Осталось выяснить как часто нужно выполнять эту операцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.08.2018, 14:46
|
|||
|---|---|---|---|
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
MathewSun, Решение полная дрянь. 1. Ну фиг с ним с изменениями 2. Nolock оставить - получаете непонятно что. 3. Nolock убрать можете получить пропуски. Если хотите без CT для этого есть rowversion/timestamp + min_active_rowversion ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.08.2018, 14:57
|
|||
|---|---|---|---|
Клонирование постоянная синхронизация таблиц) |
|||
|
#18+
MathewSunЧто-то мне подсказывает что это кривое решение..)Правильное решения вам уже назвали - штатная репликация. В вашем случае транзакционная. Перечисленные в 21634858 якобы проблемы, на самом деле таковыми не являются. Ваше текущее решение, CT, CDC, Service Broker как средство доставки и т.п. - просто изобретение своего велосипеда с неясными перспективами уверенной езды на нем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1689287]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 352ms |

| 0 / 0 |
