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

Откуда: Санкт-Петербург
Сообщений: 5490
Вот, возникла задача каждую секунду выполнять запрос и скидывать результат в таблицу. Можно сделать джоб для агента, который будет стартовать раз в секунду. Но, как-то это ресурсоёмко ИМХО, стартовать отдельный процесс раз в секунду. Есть в SQL как-то способ задать ожидание? Допустим, процесс только один. Крутится в бесконечном цикле. Выполняет запрос, ждёт секунду, затем снова. Думаю, так сервер потратит меньше ресурсов. Или нет? Как лучше сделать?
12 июл 17, 13:54    [20636963]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
msLex
Member

Откуда:
Сообщений: 7730
Dmitry V. Liseev
Можно сделать джоб для агента, который будет стартовать раз в секунду.

нет, минимум 10 секунд

Dmitry V. Liseev
Есть в SQL как-то способ задать ожидание?


waitfor delay


Dmitry V. Liseev
Выполняет запрос, ждёт секунду, затем снова.

а само время выполнения запроса не считается?
если, например, запрос выполняется 0.1 секунду, то между стартами у вас будет не 1.0 а 1.1 секунды.

а зачем так часто делать запрос к таблице?
это очередь? может в сторону сервис брокера посмотреть?
12 июл 17, 13:58    [20636991]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Dmitry V. Liseev,

дейсвительно, почему раз в секунду? может вам просто триггером на объекте решить это... Иначе джоб с waitfor delay на N повторов
12 июл 17, 14:01    [20637014]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
архивариус
Member

Откуда:
Сообщений: 149
1.
msLex
Dmitry V. Liseev
Есть в SQL как-то способ задать ожидание?

waitfor delay
Dmitry V. Liseev
Выполняет запрос, ждёт секунду, затем снова.

а само время выполнения запроса не считается?
если, например, запрос выполняется 0.1 секунду, то между стартами у вас будет не 1.0 а 1.1 секунды.

вот и поэтому в том числе когда такое понадобилось использовал waitfor time
2.
иногда джоб не успевает закончиться до времени старта следующего и он соответственно не стартует, пока обошелся костылем два джоба, стартующие по четным нечетным часам
12 июл 17, 14:26    [20637130]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
msLex
Member

Откуда:
Сообщений: 7730
архивариус,

у ТС-а разговор о ежесекундном запуске, тут вообще сложно что-то гарантировать, ибо SQL Server не система реального времени.
12 июл 17, 14:29    [20637144]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
архивариус
Member

Откуда:
Сообщений: 149
msLex
архивариус,
у ТС-а разговор о ежесекундном запуске, тут вообще сложно что-то гарантировать, ибо SQL Server не система реального времени.

я именно про ежесекундный запуск , waitfor time в цикле каждую секунду, а джоб раз в час
12 июл 17, 14:32    [20637158]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
Dmitry V. Liseev
Вот, возникла задача каждую секунду выполнять запрос и скидывать результат в таблицу.
Допустим, процесс только один.
Крутится в бесконечном цикле. Выполняет запрос, ждёт секунду, затем снова.
имхо, процесс в бесконечном цикле крайне не удобен для сопровождения.
если есть такая задача по мне так лучше делать внешним сервисом.
12 июл 17, 14:33    [20637160]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
архивариус
msLex
архивариус,
у ТС-а разговор о ежесекундном запуске, тут вообще сложно что-то гарантировать, ибо SQL Server не система реального времени.

я именно про ежесекундный запуск , waitfor time в цикле каждую секунду, а джоб раз в час

гарантии на выполнении каждую секунду нет
12 июл 17, 14:34    [20637163]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
TaPaK
архивариус
пропущено...

я именно про ежесекундный запуск , waitfor time в цикле каждую секунду, а джоб раз в час

гарантии на выполнении каждую секунду нет
Мне не нужна высокая точность. Задача на мониторинг. Нужно снимать показания некоторых счётчиков, чтобы потом анализировать и искать узкие места.
12 июл 17, 14:41    [20637192]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Dmitry V. Liseev
TaPaK
пропущено...

гарантии на выполнении каждую секунду нет
Мне не нужна высокая точность. Задача на мониторинг. Нужно снимать показания некоторых счётчиков, чтобы потом анализировать и искать узкие места.
ну если это параметры sql то есть масса средств для этого мониторинга не подключая монтировки
12 июл 17, 14:46    [20637215]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
архивариус
Member

Откуда:
Сообщений: 149
TaPaK
архивариус
пропущено...

я именно про ежесекундный запуск , waitfor time в цикле каждую секунду, а джоб раз в час

гарантии на выполнении каждую секунду нет

гарантии нет, но если точности атомных часов не требуется можно попытаться использовать, у меня где то погрешность в 100 милисекунд устраивает
12 июл 17, 14:49    [20637222]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1066
Dmitry V. Liseev
TaPaK
пропущено...

гарантии на выполнении каждую секунду нет
Мне не нужна высокая точность. Задача на мониторинг. Нужно снимать показания некоторых счётчиков, чтобы потом анализировать и искать узкие места.

"потом" когда наступает? через секунду, минуту, день? я далек от мысли, что показания со счетчиков сам сиквел снимает. Напишите сервис, пусть он в ФС складывает, а другой пихает уже результаты в БД
12 июл 17, 14:59    [20637273]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
архивариус
Member

Откуда:
Сообщений: 149
Dmitry V. Liseev
TaPaK
пропущено...

гарантии на выполнении каждую секунду нет
Мне не нужна высокая точность. Задача на мониторинг. Нужно снимать показания некоторых счётчиков, чтобы потом анализировать и искать узкие места.

если за длительный период нужно много места, смотрю в сторону columnstore, послушал бы другие мнения, какие грабли ждут
12 июл 17, 15:08    [20637331]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
waszkiewicz
Dmitry V. Liseev
пропущено...
Мне не нужна высокая точность. Задача на мониторинг. Нужно снимать показания некоторых счётчиков, чтобы потом анализировать и искать узкие места.

"потом" когда наступает? через секунду, минуту, день? я далек от мысли, что показания со счетчиков сам сиквел снимает. Напишите сервис, пусть он в ФС складывает, а другой пихает уже результаты в БД
Нет у меня ресурсов писать и отлаживать сложные решения.
12 июл 17, 15:14    [20637373]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
архивариус
Dmitry V. Liseev
пропущено...
Мне не нужна высокая точность. Задача на мониторинг. Нужно снимать показания некоторых счётчиков, чтобы потом анализировать и искать узкие места.

если за длительный период нужно много места, смотрю в сторону columnstore, послушал бы другие мнения, какие грабли ждут
В месяце всего 2,6 млн. секунд. Не нужно разворачивать кластер. Данных за месяц должно быть достаточно для поиска граблей.
12 июл 17, 15:16    [20637391]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1066
Dmitry V. Liseev
waszkiewicz
пропущено...

"потом" когда наступает? через секунду, минуту, день? я далек от мысли, что показания со счетчиков сам сиквел снимает. Напишите сервис, пусть он в ФС складывает, а другой пихает уже результаты в БД
Нет у меня ресурсов писать и отлаживать сложные решения.


тогда совсем ничего не ясно - кто гадит в таблицу, к которой "каждую секунду выполнять запрос" и далее по тексту?
12 июл 17, 15:36    [20637476]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
waszkiewicz
Dmitry V. Liseev
пропущено...
Нет у меня ресурсов писать и отлаживать сложные решения.


тогда совсем ничего не ясно - кто гадит в таблицу, к которой "каждую секунду выполнять запрос" и далее по тексту?
Запрос из системных таблиц сервера. Надо раз в секунду фиксировать показатели работы, которые потом и анализировать.
12 июл 17, 16:23    [20637692]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Dmitry V. Liseev
waszkiewicz
пропущено...


тогда совсем ничего не ясно - кто гадит в таблицу, к которой "каждую секунду выполнять запрос" и далее по тексту?
Запрос из системных таблиц сервера. Надо раз в секунду фиксировать показатели работы, которые потом и анализировать.

костыли и велосипеды наше всё... Extended Events
12 июл 17, 16:28    [20637710]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
TaPaK
Dmitry V. Liseev
пропущено...
Запрос из системных таблиц сервера. Надо раз в секунду фиксировать показатели работы, которые потом и анализировать.

костыли и велосипеды наше всё... Extended Events
Мне не нужны эвенты. Надо понять, что на сервере происходит в момент сбоя системы.
12 июл 17, 16:33    [20637739]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Dmitry V. Liseev
TaPaK
пропущено...

костыли и велосипеды наше всё... Extended Events
Мне не нужны эвенты. Надо понять, что на сервере происходит в момент сбоя системы.
епрст... та ну вы хоть прочитайте про них
12 июл 17, 16:36    [20637755]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
Dmitry V. Liseev,

аудиты также существуют.
12 июл 17, 16:37    [20637760]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
s_ustinov
Member

Откуда: Munchen, DE
Сообщений: 2169
Dmitry V. Liseev
Вот, возникла задача каждую секунду выполнять запрос и скидывать результат в таблицу.

Все зависит от того, может ли селект выполняться внутри некой другой транзакции или надо асинхронно.
Если требования по асинхронности нет - IMHO, лучше сделать триггер (или много триггеров).
Мне надо было асинхронно. Вариантов нашел два - или сообщения через брокер, или каждую секунду джоб. С сообщениями решил не заморачиваться и сделал 10 джобов, каждый из которых выполняется раз в 10 секунд, но со сдвигом на секунду относительно предыдущего. И надо учитывать, что если время выполнения джоба может превышать секунду, то одновременно может выполняться несколько экземпляров. И в таком случае периодичность раз в секунду может быть нарушена.
12 июл 17, 16:45    [20637798]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
TaPaK
Dmitry V. Liseev
пропущено...
Мне не нужны эвенты. Надо понять, что на сервере происходит в момент сбоя системы.
епрст... та ну вы хоть прочитайте про них
Так я читал. Это не совсем то. Я же говорю, например, в 13:07:42 накрылась система. Мне надо знать, ЧТО происходило с сервером в этот момент и незадолго до. Возможно, удастся найти закономерности и корреляции.
12 июл 17, 16:53    [20637847]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Dmitry V. Liseev
TaPaK
пропущено...
епрст... та ну вы хоть прочитайте про них
Так я читал. Это не совсем то. Я же говорю, например, в 13:07:42 накрылась система. Мне надо знать, ЧТО происходило с сервером в этот момент и незадолго до. Возможно, удастся найти закономерности и корреляции.
а вы наверное считаете, что на EE надо смотреть широко открытыми глазами и не моргать, а второй админ записывает?
12 июл 17, 16:55    [20637855]     Ответить | Цитировать Сообщить модератору
 Re: Периодическая фоновая задача на сервере  [new]
Dmitry V. Liseev
Member [заблокирован]

Откуда: Санкт-Петербург
Сообщений: 5490
TaPaK
Dmitry V. Liseev
пропущено...
Так я читал. Это не совсем то. Я же говорю, например, в 13:07:42 накрылась система. Мне надо знать, ЧТО происходило с сервером в этот момент и незадолго до. Возможно, удастся найти закономерности и корреляции.
а вы наверное считаете, что на EE надо смотреть широко открытыми глазами и не моргать, а второй админ записывает?
Сбой происходит в среднем пару раз в неделю. Что приводит к необходимости перезагрузки всех серверов. Причины, которые приводят к сбою, не известны. Предположительно, это особенности выполнения запросов и взаимоблокировок в SQL сервер. Вот мне и нужно провести мониторинг с разумной степенью детализации. Можно включить профайлер, но он генерирует миллионы событий в минуту и уводит продакшн сервер в глубокий нокаут. Такой уровень детализации не нужен. Нужен именно разумный.
12 июл 17, 17:02    [20637878]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить