Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
06.04.2010, 14:55
|
|||
---|---|---|---|
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
Вот такой вопрос. Что предпочтительнее - держать открытым SqlConnection/DataContext на всё время работы программы либо перед каждым запросом его открывать, а потом закрывать? Начальник говорит, что открытый SqlConnection жрёт много ресурсов, где-то по форумам читал, что открытие/закрытие соединения с БД жрёт много ресурсов. Так кто прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.04.2010, 15:20
|
|||
---|---|---|---|
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
Открывать контекст или соединение только для обращения к БД и сразу же, как только надобность в БД отпала, закрывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.04.2010, 16:42
|
|||
---|---|---|---|
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
А как быть с DataContext? У него же нет методов Open/Close. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.04.2010, 16:54
|
|||
---|---|---|---|
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
RazielА как быть с DataContext? У него же нет методов Open/Close. Код: plaintext 1. 2. 3.
P.S. Посмотрите еще паттерн Repository. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.04.2010, 21:21
|
|||
---|---|---|---|
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
RazielА как быть с DataContext? У него же нет методов Open/Close. DataContext не держит открытых соединений, следовательно без нужды вызывать Dispose() у него не обязательно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.04.2010, 09:52
|
|||
---|---|---|---|
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
Raziel, не слушайте никого и знайте: юзинговать (диспоузить) нужно всё, что наследуется от IDisposable при условии, если оно уже не нужно. Используйте using и не заморачивайтесь над тем, открыто ли соединение, созданы ли какие-то доп. экземпляры классов и прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.04.2010, 12:19
|
|||
---|---|---|---|
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
МСУRaziel, не слушайте никого и знайте: юзинговать (диспоузить) нужно всё, что наследуется от IDisposable при условии, если оно уже не нужно. Ключевое слово у тебя - "если оно уже не нужно". Если нужно, using-ом не воспользоваться, то конкретно DataContext диспоузить не обязательно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.06.2011, 18:39
|
|||
---|---|---|---|
|
|||
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
А если у меня 15 объектов, работающих каждый в своем потоке, и каждый делает 5 запросов в секунду к одной и то же таблице БД. Как правильно организовать работу с DataContext?: 1. Создавать DataContext на уровне объекта, чтобы для каждого потока был свой DataContext. Я делаю его статическим. Код: plaintext
При такой кострукции, после нескольких срабатываний, я получаю ошибку, что "Существует назначенный этой команде Command открытый DataReader, который требуется предварительно закрыть" 2. Создавать DataContext перед выполнение каждого запроса через Код: plaintext
Но резульататы LINQ запроса мне надо отрисовывать, то есть обрабоку полученного query мне нужно делегировать в поток диспетчера, а если внутри using {} попыаться сделать что-то типа MyWindow.Dispatcher.BeginInvoke(new ThreadStart(() => и т.д., то все падает с ошибкой. 3. Если просто в начале метода, без using, создавать DataContext Код: plaintext
...то так работает и не падает, по идет дикая загрузука ЦП от sqlservr.exe. Как правильно организовать работу с DataContext в моем случае, то есть в случае большого и постоянного количества запросов к БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.06.2011, 17:29
|
|||
---|---|---|---|
|
|||
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
Questq2, Я бы использовал первый вариант (создание DataContext-а на уровне объекта). А почему Вы его делаете static? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.06.2011, 18:12
|
|||
---|---|---|---|
|
|||
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
VitaliyBoris, статик - просто для удобства обращения к нему. Думаете, ошибка связана с этим? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.06.2011, 18:31
|
|||
---|---|---|---|
|
|||
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
VitaliyBoris, я убрал статик, падать перестало, но загрузка проца осталась. Значит, видимо, дело не в коннекте. Я создал отдельную тему по своей проблеме http://www.sql.ru/forum/actualthread.aspx?tid=862740, там все описано более подробно. В двух словах - формально все работает, но очень ресурсов много проца жрет sqlservr.exe, при любом варианте использования DataContext. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.06.2011, 18:32
|
|||
---|---|---|---|
|
|||
Открытый SqlConnection/System.Data.Linq.DataContext в .NET |
|||
#18+
Вот рабочая ссылка http://www.sql.ru/forum/actualthread.aspx?tid=862740 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=17&tablet=1&tid=1350713]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 297ms |
total: | 553ms |
0 / 0 |