Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Открытие/закрытие соединения с SQL Server  [new]
avsam
Member

Откуда:
Сообщений: 24
Доброе время суток.

Приложение VB.net использует SQL Server через SQL Native Client с помощью DbConnection и DbCommand.
SQL-запросы посылаются на сервер и данные возвращаются в DataAdapter или просто в DataReader.
Как нужно правильно организовать соединение с SQL сервером?

1) при открытии программы создать соединение и все время его использовать?
или
2) при каждом запросе открывать новое соединение и при завершении запроса это соединение закрывать?

Интересно узнать мнение для SQL Server 2008 и для Oracle 10g. Спасибо.
8 мар 11, 21:45    [10339842]     Ответить | Цитировать Сообщить модератору
 Re: Открытие/закрытие соединения с SQL Server  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Для обоих - вариант 2.
8 мар 11, 21:57    [10339870]     Ответить | Цитировать Сообщить модератору
 Re: Открытие/закрытие соединения с SQL Server  [new]
avsam
Member

Откуда:
Сообщений: 24
Хм.... Не ожидал. А какие аргументы?
8 мар 11, 23:27    [10340194]     Ответить | Цитировать Сообщить модератору
 Re: Открытие/закрытие соединения с SQL Server  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
оставьте кеширование "физических" соединений коннекшн пулу... с вашим подходом намаетесь потом с разделением этого коннекта... например - между потоками... ну и т.д т.п. открыл-прочитал-закрыл(вернул в пул)
9 мар 11, 11:12    [10341640]     Ответить | Цитировать Сообщить модератору
 Re: Открытие/закрытие соединения с SQL Server  [new]
stimpi
Member

Откуда: Киев, Украина
Сообщений: 662
avsam
Хм.... Не ожидал. А какие аргументы?


Как в случае с использованием DataReader так и в случае использования DataAdapter (внутри себя так же использует DataReader)
попробуйте на одном конекшене открыть 2 адаптера или ридера одновременно, получите ошибку, тк на 1 конекшене не больше 1 дата ридера.
распаралеливаете работу и ловите ошибки пачками.

такое подходит ?

за 2рой вариант +1
9 мар 11, 11:31    [10341796]     Ответить | Цитировать Сообщить модератору
 Re: Открытие/закрытие соединения с SQL Server  [new]
xpoft2010
Member

Откуда: Оттуда
Сообщений: 184
stimpi
avsam
Хм.... Не ожидал. А какие аргументы?


Как в случае с использованием DataReader так и в случае использования DataAdapter (внутри себя так же использует DataReader)
попробуйте на одном конекшене открыть 2 адаптера или ридера одновременно, получите ошибку, тк на 1 конекшене не больше 1 дата ридера.
распаралеливаете работу и ловите ошибки пачками.

такое подходит ?

за 2рой вариант +1


спасибо за ответ, заодно и мои сомнения по этому поводу развеяли, делал для каждого обращения свое подключение, но четко не понимал почему так лучше.
14 мар 11, 09:46    [10364915]     Ответить | Цитировать Сообщить модератору
 Re: Открытие/закрытие соединения с SQL Server  [new]
ViPRos
Member

Откуда:
Сообщений: 9885
xpoft2010,

лучше-хуже неуместно
надо - как надо
14 мар 11, 12:44    [10366206]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить