Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   К чему может привести незакртыие соединений MS SQL (https://forum.antichat.xyz/showthread.php?t=123588)

masbear 04.06.2009 14:42

К чему может привести незакрытие соединений MS SQL
 
У меня сайт на ASP.NET 2.0, на каждой странице в Page_Load создается соединение к базе данных через SqlConnection.Connect().

В самой aspx странице оно не раз используется, поэтому в Page_Load его (соединение) не закрыть.

PHP код:

<html>....<title><%=GetTitleFromDb()%></title> .... 

И т.п. Это просто пример.

Получается, я должен закрывать соединения где-то в конце

PHP код:

<%Connection.Dispose();%>
</
html

А что будет, если я не закрою? Pooling отключен (pooling=false).

На многих страницах коннекшн не закрывается... Не из-за этого ли каждый раз после перезапуска sqlservr.exe жрет все больше и больше оперативы с каждой секундой?

POS_troi 04.06.2009 15:19

Глюки вполне возможно из-за этого ибо соединение закрывать нужно.

Проверь в настройках таймаут.

Gar|k 04.06.2009 17:29

Сервер ты загружашь тк у него открывается соединение и он ждет команд... соединение ты не закрыл а оно какоето время будет висеть и занимать память... а если на твою страницу заходят 1000 челов одновремено и бродят по сайту в котором здоровая вложеноссть и каждое обновление открывает новое соединение... да еще твой сайт распологается на хостинге... в общем поначало это существенно увеличит скорость загрузки странице твоей, а потом и вовсе страницы перестанут открыватся.

люди! закрывайте открытые соединения! закрывайте дескрипторы откртых файлов, освобождайте память ) и будет вам щастье, много много щастье

W!z@rD 04.06.2009 17:31

эммм... а using уже не модно юзать?
для каждого запроса, создавай отдельный коннект.
и про Dispose почитай... =\

nerezus 04.06.2009 17:57

Цитата:

У меня сайт на ASP.NET 2.0, на каждой странице в Page_Load создается соединение к базе данных через SqlConnection.Connect().
А почему не в инит, а в лоад? Интересно.

Цитата:

а если на твою страницу заходят 1000 челов одновремено и бродят по сайту в котором здоровая вложеноссть и каждое обновление открывает новое соединение...
Абстрактные примеры - зло.

masbear 05.06.2009 22:05

Цитата:

эммм... а using уже не модно юзать?
для каждого запроса, создавай отдельный коннект.
и про Dispose почитай... =\
Исключено, и я объяснял почему. Обращение к бд идет по всей странице.

Цитата:

А почему не в инит, а в лоад? Интересно.
А в чем проблема? Я все иницилизирую в Load. Про Init мало слышал, вроде возникает раньше, чем Load.

Gar|k, пользователей on-line где-то 500-1000, поэтому неудивительно, что сервер нагружен из за sqlservr.exe (два раза даже вылетал, думаю, что из-за этого).

Проблема в том, что страниц таких больше сотни... Что ж примусь за исправление.

Доложу о результатах :)


Время: 17:00