Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Удаление записей из таблицы в определенное время / 8 сообщений из 8, страница 1 из 1
02.07.2019, 22:21
    #39833026
plorkie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей из таблицы в определенное время
Добрый вечер, всем!

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

Появилась необходимость хранить данные в этой таблице в определенный промежуток времени, т.е допустим с 00:00 до 08:00 am таблица наполняется данными (без предварительного удаления), в оставшееся время таблица, как было изначально чистится и затем наполняется.

Подскажите пжст, с помощью чего это оптимальней сделать? Были мысли это осуществить с помощью waitfor delay и с помощью цикла, но пока не могу до конца додумать.
...
Рейтинг: 0 / 0
02.07.2019, 23:18
    #39833033
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей из таблицы в определенное время
plorkie,

А раз в час процедура загружает через waitfordelay?
...
Рейтинг: 0 / 0
02.07.2019, 23:19
    #39833034
Megabyte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей из таблицы в определенное время
Не понятно, с чем у вас проблемы?
Можно использовать джоб по расписанию, в нем будет код удаления данных. Если данных много, то лучше удалять порциями в цикле. Если не слишком много, то можно одним запросом.
Причем тут "waitfor delay" вообще не понятно...
...
Рейтинг: 0 / 0
03.07.2019, 06:00
    #39833072
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей из таблицы в определенное время
plorkieДобрый вечер, всем!

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

Появилась необходимость хранить данные в этой таблице в определенный промежуток времени, т.е допустим с 00:00 до 08:00 am таблица наполняется данными (без предварительного удаления), в оставшееся время таблица, как было изначально чистится и затем наполняется.

Подскажите пжст, с помощью чего это оптимальней сделать? Были мысли это осуществить с помощью waitfor delay и с помощью цикла, но пока не могу до конца додумать.

Проще надо быть.
Пиши в каждой строке СрокПротухания. И учитывай это в запросе, если надо.
Фсе.
Когда ты удалишь протухшие записи - дело десятое.
...
Рейтинг: 0 / 0
03.07.2019, 08:16
    #39833086
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей из таблицы в определенное время
plorkieДобрый вечер, всем!

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

Появилась необходимость хранить данные в этой таблице в определенный промежуток времени, т.е допустим с 00:00 до 08:00 am таблица наполняется данными (без предварительного удаления), в оставшееся время таблица, как было изначально чистится и затем наполняется.

Подскажите пжст, с помощью чего это оптимальней сделать? Были мысли это осуществить с помощью waitfor delay и с помощью цикла, но пока не могу до конца додумать.
Если я всё правильно понял, то, если позволяет версия и редакция сервера (до 2016SP1 - энтерпрайз, после - любая), я бы разрезал таблицу на секции, и секцию, в которой производятся изменения - держал бы в двух экземплярах.
Соответственно "заливка с удалением" - это загрузка в пустую отсоединенную секцию. А "заливка без удаления" - это обычная работа.
Как только данные залиты в отсоединенную секцию - switch partition, и всё заново.
Нужно только, чтобы все изменения были локализованы в "горячей" секции.
...
Рейтинг: 0 / 0
03.07.2019, 10:27
    #39833121
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей из таблицы в определенное время
uaggsterplorkieДобрый вечер, всем!

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

Появилась необходимость хранить данные в этой таблице в определенный промежуток времени, т.е допустим с 00:00 до 08:00 am таблица наполняется данными (без предварительного удаления), в оставшееся время таблица, как было изначально чистится и затем наполняется.

Подскажите пжст, с помощью чего это оптимальней сделать? Были мысли это осуществить с помощью waitfor delay и с помощью цикла, но пока не могу до конца додумать.
Если я всё правильно понял, то, если позволяет версия и редакция сервера (до 2016SP1 - энтерпрайз, после - любая), я бы разрезал таблицу на секции, и секцию, в которой производятся изменения - держал бы в двух экземплярах.
Соответственно "заливка с удалением" - это загрузка в пустую отсоединенную секцию. А "заливка без удаления" - это обычная работа.
Как только данные залиты в отсоединенную секцию - switch partition, и всё заново.
Нужно только, чтобы все изменения были локализованы в "горячей" секции.

Иногда, лучше жевать.
...
Рейтинг: 0 / 0
03.07.2019, 12:13
    #39833192
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей из таблицы в определенное время
plorkie,

разделите процесс на две процедуры - одна чистит, вторая заполняет.
Затем джоб из двух шагов, в шаге очистки напишите if с проверкой времени.
Секционирование там не нужно.
...
Рейтинг: 0 / 0
04.07.2019, 08:37
    #39833644
plorkie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление записей из таблицы в определенное время
Всем спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Удаление записей из таблицы в определенное время / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]