Вопрос по ssms, sql-server-2012, sql – SQL Server Management Studio 2012 зависает

26

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

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

Это также не происходит с любым другим узлом.

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

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

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

Также вы можете определить "зависания"? Означает ли это, что вы только что отказались от этого, или он фактически переходит в режим «Не отвечает»? Вы запускаете какой-то сетевой профилировщик, чтобы увидеть, какие данные передаются в это время, пока вы ждете? Это может быть заблокировано на другом конце, или это может быть просто передача данных по-прежнему ... Aaron Bertrand
У вас есть доступ к нескольким базам данных с этими учетными данными в хостинговой компании? (Обычно это не так.) Aaron Bertrand

Ваш Ответ

13   ответов
45

при доступе к удаленному серверу с помощью обозревателя объектов SSMS зависает бесконечно. В журнале системных событий Windows будет отображаться ошибка DCOM 10009 («DCOM не удалось установить связь с компьютером MACHINE_NAME, используя какой-либо из настроенных протоколов.»).

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

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

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

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

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

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

Удаление папки 11.0 работало в течение пары дней, но спустя 1 неделю все вернулось к тому, как изначально было, когда Object Explorer полностью блокировался при попытке расширить узел Базы данных, или даже до того, как я получил возможность это сделать. Это происходит с двумя отдельными экземплярами SQL-сервера, к которым я пытаюсь подключиться, которые находятся на общих веб-хостах с большим количеством других БД на них. Те же 2 экземпляра SQL-сервера, к которым я смог подключиться без проблем в SSMS 2008. Я, вероятно, снова удалю папку 11.0, но это затруднительно, потому что мне нужно добавить все свои настройки обратно. Ben Amada
Единственным постоянным решением было бы открыть порт 135 на брандмауэре, но я не рекомендую этого. Jaecen
Удаление папки сработало у меня. Благодарность jkruer01
Большое спасибо! После удаления папки 12.0 для SSMS 2014 все работает быстрее veljasije
6

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

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

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 форум = sqltools

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

Благодарность. Если это правда - что база данных должна быть разбужена, чтобы появиться в окне обозревателя объектов - интересно,Заче как будто. Я хотел бы видеть это итогд выбери, какая база данных мне нужна ... ispiro
Seems SSMS до 2012 года не было необходимости делать это. 2012 должен сделать что-то, что требует загрузки БД ... Nuno Agapito
Кроме того, поискать его в гугле, кажется, что автоматическое закрытие баз данных - очень плохая практика ... Я переключил все свои (было около 40 баз данных), и время ожидания изменилось с 1-2 минут до 0 секунд:) Nuno Agapito
Спот на приятель! У меня более 1000 баз данных на каждом сервере SQL! и заняло около 40 секунд, чтобы расширить базы данных! запускается сценарий формы Support.managed.com / кб / A402 / ... и теперь он открывается через секунду! только 40 на каждом сервере были настроены на автоматическое закрытие тоже ... С уважением и благодарностью Liam Liam Wheldon
Это на самом деле работает как шарм. +1. Для меня это происходило всякий раз, когда я удалял базу данных localdb из экземпляра (localdb) \ v11.0. Время от времени это показывает окно сообщения, показывающее сообщение «Ссылка на объект не установлена на экземпляр объекта» сразу после удаления базы данных localdb. Когда появляется это всплывающее сообщение, только объектный проводник зависает, а остальная часть пользовательского интерфейса отзывчива. Но иногда, когда это окно сообщения не появляется, весь пользовательский интерфейс перестает отвечать на запросы. RBT
5

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

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

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

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

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

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

Спасибо за подробный ответ. / Я попытался поместить имя базы данных в «Свойства подключения» - она просто подключается к серверу, как и раньше. / Я пытался "Object Explorer Details" - та же проблема. / Веб-хостинг не поддерживает 2012 год. / В настоящее время я загружаю SSMS 2008, но хотел бы избежать этого варианта, опасаясь, что он может помешать 2012 году (задокументировано ли, что эти 2 могут сосуществовать?). / Что касается каталога и DMV - звучит многообещающе - что они? / И еще раз спасибо. ispiro
Я не знаю, документировано ли это, но пока вы не используете Visual Studio, BIDS и т. Д., Тогда я могу дать вам личную уверенность в том, что они не сломают друг друга (хотя я не уверен на 100%, кто победит в настройках / настройках клавиатуры и т. д., если вы устанавливаете 2008 второй - я всегда делал это наоборот). Я не думаю, что использование версии 2008 года что-то изменит, но, по крайней мере, даст вам законное преимущество в том, что вы можете сломать его в поддерживаемой ими версии. Они должны быть в состоянии попытаться воспроизвести сза пределам их уютной маленькой сети (где, я уверен, это работает). Aaron Bertrand
Что касается вашего комментария выше - после долгого времени я должен использовать «Диспетчер задач», чтобы завершить процесс. / Что касается "сетевого профилировщика" - хотелось бы знать, что это такое. ispiro
Каталожные представления - это метаданные для вашей базы данных. Так что если вы хотите список таблиц,SELECT * FROM sys.tables, процедуры,SELECT * FROM sys.procedures, так далее. Msdn.microsoft.com / EN-US / библиотека / ms174365.aspx / Msdn.microsoft.com / EN-US / библиотека / ms189783.aspx Aaron Bertrand
I Утра используя Visual Studio. И Visual Web Developer. ispiro
3

чтобы устранить эту проблему. Это было отправлено как ошибка.

На Win 7 (64) установлены SSMS SQL 2012 и VS 2012.

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

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

2

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

Так было до тех пор, пока я не нашел следующий простой обходной путь, описанный на билет Бена Амады на connect.microsoft.com: Всегда закрывайте Сведения о проводнике объекта до закрытия SSMS 2012.

Так что для меня это обходной путь:

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

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

Редактироват

Я только что заметил, что закрытие окна Object Explorer Details также необходимо при (повторном) подключении к серверу SQL в том же сеансе SSMS. Поэтому при подключении к серверу окна «Подробности обозревателя объектов» должны быть закрыты.

2

работающим с 2000 по 2012 год. SMSS на локальном ПК - это SQL Server 2012, SMSS - это 11.0.2100.60

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

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

2

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

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

ВЫБРАТЬ dtb.name КАК [Имя] ИЗ master.dbo.sys баз данных КАК dtb ЗАКАЗАТЬ [Имя] ASC SMSS

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

1

нажмите кнопку подключения к обозревателю объектов в диалоговом окне подключения к серверу, разверните параметры >> нажмите Сбросить все Готово!

1

но моя 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, чтобы решить мою проблему.

0

dows), и теперь он работает нормально, хотя загрузка занимает очень много времени.

0

Откройте SSMS, нажмите кнопку подключения к проводнику объектов в диалоговом окне подключения к серверу, разверните параметры >> нажмите; Сбросить все ;- все работает

0

изменив базу данных по умолчанию обратно на master.

Это сработало, потому что на какой бы установленной по умолчанию базе данных была установлена функция Auto-Close? influent
@ влиятельный Где это? Tuan
0

012. Затем проверьте.

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