powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выполнить запрос к БД без ожидания ответа сервера асинхронно
7 сообщений из 7, страница 1 из 1
Выполнить запрос к БД без ожидания ответа сервера асинхронно
    #37712419
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда в программе необходимо вызвать на выполнение в БД сохраненную процедуру, но нет необходимости что либо ждать - т.е ее нужно запустить на исполнение и выполнять программу дальше без ожидания какого-либо результата

Сейчас пользуюсь ExecNonQuery, но так как данный вызов ждет окончания выполнения процедуры, а процедура довольно большая по объему работы и занимает много времени - программа зависает на время исполнения этой процедуры (а она лопатит на сервере таблицу и обрабатывает данные которые не нужны сейчас клиенту)

Как это можно сделать? спасибо.
...
Рейтинг: 0 / 0
Выполнить запрос к БД без ожидания ответа сервера асинхронно
    #37712436
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что мешает в отдельном потоке запускать долгоиграющие телодвижения?
...
Рейтинг: 0 / 0
Выполнить запрос к БД без ожидания ответа сервера асинхронно
    #37712513
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

Посмотрите профайлер. Если где-то встретится таблескан, то перепишите процедуру.
...
Рейтинг: 0 / 0
Выполнить запрос к БД без ожидания ответа сервера асинхронно
    #37712515
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, имел ввиду план запроса.
...
Рейтинг: 0 / 0
Выполнить запрос к БД без ожидания ответа сервера асинхронно
    #37712652
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

Вопрос не в оптимальности запросов - там длительная обработка и задумана по-плану - мне просто нужно на клиенте сделать запуск процедуры и оставить ее спокойно работать, а клиент чтоб дальше себе продолжал работать не дожидаясь окончания выполнения сохраненной процедуры
...
Рейтинг: 0 / 0
Выполнить запрос к БД без ожидания ответа сервера асинхронно
    #37712667
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spShSerge,

Вопрос не в оптимальности запросов - там длительная обработка и задумана по-плану - мне просто нужно на клиенте сделать запуск процедуры и оставить ее спокойно работать, а клиент чтоб дальше себе продолжал работать не дожидаясь окончания выполнения сохраненной процедуры
Тогда это делается не приложением, а джобом.
ПС. А если приложением, то что будет, если пользователь пару раз кнопарь жамкнет, или второй экземпляр приложения запустит и опять кнопарь жамкнет? Вы это предусмотрели?
...
Рейтинг: 0 / 0
Выполнить запрос к БД без ожидания ответа сервера асинхронно
    #37712678
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeТогда это делается не приложением, а джобом.
ПС. А если приложением, то что будет, если пользователь пару раз кнопарь жамкнет, или второй экземпляр приложения запустит и опять кнопарь жамкнет? Вы это предусмотрели?

ну у меня юзер не жмякает - а вызывается все это при определенных событиях в приложении, а потом в процедуре выставляются флаги чтоб трижды не вызывать процедуру пока она в работе!

Решил я вопрос:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
private static void CallSP()
		{
			var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString + "async=True;");
			var command = new SqlCommand("dbo.DoSomthingLong", connection);
			
			command.CommandType = CommandType.StoredProcedure;
			connection.Open();
			command.BeginExecuteReader(null, command, CommandBehavior.CloseConnection);
		}



Вызываем SP асинхронно и не указываем callback (или можно указать пустотелый callback)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выполнить запрос к БД без ожидания ответа сервера асинхронно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]