Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Блокировка процессов при работе с SQL / 5 сообщений из 5, страница 1 из 1
31.10.2008, 11:17
    #35627310
Chaki_Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка процессов при работе с SQL
Есть форма, DataGridView, быбор данных с MS SQL Server. Выборка работает несколько минут. Если закрыть форму когда данные не досчитались, форма исчехает, но в процессах продолжает работать. При попытке еще раз включить данную форму, и нажать выбор данных, происходит то, что к БД вешается несколько коннектов, на выборку одних и тех же данных, и таких может быть столько, сколько было недозавершенных выборок. ИТОГ: на сервере висят несколько коннектов, которые блокируют выборки друг друга, и сервер загружается на 100%, вообще ничего невозможно посщитать. По моему мнению есть 2 решения (нужно недопустить запуска второй выборки, пока работает первая):
1. Блокировать запуск формы, если аналогичная висит в процессах.
2. Блокировать запуск выборки на сервере SQL, если данный коннект уже существует (т.е. непозволять коннектиться данному юзеру, если уже он включен).
Если кто знает, напишите код, которым можно реализовать или то, или то (только прошу, не пишити ответов: используй блокировку того, или того... одним словом, мне нужно решение, которое я смогу использовать). Спасибо, если кто поможет.
...
Рейтинг: 0 / 0
31.10.2008, 16:38
    #35628608
Щиче
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка процессов при работе с SQL
1. Тупо не дать закрыть форму.
2. Выделить запрос в отдельную нить и контролировать - работает нить или нет. В С# хорошие средства синхронизации.
3. Использовать один коннект на все и в pool его не сдавать. Я так делаю. Хоть это и не по науке, зато проблемы с несколькими коннектами у меня быть не может. Для толстого клиента пул - это сплошной источник дурных проблем. Коннект мне все равно нужен лишь один в пределах компьютера и смысл в управлении соединениями теряется.
...
Рейтинг: 0 / 0
01.11.2008, 16:32
    #35630953
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка процессов при работе с SQL
to : Chaki_Black
используй Mutex или Lock

to : Щиче
ты сильно не прав в пункте 3
...
Рейтинг: 0 / 0
01.11.2008, 16:33
    #35630958
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка процессов при работе с SQL
и ещё вопрос афтару
сколько записей возвращает запрос?
...
Рейтинг: 0 / 0
03.11.2008, 13:32
    #35632222
Chaki_Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка процессов при работе с SQL
Возвращает строк в зависимости от запроса, но в среднем 1000 - 1500 строк.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Блокировка процессов при работе с SQL / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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