|
Асинхронное выполнение долгих процедур на SQL Server с оболочкой на MS Access
|
|||
---|---|---|---|
#18+
Здравствуйте. Есть SQL Server с несколькими базами данных, объемом до нескольких десятков гигабайт. Сейчас я могу искать значения вручную при помощи SSMS, составляя запросы. Для пользователей нарисовал форму, в которой они тыркают кнопки и ищут значения в базах, при этом составляется текст запроса SQL и подменяется в связанном запросе. Все работало ОК. Теперь появилось два требования: 1. Поиск по десяткам и сотням значений, в т.ч. с группировкой 2. Искомых таблиц стало много, и кнопок - тоже. Возникает проблема - если все буду делать на MS Access, то упираюсь во время ожидания ODBC, которое не может быть больше 5 минут. Возникла идея сделать некое приложение, позволяющее: 1. Создавать поисковый запрос 2. Отправлять его на поиск на SQL Server по всем имеющимся источникам 3. Отслеживать ход выполнения поисковых запросов (где-то это будет секунды, где-то выполнение займет 10 минут) 4. Просматривать результаты поиска. Затем навесить на это дело поиск по группам значений. Отсюда не понимаю, как сделать именно асинхронный запуск поисковых процедур. Чтобы Access добавил значение на поиск и лишь рефрешил строчки со статусом, а уже SQL Server после успешного выполнения поисковых процедур проставлял статус готовности. Как лучше это сделать? Пока возникла идея запускать батник с командой выполнения поисковых процедур... но это как-то выглядит решением в лоб. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2016, 13:06 |
|
Асинхронное выполнение долгих процедур на SQL Server с оболочкой на MS Access
|
|||
---|---|---|---|
#18+
тоже как-то решил потоптаться несильно на этой теме: на MSSQL2008R сделал тбл. задач и повесил на нее триггер after insert - задачи отрабатываются норм. (каждая на > 1 мин.), ну и запускаемые процессы пишут коменты в эту таблицу о выполнении - начало конец статус... Дальше задачи в эту таблицу начал добавлять из MSA2003 через тупо таблицу, ретранслируемый запрос, VBA и запросом...везде имею зависание (время ожидания ODBC менять не стал). Такое чувство, что нужно писать(искать) компоненту на .нете для асинхронного выполнения....ну или джобом отрабатывать входящие в таблицу задачи - тут на MSA точно не будет задержки а вот на MSSQL задачи будут посылаться по расписанию (т.е с задержкой) так ? не ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 13:36 |
|
Асинхронное выполнение долгих процедур на SQL Server с оболочкой на MS Access
|
|||
---|---|---|---|
#18+
ну или через планировщик задач виновый пусть каждую минуту отрабатывает: OSQL.EXE -S ServerName -E -i c:\Soft\Script.sql бред конечно.... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 14:40 |
|
Асинхронное выполнение долгих процедур на SQL Server с оболочкой на MS Access
|
|||
---|---|---|---|
#18+
а ну вот и решение: у ретранслируемого запроса (котрый добавляет задание на исполнение по триггеру) делаем ReturnsRecords = false ну и MSA остается ток по таймеру на форме проверять статус выполнения задания...а юзер в базе работает без зависания.... чет я сразу-то не заметил эту фишку ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 15:02 |
|
Асинхронное выполнение долгих процедур на SQL Server с оболочкой на MS Access
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2016, 15:12 |
|
|
start [/forum/topic.php?desktop=1&fid=45&tid=1613286]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
others: | 339ms |
total: | 465ms |
0 / 0 |