Экстремальное время ожидания при выведении базы данных SQL Server из эксплуатации

Не похоже, что вы используете метод splice здесь правильно, он принимает первые 2 аргумента в виде чисел, а третий аргумент будет элементом, которым вы хотите заменить его, если хотите лайк. Вместо этого я бы использовал фильтр здесь:

let newHouseArray = HousesArray.filter(house => house !== house1)

275
задан Erik Forbes 30 April 2009 в 06:53
поделиться

4 ответа

После некоторого дополнительного поиска (новые условия поиска, основанные на ответе gbn и комментарии u07ch на ответ KMike), я нашел это, которое успешно завершилось за 2 секунды:

ALTER DATABASE <dbname> SET OFFLINE WITH ROLLBACK IMMEDIATE

(Обновление)

Когда это по-прежнему происходит со следующей ошибкой, вы можете исправить ее, как вдохновлено этим сообщением в блоге :

Ошибка ALTER DATABASE, потому что блокировка не может быть помещена в базу данных «dbname». Повторите попытку позже.

Вы можете выполнить следующую команду, чтобы узнать, кто хранит блокировку вашей базы данных:

EXEC sp_who2

И использовать любой SPID , который вы найдете в следующей команде:

KILL <SPID>

Затем запустите ALTER DATABASE команда снова. Теперь оно должно работать.

402
ответ дан 23 November 2019 в 02:08
поделиться

Есть ли у вас какие-либо открытые окна SQL Server Management Studio, которые подключены к этой БД?

Переведите его в однопользовательский режим и повторите попытку.

28
ответ дан 23 November 2019 в 02:08
поделиться

каждый раз, когда вы сталкиваетесь с подобными вещами, вы всегда должны думать о своем журнале транзакций. Alter db statment с немедленным откатом указывает, что это так. Проверьте это: http://msdn.microsoft.com/en-us/library/ms189085.aspx

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

4
ответ дан 23 November 2019 в 02:08
поделиться

Скорее всего, откуда-то существует соединение с БД (редкий пример: асинхронное обновление статистики )

Чтобы найти соединения, используйте sys.sysprocesses

USE master
SELECT * FROM sys.sysprocesses WHERE dbid = DB_ID('MyDB')

Для принудительного отключения используйте ROLLBACK IMMEDIATE

USE master
ALTER DATABASE MyDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
127
ответ дан 23 November 2019 в 02:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: