Подтвердить что ты не робот

SQL Server Management Studio 2012 зависает

Когда я нажимаю на "Базы данных" node в "Обозревателе объектов", он просто продолжает "Загрузка элементов", пока в какой-то момент он просто не зависает.

Это происходит только при подключении к удаленному серверу, а не при доступе к базе данных на моем ПК.

Это также не происходит ни с каким другим node.

Ребята в веб-хостинговой компании не испытывали никаких проблем с этим. (Но они работают в 2008 году, и там есть сервер SQL)

Я переустановил весь сервер SQL и т.д., но безрезультатно.

В чем может быть проблема?

4b9b3361

Ответ 1

У меня возникла такая же проблема: при доступе к удаленному серверу с помощью Обозревателя объектов SSMS будет вешать бесконечно. В системном журнале событий Windows будет отображаться ошибка 10008 DCOM ( "DCOM не смог связаться с компьютером MACHINE_NAME с использованием любого из настроенных протоколов." ).

Решение состояло в том, чтобы очистить историю MRU и другие настройки от моего профиля.. Чтобы сделать это:

  • Закройте все открытые экземпляры SSMS 2012
  • В проводнике откройте "% AppData%\Microsoft\SQL Server Management Studio"
  • Переименуйте папку "11.0" на что-то еще, например "11.0.old"
  • Открыть SSMS 2012

Вы увидите, что ваш список MRU был очищен. Затем вы сможете повторно ввести свои учетные данные и использовать SSMS как обычно.

Если все работает, вы можете удалить переименованную папку. В противном случае удалите новую папку "11.0" , которая была создана, и переименуйте ее обратно в "11.0" .

Я понятия не имею, действительно ли это список MRU, вызывающий эту проблему, или какие-то другие данные профиля.

Мы смогли обнаружить, что SSMS пытается подключить DCOM через порт 135 к SQL Server (возможно, для SSIS, T-SQL Debugging или что-то еще). Наш брандмауэр был настроен на блокировку порта 135. Открыв порт в брандмауэре, мы смогли использовать SSMS (отсюда причина, по которой он работал с локальными базами данных, но не с удаленными). К сожалению, открытый порт 135 является приглашением на множество атак, поэтому это не было практическим решением для нас.

Ответ 2

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

Просто запустите это, чтобы найти все базы данных, которые автоматически закрываются на

SELECT name, is_auto_close_on
FROM master.sys.databases AS dtb 
WHERE is_auto_close_on = 1 
ORDER BY name

Кредиты на http://social.msdn.microsoft.com/Forums/sqlserver/en-US/99bbcb47-d4b5-4ec0-9e91-b1a23a655844/ssms-2012-extremely-slow-expanding-databases?forum=sqltools

Чтобы отключить этот параметр для базы данных - щелкните правой кнопкой мыши на экземпляре базы данных в проводнике объектов → Свойства клика → Нажмите "Параметры" в левой навигационной панели в окне свойств базы данных → Измените значение свойства "Автозакрытие" на "False" в правой панели, как показано в снимок ниже:

Автоматическое закрытие в окне свойств базы данных в SQL Server 2008 R2

Ответ 3

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

enter image description here

(Это может занять больше времени, но это будет одноразово. Вы также можете ввести его, а не ждать, пока список заполнится.)

Таким образом, даже если логин, созданный вами для вас, перенаправляет вас на tempdb или что-то по умолчанию, Management Studio все равно поместит вас в контекст вашей базы данных.

Теперь я вижу, что вы говорите об объекте Explorer node, а не в раскрывающемся списке "Использовать базу данных", который я как-то неправильно интерпретировал. Упражнение для проверки может состоять в том, чтобы выделить базы данных node (не расширять его) и щелкнуть F7 (Сведения обозревателя объектов). Если это загружается для вас, то это может быть альтернативой навигации по иерархии и, в качестве бонуса, вы можете показать здесь множество атрибутов сущности, а также multi-select, две вещи, которые вы не контролируете в Object Explorer.

Если это не поможет, то ваш хост должен помочь вам лучше, чем кажется. Если SSMS 2012 поддерживается, они должны быть в состоянии проверить это в SSMS 2012 и подтвердить или опровергнуть, что они могут воспроизвести его. Если он не поддерживается, я думаю, что ваш регресс должен также установить SSMS 2008 (они могут сосуществовать) и использовать его для управления этим конкретным сервером.

Конечно, что-то, что вы можете сделать в Object Explorer (и много чего не можете), вы можете сделать, используя каталог представления и/или DMVs. Поэтому, прежде чем вы определяете, что делать, вы можете просмотреть (или поделиться с нами), что именно вы используете Object Explorer для - если есть способ сделать это без Object Explorer, вам может понравиться обходной путь лучше, чем наличие двух версий инструмента (поскольку улучшения в SSMS 2012 года не имеют абсолютно никакого отношения к Object Explorer).

Ответ 4

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

У меня есть SQL SQL SSMS и VS 2012, установленные на Win 7 (64).

Удаление папки профиля никогда не работало в течение разумного промежутка времени.

Обходной путь, который мы обнаружили, заключался в том, чтобы мой SSMS-профиль по умолчанию был подключен к основной базе данных при подключении. Похоже, что это связано с тем фактом, что я подключаюсь к Windows Authentication, и я принадлежу к нескольким группам AD, у которых есть разрешения SQL, и у меня нет специальных разрешений SQL, установленных в моей учетной записи AD.

Ответ 5

В моем случае удаление папки профиля работало ровно один раз. В следующий раз, когда я открою SSMS 2012, он снова замерзнет при подключении к серверу. SP1 также не исправил это.

Это было до тех пор, пока я не нашел следующее простейшее обходное решение, описанное в билете Ben Amada на сайте connect.microsoft.com: Всегда закройте информацию обозревателя объектов перед закрытием SSMS 2012.

Итак, для меня все обходное решение:

  • Следуйте за ответом Jaecen, но снова закройте SSMS 2012 после создания чистой папки профиля.
  • Примените рекомендацию Hoodlum и скопируйте SqlStudio.bin из старой папки профиля в новую (впоследствии можно удалить старую папку профиля)
  • Каждый раз перед закрытием SSMS 2012 убедитесь, что окно сведений обозревателя объектов закрыто

Первые два шага требуются только один раз, или если окно сведений обозревателя объектов случайно было закрыто.

Edit

Я только заметил, что закрытие окна "Сведения обозревателя объектов" также требуется при повторном подключении к SQL-серверу в том же сеансе SSMS. Поэтому в основном при подключении к серверу необходимо закрыть окна сведений обозревателя объектов.

Ответ 6

Я подключаюсь к нескольким удаленным серверам rangig с 2000 по 2012 год. SMSS на локальном компьютере - SQL Server 2012, SMSS - 11.0.2100.60

SSMS зависает несколько раз в день. Когда это происходит, я перехожу через RDP к локальный сервер /SMSS/Activity Monitor и убить процессы с моего ПК с именем базы данных = master, по одному за раз, пока SMSS на моем ПК не разморозит.

Это всегда срабатывает, однако, для лечения болезни, чем симптомы будут очень приветствоваться.

Ответ 7

У некоторых серверов SQL с 2000 по 2012 год, доступ через SMSS с моего рабочего стола. Проблема возникает с различной частотой, выглядит так: когда я разрушаю сервер в объектном проводнике, SMSS зависает.

просматривая монитор активности на рассматриваемом сервере, я нахожу процесс в master db с хостом = мой рабочий стол выполняет следующий запрос

SELECT dtb.name AS [Name] FROM master.dbo.sysdatabases AS dtb ORDER BY [Name] ASC SMSS

Убийство процесса освобождает SMSS.

Ответ 8

Вот что сработало для меня Открыть SSMS нажмите на кнопку connect to object explorer в диалоговом окне connect to server expand options → нажмите reset все Готово!

Ответ 9

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

Я запускаю запрос

SELECT 
dtb.name AS [Name]
,dtb.database_id AS [ID] 
,CAST(has_dbaccess(dtb.name) AS bit) AS [IsAccessible] FROM master.sys.databases AS dtb 

Затем результат затянулся слишком долго, и в конце был отключен, но когда я фильтрую застрявшую базу данных, я получил результат.

SELECT 
dtb.name AS [Name]
,dtb.database_id AS [ID] 
,CAST(has_dbaccess(dtb.name) AS bit) AS [IsAccessible] FROM 
master.sys.databases AS dtb 
Where name <> 'StuckDB' ORDER BY [Name] ASC 

В конце я решил отключить StuckDB, чтобы решить мою проблему.

Ответ 10

Теперь я применил пакет обновления 1 (SP1) для SQL 2012 (через Windows Update), и теперь он работает нормально, хотя загрузка занимает очень много времени.

Ответ 11

"Откройте SSMS, нажмите на кнопку connect to object explorer в диалоговом окне connect to server expand options → click reset all" - он работает

Ответ 12

Я решил эту проблему, изменив базу данных по умолчанию на главный.

Ответ 13

Перейдите к свойствам базы данных в SSMS и измените совместимость с 2012 годом. Затем проверьте.

введите описание изображения здесь