К чему может привести незакртыие соединений MS SQL

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by masbear, 4 Jun 2009.

  1. masbear

    masbear Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    81
    Likes Received:
    7
    Reputations:
    1
    К чему может привести незакрытие соединений 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 жрет все больше и больше оперативы с каждой секундой?
     
    #1 masbear, 4 Jun 2009
    Last edited: 4 Jun 2009
  2. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Глюки вполне возможно из-за этого ибо соединение закрывать нужно.

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

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Сервер ты загружашь тк у него открывается соединение и он ждет команд... соединение ты не закрыл а оно какоето время будет висеть и занимать память... а если на твою страницу заходят 1000 челов одновремено и бродят по сайту в котором здоровая вложеноссть и каждое обновление открывает новое соединение... да еще твой сайт распологается на хостинге... в общем поначало это существенно увеличит скорость загрузки странице твоей, а потом и вовсе страницы перестанут открыватся.

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

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    эммм... а using уже не модно юзать?
    для каждого запроса, создавай отдельный коннект.
    и про Dispose почитай... =\
     
  5. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    А почему не в инит, а в лоад? Интересно.

    Абстрактные примеры - зло.
     
  6. masbear

    masbear Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    81
    Likes Received:
    7
    Reputations:
    1
    Исключено, и я объяснял почему. Обращение к бд идет по всей странице.

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

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

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

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