Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Последовательность выполнения в jobs? / 10 сообщений из 10, страница 1 из 1
23.07.2020, 14:10
    #39983108
Михайло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последовательность выполнения в jobs?
Добрый день!
Помогите, пожалуйста, разобраться.
Есть задача, скидывать старые данные с таблицы А, по расписанию, в архивную таблицу В. Создал простой Job, где сначала копируются данные с таблицы А в таблицу В, а затем идет скрипт удаляющий скопированные данные в таблице А.
Вопрос в том, как я могу быть уверен, что данные действительно скопировались?
А то, вдруг, сработает второй скрипт на удаление без копирования, тогда данные потеряются.
Тем более копируемых данных много, несколько миллионов.
...
Рейтинг: 0 / 0
23.07.2020, 14:11
    #39983109
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последовательность выполнения в jobs?
Михайло,

Обработка ошибок. Транзакции.
...
Рейтинг: 0 / 0
23.07.2020, 14:44
    #39983122
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последовательность выполнения в jobs?
Михайло,

SET XACT_ABORT ON

И либо делать в одной транзакции, либо переход между шагами делать только при успешном завершении.
...
Рейтинг: 0 / 0
23.07.2020, 15:33
    #39983176
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последовательность выполнения в jobs?
Михайло
Вопрос в том, как я могу быть уверен, что данные действительно скопировались?
всё сделать в одном запросе
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create table A (id int)
create table B (id int)
--
insert into A values (1),(2),(3);

insert into B
	(id)
select 
	t.id
from
	(delete from A output deleted.id) t
--
select * from A 
select * from B
...
Рейтинг: 0 / 0
23.07.2020, 15:44
    #39983189
Михайло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последовательность выполнения в jobs?
Спасибо за ваши варианты. Надо попробовать.

вообще, если первый запрос на внесение данных отрабатывает минут 10,
действительно ли вторая строчка с удалением будет ждать 10 минут и запуститься после полной отработки первого запроса?
...
Рейтинг: 0 / 0
23.07.2020, 17:49
    #39983266
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последовательность выполнения в jobs?
Михайло,

Чем гадать, приведите свои скрипты создания jobs.
...
Рейтинг: 0 / 0
24.07.2020, 06:44
    #39983430
old_joy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последовательность выполнения в jobs?
Перед тем как переписывать, фиксируйте ключ первой и последней записи в таблице А.
Копируйте ключевое поле обязательно из таблицы А в таблицу В. По ключу и проверяйте, что все переписалось.
Затем по ключу удаляйте записи из таблицы А.
...
Рейтинг: 0 / 0
24.07.2020, 08:17
    #39983441
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последовательность выполнения в jobs?
Михайло
Добрый день!
Помогите, пожалуйста, разобраться.
Есть задача, скидывать старые данные с таблицы А, по расписанию, в архивную таблицу В. Создал простой Job, где сначала копируются данные с таблицы А в таблицу В, а затем идет скрипт удаляющий скопированные данные в таблице А.
Вопрос в том, как я могу быть уверен, что данные действительно скопировались?
А то, вдруг, сработает второй скрипт на удаление без копирования, тогда данные потеряются.
Тем более копируемых данных много, несколько миллионов.

в таких случаях лучше делать секционирование и по времени будет милисекунды
...
Рейтинг: 0 / 0
24.07.2020, 09:11
    #39983456
NORT96
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последовательность выполнения в jobs?
HandKot,
delete from A t1
where exists (select * from B t2 where t1._ = t2._)
...
Рейтинг: 0 / 0
24.07.2020, 12:17
    #39983570
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Последовательность выполнения в jobs?
Михайло,

Для вас важно, чтобы данные всегда находились только в одной таблице? Или просто важно, чтобы они не задвоились?

Если последнее, то копируйте данные в буфер на 2 сервере и делайте MERGE. То есть проверяется, есть ли во вставляемой таблице уже эти строки.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Последовательность выполнения в jobs? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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