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

Откуда: Санкт-Петербург
Сообщений: 33
Ребята, доброго времени суток.
Подскажите пожалуйста, как правильно организовать работу программы с mssql. Все операции выполняются с помощью хранимых процедур, которые запускаются из внешнего сервиса на vb.net, который создает поток для каждой ХП. ХП выполняется с определенной периодичностью, в соответствии с настройками, описанными в одной из таблиц. Правильно ли организована программа? Может быть лучше выполнять ХП средствами sql?
4 мар 14, 23:33    [15673227]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
Italianspb
Member

Откуда: Санкт-Петербург
Сообщений: 33
Неужели никто ничего не подскажет. Подозреваю что программа организована неправильно, колхоз какой-то. Может кто-нибудь поделится опытом как сделать правильно.
5 мар 14, 10:11    [15674459]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Italianspb
Неужели никто ничего не подскажет.

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

Italianspb
Может быть лучше выполнять ХП средствами sql?

Это как ? Вообще то все передаваемые mssql-ю команды выполняются "средствами sql"
5 мар 14, 10:15    [15674494]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
Дедушка Ау
Guest
Italianspb
Правильно ли организована программа?

Вопрос обширный и филосовский....
Italianspb
Может быть лучше выполнять ХП средствами sql?

Они и так средствами SQL выполняются :-/
5 мар 14, 10:18    [15674515]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
Веrd
Member

Откуда: Лазаревское
Сообщений: 576
Если, например, какую-нибудь хранимку надо запускать с одинаковыми параметрами раз в час или раз в день - можно это настроить как JOB
5 мар 14, 11:28    [15675159]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
Italianspb
Ребята, доброго времени суток.
Подскажите пожалуйста, как правильно организовать работу программы с mssql. Все операции выполняются с помощью хранимых процедур, которые запускаются из внешнего сервиса на vb.net, который создает поток для каждой ХП. ХП выполняется с определенной периодичностью, в соответствии с настройками, описанными в одной из таблиц. Правильно ли организована программа? Может быть лучше выполнять ХП средствами sql?
Описание задачи невнятное.

Похоже, вам нужно выполнять некую обработку данных на сиквеле по расписанию.
Тогда, скорее всего, лучше не писать внешний сервис на VB, а использовать JOB, если позволяет версия сиквела.
5 мар 14, 12:55    [15676283]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
Uridian
Member

Откуда: Lobnya
Сообщений: 237
Для запуска ХП по расписанию достаточно средств, предоставляемых службой SQL Server Agent.
Однако, если условием для запуска ХП служит не только факт наступления определённого в расписании времени, но и, например, успешное завершение выполнения к этому времени одной или нескольких других ХП, запущенных ранее, или вообще синхронизация с внешними событиями, вне SQL Server, то отдельное приложение - пожалуй, лучший, если не единственный вариант реализации.
6 мар 14, 11:04    [15681177]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2407
Uridian
но и, например, успешное завершение выполнения к этому времени одной или нескольких других ХП, запущенных ранее, или вообще синхронизация с внешними событиями, вне SQL Server,


SSIS для это и придумали
6 мар 14, 11:44    [15681420]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
Italianspb
Member

Откуда: Санкт-Петербург
Сообщений: 33
Неправильно выразился, не выполнение ХП, а управление выполнением ХП, в т.ч. отслеживание выполнения.
В программе должна быть предусмотрена возможность чтобы пользователь мог самостоятельно настраивать частоту выполнения определенных операций (которые реализованы выполнением ХП), для этого такие настройки задаются в таблице. Как я понимаю, если реализовать через JOB у пользователя не будет такой возможности?
Про SSIS раньше не слышал. Вижу там есть возможность загрузки данных из внешних источников (даже неструктурированных), необходимая вещь, сейчас сделано через BULK, очень интересно. Если еще можно настраивать то, о чем говорил выше, вообще супер. Буду читать. Большое спасибо.
6 мар 14, 16:55    [15684221]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Italianspb
Как я понимаю, если реализовать через JOB у пользователя не будет такой возможности?

У job-а может быть расписание. И не одно.

А вообще разных планировщиков в этом мире пруд пруди. Зачем писать еще один ?
6 мар 14, 16:59    [15684254]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
dvim
Member

Откуда: Санкт Петербург
Сообщений: 698
Italianspb,

Расскажите подробнее, кто инициатор "команд". Те кто решает что и как должно запуститься,вообще опишите программу свою - что она делает.
Без этой информации сказать ничего нельзя.
6 мар 14, 17:22    [15684412]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
Italianspb
Member

Откуда: Санкт-Петербург
Сообщений: 33
dvim,

Из различных источников данных информация загружается в SQL (чаще всего это файлы-выгрузки из других систем и ActiveDirectory). Далее информация, в соответствии с настройками расписания, обрабатывается в SQL с помощью ХП. Важные сообщения рассылаются пользователям системы (средствами SQL).
Для гибкости, нужно предоставить возможность настройки выполнения всех этих действий (импорт данных, обработка, рассылка сообщений), частота выполнения, расписание.
Не все данные вносятся в систему автоматически, часть информации пользователи добавляют и обновляют через вэб-интерфейс, в том числе настройка выполнения ХП.
Как пример, время выгрузки штатного расписания из SAP изменилось, пользователь просто через вэб-страницу меняет расписание выполнения ХП, отвечающей за обработку файла штатного расписания.
Поэтому есть сервис, который берет расписание и имя ХП из таблицы настроек в SQL и выполняет ХП в отдельном потоке по этому расписанию. Правильно ли организована программа?
8 мар 14, 17:26    [15693102]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
Italianspb
Поэтому есть сервис, который берет расписание и имя ХП из таблицы настроек в SQL и выполняет ХП в отдельном потоке по этому расписанию. Правильно ли организована программа?
Для таких требований можно использовать JOB-ы
Можно ими управлять и с веб-странички, или можно менять расписания автоматически по каким то критериям, никаких проблем.

Просто в ваших требованиях не видно каких то особых задач, которые требуют написания своего сервиса, например, высокая частота срабатывания.

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

Например, нужно предусматривать перезапуск при падениях, управление правами, системы нотификаций, логирования (разного уровня, что бы можно было логировать самые базовые ошибки запуска сервиса), записи результатов работы, работу в отказоустойчивом кластере, и прочее, что уже реализованно в стандартном SQL Server Agent и прекрасно и надёжно работает.
8 мар 14, 19:16    [15693393]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли организована программа?  [new]
Italianspb
Member

Откуда: Санкт-Петербург
Сообщений: 33
alexeyvg,

большое спасибо за развернутый и обоснованный ответ. Буду делать через SQL Server Agent.
11 мар 14, 16:56    [15705846]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить