Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Запуск хранимки в асинхронном режиме  [new]
Диам
Member

Откуда:
Сообщений: 1497
Здравствуйте. Есть ли возможность средствами TSQL выполнить запрос или хранимку в асинхронном режиме?
---------------------------------
http://diamfc.ucoz.ru - блок-схема за пять минут!!!
26 мар 12, 09:45    [12312414]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
С помощью job'а.
26 мар 12, 09:58    [12312465]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Диам
Member

Откуда:
Сообщений: 1497
invm,
а без джоба? Это SQLExpress...
26 мар 12, 10:06    [12312496]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Диам
invm,
а без джоба? Это SQLExpress...

через xp_cmdshell + sqlcmd
26 мар 12, 10:07    [12312502]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Диам
Member

Откуда:
Сообщений: 1497
Knyazev Alexey,
можно подробнее?
26 мар 12, 10:14    [12312544]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Knyazev Alexey
Диам
invm,
а без джоба? Это SQLExpress...

через xp_cmdshell + sqlcmd

ServiceBroker ещё натравить можно
26 мар 12, 10:24    [12312606]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Диам
Knyazev Alexey,
можно подробнее?

Создаете задание в ОС, в котором посредством sqlcmd выполняете ваш запрос. Из T-SQL, с помощью xp_cmdshell, это задание запускаете.
26 мар 12, 10:24    [12312613]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
invm
Диам
Knyazev Alexey,
можно подробнее?

Создаете задание в ОС, в котором посредством sqlcmd выполняете ваш запрос. Из T-SQL, с помощью xp_cmdshell, это задание запускаете.


можно сразу и саму процедуру дёргать
26 мар 12, 10:33    [12312674]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Knyazev Alexey
invm
пропущено...

Создаете задание в ОС, в котором посредством sqlcmd выполняете ваш запрос. Из T-SQL, с помощью xp_cmdshell, это задание запускаете.


можно сразу и саму процедуру дёргать
Если мне не изменяет склероз, асинхронности не будет.
26 мар 12, 10:40    [12312724]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
invm
Диам
Knyazev Alexey,
можно подробнее?

Создаете задание в ОС, в котором посредством sqlcmd выполняете ваш запрос. Из T-SQL, с помощью xp_cmdshell, это задание запускаете.


xp_cmdshell можно опустить, задание дергать из винды по расписанию
26 мар 12, 10:46    [12312773]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Диам
Member

Откуда:
Сообщений: 1497
defragmentator, мне не нужно задание по расписанию!!! Мне нужно асинхронное выполнение.
26 мар 12, 11:07    [12312965]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Диам
defragmentator, мне не нужно задание по расписанию!!! Мне нужно асинхронное выполнение.

В Вашей хранимке программно создаёте джоб с опцией удаления после выполнения и запускаете его. Джоб выполняется асинхронно с Вашей хранимкой.
26 мар 12, 11:09    [12312994]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
iljy
Member

Откуда:
Сообщений: 8711
invm
Knyazev Alexey
пропущено...


можно сразу и саму процедуру дёргать
Если мне не изменяет склероз, асинхронности не будет.

Будет, если для запуска использовать start.
26 мар 12, 11:10    [12313007]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Jovanny
Диам
defragmentator, мне не нужно задание по расписанию!!! Мне нужно асинхронное выполнение.

В Вашей хранимке программно создаёте джоб с опцией удаления после выполнения и запускаете его. Джоб выполняется асинхронно с Вашей хранимкой.

Извините, не весь топик прочитал.
26 мар 12, 11:10    [12313010]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Диам
defragmentator, мне не нужно задание по расписанию!!! Мне нужно асинхронное выполнение.

В смысле асинхронное?
Распарралелить выполнение ХП что-ли, Вам нужно?
26 мар 12, 11:12    [12313029]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
iljy
Будет, если для запуска использовать start.
Не, не поможет
exec xp_cmdshell 'start sqlcmd -S . -E -Q "waitfor delay ''00:00:05'';"';
26 мар 12, 11:13    [12313036]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Все можно отлично параллелить на джобах. Джоб можно делать или самоудаляющимся с простым вызовом хранимки, или на менер воркера - разгребает очередь заданий. Но тут большой вопрос, что вы хотите подавать параллельной части на обработку, и что получать в ответ.
26 мар 12, 11:14    [12313047]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Диам
Member

Откуда:
Сообщений: 1497
Гавриленко Сергей Алексеевич, а как через TSQL создать JOB? Как то в справке не нашел.
26 мар 12, 17:45    [12316270]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Диам
Гавриленко Сергей Алексеевич, а как через TSQL создать JOB? Как то в справке не нашел.
sp_addjob или как-то так. Еще проще взять, сделать в студии похожий job и заскриптовать. Там несколько приседаний, в общем-то.
26 мар 12, 17:47    [12316287]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Диам
Member

Откуда:
Сообщений: 1497
Гавриленко Сергей Алексеевич,
))) прежде чем задать вам вопрос, я таки спросил у хелпа и у яндекса. И как то ничего не нарыл....
26 мар 12, 18:08    [12316415]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Диам
Гавриленко Сергей Алексеевич,
))) прежде чем задать вам вопрос, я таки спросил у хелпа и у яндекса. И как то ничего не нарыл....
Скриптуйте из студии. Там надо добавлять job, его категорию, его степы, его расписание, его jobserver. И на каждый пункт из перечисленного - процедура с ворохом не очень понятных параметров (хотя все, скорее всего, документировано).

Сообщение было отредактировано: 26 мар 12, 18:15
26 мар 12, 18:15    [12316460]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
=Ozzy=
Member

Откуда:
Сообщений: 228
Я использовал ADO и Execute с параметром async. Думаю, что-то похожее можно сделать через PowerShell.
26 мар 12, 18:34    [12316562]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
=Ozzy=
Member

Откуда:
Сообщений: 228
=Ozzy=
Я использовал ADO и Execute с параметром async. Думаю, что-то похожее можно сделать через PowerShell.

Вроде тут что-то есть
http://www.codeproject.com/Articles/29356/Asynchronous-T-SQL-Execution-Without-Service-Broke
26 мар 12, 18:36    [12316570]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
=Ozzy=
Я использовал ADO и Execute с параметром async. Думаю, что-то похожее можно сделать через PowerShell.
Имхо, сложнее контролировать, особенно если нужна синхронизация типа "запустить параллельный кусок, порботать, а в какой-то момент дождаться, что параллельный кусок сделал свою работу и получить от него какой-то результат". Джоб можно довольно просто дождаться и прибить если что не так, для PS-скриптов надо изобретать интерфейс по управлению.
26 мар 12, 18:38    [12316585]     Ответить | Цитировать Сообщить модератору
 Re: Запуск хранимки в асинхронном режиме  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Сервис брокер - да. Но он замороченный какой-то. ;)
26 мар 12, 18:39    [12316587]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить