Свопинг таблиц мс-sql

Теперь снова работает. Не уверен, что это произошло из-за перезапуска или из-за другой программы.

18
задан Brian Tompsett - 汤莱恩 22 September 2016 в 21:44
поделиться

4 ответа

Предположение, что Вы неспособны обновить/вставить в существующую таблицу, почему Вы не обертываете весь доступ к таблице с помощью представление ?

, Например, Вы могли бы первоначально хранить свои данные в таблице, названной IpToCountry20090303, и Ваше представление будет чем-то вроде этого:

CREATE VIEW IpToCountry
AS
SELECT * FROM IpToCountry20090303

, Когда новые данные входят, можно создать и заполнить таблица IpToCountry20090310. Как только таблица заполняется, просто обновляют Ваше представление:

ALTER VIEW IpToCountry
AS
SELECT * FROM IpToCountry20090310

переключатель будет абсолютно атомарным, не требуя никакой явной блокировки или транзакций. Как только представление было обновлено, можно просто отбросить старую таблицу (или сохранить ее, если Вы предпочитаете).

16
ответ дан 30 November 2019 в 09:07
поделиться

Другой метод для реализации, чего Вы надеетесь достигать, был бы использованием разделения таблицы, техника, которая доступна в Enterprise Edition SQL Server.

имя таблицы может остаться тем же. После того, как Ваш импорт таблицы завершен, Вы просто выключаете раздел, содержащий Ваши старые данные, и переключаетесь в новый раздел.

следующее Техническое описание содержит всю информацию, необходимо было бы начать.

http://msdn.microsoft.com/en-us/library/ms345146.aspx

С наилучшими пожеланиями, John

1
ответ дан 30 November 2019 в 09:07
поделиться

Что происходит с IpToCountryOld? Вы выбрасываете его? В этом случае, почему бы не усечь IpToCountry и импорт мои новые данные.

, Если необходимо сохранить данные, как насчет того, чтобы хранить дату загрузки на таблице и сохранить "текущую" дату загрузки где-нибудь, чтобы использоваться в операторе Where? Тогда Вы переключаете текущую дату, когда данные успешно загружаются.

Вы не говорите, какой DB Вы используете, таким образом, я не знаю, сколько использования это, но у Вас есть какие-либо хранимые процедуры той ссылкой таблица? Предупредите, что на некотором SPS платформ компилируются с помощью внутренних ссылок для таблиц, которые не изменятся с переименовыванием, таким образом, будет риск, что SPS не возьмет новые данные без того, чтобы перекомпилировать. То же может быть верным для представлений и сохранило проанализированные запросы.

0
ответ дан 30 November 2019 в 09:07
поделиться

Разве Вы не можете сделать импорта в одну таблицу во время от часов?

Или почему не только делают обновление данных, т.е. обновлять существующие записи и добавлять любые новые на записи рекордным основанием, поскольку Вы циклично выполняетесь для импорта данных. Это позволило бы таблице оставаться живой и уменьшать полное влияние добавления и отбрасывания полных таблиц.

, Какова структура импортируемых данных, дизайн таблицы, формат, PK, и т.д.? От этого мы можем быть в состоянии дать Вам лучший ответ.

0
ответ дан 30 November 2019 в 09:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: