none
SQL 'Время ожидания истекло' RRS feed

  • Вопрос

  • При добавлении в SQL таблицу столбца зависает эта таблица. При попытки получить из нее данные выдает ошибку "Время ожидания истекло". Спасает только отсоединение\присоединение БД. В чем может быть проблема, может кто сталкивался??? 
    14 августа 2013 г. 13:55

Ответы

  • из GUI

     "виснет" - значит не могу просмотреть данные в таблицах не через GUI, не через web-приложение. Другие БД работают.


    Забудьте про ГУИ совсем...запустите запрос, посмотрите на блокировки из-за которых происходит ожидание...уверен причина в том, что вы накладываете блокировку sch-m, при изменении таблицы (о чём я писал ещё в первом ответе) и транзакция остаётся висеть открытой

    http://www.t-sql.ru


    15 августа 2013 г. 11:33
    Отвечающий

Все ответы

  • таймаут - это ошибка приложения

    1) каким образом идёт добавление столбца?

    2) сколько данных в таблице и, что за поле добавляется (тип, размер, дефолт для него!?)

    3) висит ли на таблице всё это время блокировка sch-m?


    http://www.t-sql.ru

    15 августа 2013 г. 3:53
    Отвечающий
  • - добавление происходит ручками из microsoft sql server management studio 2008 r2;

    - столбцов в таблице 10-15, а всего записей около 20. Данные int и bit;

    - нет.

    Если я в это же время пытаюсь получить данные из microsoft sql server management, то он тоже долго думает и выдает ту же ошибку.

    Подробности нарыл. В приложении (MVC) для доступа к БД я использую fluent nhibernate. Есть рабочая база и тестовая (аналог рабочей). при расширении проекта в некоторые таблицы тестовой БД добавляются колонки (также ручками из microsoft sql server management studio 2008 r2). При изменении строки подключения на основную БД (рабочую), там, соответственно, эти столбцы не добавлены. И при попытки прочитать данные fluent nhibernate ругается на то что нет этих столбцов... И после этого вся эта БД виснет и к ней нельзя получить доступ не с приложения, ни с management studio.
    15 августа 2013 г. 4:52
  • >>добавление происходит ручками из microsoft sql server management studio 2008 r2

    что значит ручками? вы через ГУИ это делаете или скриптом?

    >>И после этого вся эта БД виснет и к ней нельзя получить доступ

    что значит "виснет"? Что происходит с самим сервером БД? в каком статусе ваша БД? Какие процессы в этот момент крутятся в БД?


    http://www.t-sql.ru

    15 августа 2013 г. 10:03
    Отвечающий
  • из GUI

     "виснет" - значит не могу просмотреть данные в таблицах не через GUI, не через web-приложение. Другие БД работают.

    15 августа 2013 г. 10:40
  • Мне кажется, вы не там ищете ответы на вопросы о том, почему так себя ведёт какой-то сторонний ORM. 
    15 августа 2013 г. 10:59
  • из GUI

     "виснет" - значит не могу просмотреть данные в таблицах не через GUI, не через web-приложение. Другие БД работают.


    Забудьте про ГУИ совсем...запустите запрос, посмотрите на блокировки из-за которых происходит ожидание...уверен причина в том, что вы накладываете блокировку sch-m, при изменении таблицы (о чём я писал ещё в первом ответе) и транзакция остаётся висеть открытой

    http://www.t-sql.ru


    15 августа 2013 г. 11:33
    Отвечающий