Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 проверка состояния таблиц  [new]
нуб987
Guest
стоит задача запускать обновление кубов на стороннем сервере (SrvOLAP), который подключается к хранилищу (SrvDWH): на SrvOLAP настроен джоб, который запускает обновление кубов. Но проблема в том, что он не знает, можно ли начинать это делать.
Т.е., например, хранилище (SrvDWH) у нас заполняется каждый день в 7:00. А на SrvOLAP джоб настроен на 8:00. По некоторым причинам иногда часа может не хватить для заполнения хранилища. Либо вообще произошла какая-то ошибка.

Вот как отследить состояние, можно ли запускать процессинг куба?

Мне на ум пришло только создать какую-то табличку, в которую записывать эти состояния и проверять их.

Например, джоб на хранилище (SrvDWH) будет выглядеть так:
1. update FlagTable set AValue = 1 where Name = 'DWH' -- хранилище занято, заполняется
2. наполняем хранилище данными
3. update FlagTable set AValue = NULL where Name = 'DWH' -- хранилище освободилось

А джоб на SrvOLAP будет выглядеть так:
1. while (select AValue from SrvDWH.MyDB..FlagTable where Name = 'DWH') <> 1 waitfor delay '00:01:00' -- ждем освобождения хранилища
2. обновляем кубы

Но возможно есть какие-то более простые методы, предусмотренные самой СУБД?
14 окт 16, 20:44    [19783573]     Ответить | Цитировать Сообщить модератору
 Re: проверка состояния таблиц  [new]
АвторОтвета
Guest
нуб987,


Простой вариант на SrvDWH инициировать запуск джоба на сервере SrvOLAP.
Это может быть следующий степ джоба на SrvDWH - если у вас там тоже джобы по загрузке данных в хранилище.
14 окт 16, 22:46    [19784037]     Ответить | Цитировать Сообщить модератору
 Re: проверка состояния таблиц  [new]
нуб987
Guest
АвторОтвета, что-то не удается так сделать.
запускаю на сервере-хранилище так:
exec msdb.dbo.sp_start_job @job_name = 'Process Cube', @server_name = 'SrvOLAP'

тут же возвращает ошибку: "The specified @job_name ('Process Cube') does not exist."
ощущение, что этот джоб он ищет у себя, а не на SrvOLAP
15 окт 16, 18:15    [19785268]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить