Основная база данных БД STARTUP проблема - PullRequest
2 голосов
/ 02 августа 2010

У меня есть база данных SQL Server 2008, и у меня есть проблема с этой базой данных, которую я не понимаю.

Шаги, вызвавшие проблемы:

  • Я запустил SQL-запрос для обновления таблицы с именем авторов из другой таблицы с именем authorAff
  • Таблица авторов - 123 385 300 записей, а таблица авторов - 139 036 077
  • Выполнение запроса заняло около 7 дней, но не завершилось
  • Я решил отменить запрос, чтобы сделать это другим способом.
  • Соединение, по которому я выполнял запрос, внезапно отключилось, поэтому база данных стала восстанавливаться, пока запрос не отменит
  • После этого сервер много раз отключался из-за проблем с электричеством
  • База данных заняла около двух дней, а затем восстановилась.
  • Теперь, когда я запускаю этот запрос

    ВЫБРАТЬ ТОП 1000 * ОТ АВТОРОВ С (READUNCOMMITTED)

Он выполняет и возвращает результаты, но когда я удаляю подсказку WITH (READUNCOMMITTED), он блокируется процессом, выполняющимся в базе данных master, которая отображается только в мониторе операций с командой [DB STARTUP], и результаты не отображаются. Так что же такое команда DB STARTUP и если это проблема, как я могу ее решить?

Заранее спасибо.

1 Ответ

4 голосов
/ 02 августа 2010

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

Откат невозможно избежать даже с помощью SQLСервер останавливается и запускается.

Причина, по которой вы можете выполнить запрос WITH (READUNCOMMITTED), заключается в том, что он игнорирует блокировки, связанные с откатом транзакции.Результаты вашего запроса считаются ненадежными, но, как ни странно, результаты, вероятно, именно те, которые вы хотите увидеть, поскольку процесс блокировки является откатом.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...