|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Всем доброго времени суток. По умолчанию при использовании OracleConnection из ODP.Net опция Pooling=true, таким образом при каждой операции пользователя (connection = new OracleConnection()) в БД создатся новая сессия, НО операции Close() и Dispose() не удаляют физическое подключение , а просто помещают его назад в пул. Т.е. на каждый чих пользователя - новая сессия. А удаляются они из БД только после выхода из приложения. Можно конечно открыть один статический коннект и держать его открытым для всех операций на протяжении работы с приложением, но как-то не по феншую. С другой стороны можно установить Pooling=false. И тогда Close() и Dispose() удаляют сессию из БД. Как говорят тут открытие содениния с БД довольно дорогостоящая операция и преводят тесты, суть которых открывать и закрывать соединения с пулом и без. я их у себя прогнал на машине: на 300 итерациях с пулом 0,42 с, без пула - 12,5 с. Разница, конечно значительная, но имхо для пользователей будет не заметна. Что посоветуете, коллеги? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 12:59 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Nicky_NЧто посоветуете, коллеги?Pooling=true ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 13:07 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Алексей К, а как быть с тем, что за один сеанс (до закрытия приложения) один пользователь может наплодить 20-30 сессий, а если пользователей 30-50, а в БД стоит ограничение на 200 сессий? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 13:10 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Nicky_NАлексей К, а как быть с тем, что за один сеанс (до закрытия приложения) один пользователь может наплодить 20-30 сессий, а если пользователей 30-50, а в БД стоит ограничение на 200 сессий?Не наплодит. Судя по описанию, у тебя неверное представление о работе пула соединений. Новая физическая сессия в БД создаётся только если нет свободных сессий в пуле. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 13:14 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Алексей КPooling=true Точнее не скажешь ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 13:19 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Алексей К, ок. Возникло еще 2 вопроса: 1) с использованием пула: после закрытия desktop-приложения, сессия сразу закрывается. Если использовать ASP.Net MVC сессия висит даже после закрытия браузера со статусом innactive и ждет пока админ сделает kill session)). как быть? 2) какие рекомендуемые настройки опций пула: •Connection Lifetime •Connection Timeout •Decr Pool Size •Incr Pool Size •Max Pool Size •Min Pool Size ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 13:35 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Nicky_N1) с использованием пула: после закрытия desktop-приложения, сессия сразу закрывается. Если использовать ASP.Net MVC сессия висит даже после закрытия браузера со статусом innactive и ждет пока админ сделает kill session)). как быть?Пул общий на "весь" веб-сервер. Соединения закроются после остановки IIS. Nicky_N2) какие рекомендуемые настройки опций пула: •Connection Lifetime •Connection Timeout •Decr Pool Size •Incr Pool Size •Max Pool Size •Min Pool SizeВ зависимости от решаемой задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 13:39 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Алексей КПул общий на "весь" веб-сервер. Соединения закроются после остановки IIS. Т.е. независимо от количества пользователей все они будут работать через единственный пул от IIS к СУБД? Алексей КВ зависимости от решаемой задачи. Интранет приложение (ASP.Net MVC) на 20-30 пользователей, причем одновременно работают не более 10, работа, в основном связана с получением отчетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 13:50 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Nicky_NАлексей КПул общий на "весь" веб-сервер. Соединения закроются после остановки IIS. Т.е. независимо от количества пользователей все они будут работать через единственный пул от IIS к СУБД?Да. Все пользователи сервера работают с одним пулом. В этом его прелесть. Nicky_NАлексей КВ зависимости от решаемой задачи. Интранет приложение (ASP.Net MVC) на 20-30 пользователей, причем одновременно работают не более 10, работа, в основном связана с получением отчетов.Я бы оставил значения по умолчанию, и изменял бы их по мере необходимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 13:58 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Алексей К, спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 15:34 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Пожалст. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 15:38 |
|
ODP.Net Connection Pool: to be or not to be?
|
|||
---|---|---|---|
#18+
Алексей К, С пулом надо быть аккуратнее если используются глобальные переменные пакетов и или устанавливается session info. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2013, 18:02 |
|
|
start [/forum/topic.php?fid=20&msg=38486076&tid=1403585]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 167ms |
0 / 0 |