У меня есть большая таблица в MS SQL, из которой у меня возникают проблемы с чтением, когда стороннее приложение записывает в нее. Мой план решить эту проблему - переместить все данные из одной базы данных и периодически удалять данные в исходной базе данных. Проблема возникает, когда в таблице слишком много данных (сотни миллионов строк), но мне нужно иметь возможность читать все данные для строк, которые могут превышать миллиард строк. У меня нет возможности изменять исходную базу данных, потому что она сторонняя.
Мне любопытно, какие варианты могут помочь облегчить это. Можно ли реплицировать таблицу таким образом, чтобы при удалении данных в исходной таблице они не удалялись из целевой таблицы?
Есть несколько возможных решений этой проблемы. Выбор правильного зависит от вашей среды и ваших требований, которые здесь подробно не рассматриваются.
Исходя из вашей заявленной потребности в запросе всей многомиллионной (или миллиардной) таблицы строк, я ожидаю, что вам нужно будет сделать некоторые отчеты из базы данных поставщиков. Вот несколько потенциальных решений, которые я бы рассмотрел для достижения этой цели:
Немного дополнительной информации может помочь нам лучше помочь вам.
Стандартный подход - использовать какой-либо сценарий ETL для создания копии данных перед удалением.
Нет причин, по которым ваши таблицы хранилища данных должны находиться на одном сервере, а тем более привязаны к действующей базе данных с ограничениями. Удаление не должно повлиять на склад. Просто имейте команды, которые добавляют данные.