Вопрос по ssms, sql-server-2012, sql – SQL Server Management Studio 2012 зависает
Когда я нажимаю на кнопку «Базы данных» узел в "Обозревателе объектов" он просто продолжает & quot; Загрузка элементов & quot; пока в какой-то момент он просто не зависнет.
Это происходит только при подключении к удаленному серверу, а не при доступе к базе данных на моем ПК.
Это также не происходит с любым другим узлом.
У ребят из хостинговой компании с этим не было никаких проблем. (Но они работают под управлением 2008 года, как и сервер SQL)
Я переустановил весь SQL-сервер и т. Д., Но безрезультатно.
В чем может быть проблема?
при доступе к удаленному серверу с помощью обозревателя объектов 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 является приглашением для множества атак, поэтому это не было для нас практическим решением.
я меня! Каждый раз, когда вы расширяете или обновляете список баз данных, сервер должен пробуждать базы данных, вызывающие зависание.
Просто запустите это, чтобы найти все базы данных, которые автоматически закрываются на
SELECT name, is_auto_close_on
FROM master.sys.databases AS dtb
WHERE is_auto_close_on = 1
ORDER BY name
Чтобы отключить этот параметр для базы данных - щелкните правой кнопкой мыши экземпляр базы данных в проводнике объектов -> Свойства клика -> Нажмите "Параметры" в левой панели навигации в окне свойств базы данных -> Измените значение свойства Auto Close на "False" в правой панели, как показано на снимке ниже:
что у вас есть доступ только к одной базе данных в хостинговой компании (что почти всегда имеет место, по крайней мере, с определенным именем пользователя / паролем), вы можете полностью избежать использования раскрывающегося списка, установив для зарегистрированного сервера значение по умолчанию: база данных, к которой вы должны получить доступ:
(Здесь тоже может потребоваться больше времени, но это будет один раз. Вы также можете набрать его вместо ожидания заполнения списка.)
Таким образом, даже если имя входа, созданное для вас хостом, по умолчанию направляет вас к базе данных 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).
SELECT * FROM sys.tables
, процедуры,SELECT * FROM sys.procedures
, так далее. Msdn.microsoft.com / EN-US / библиотека / ms174365.aspx / Msdn.microsoft.com / EN-US / библиотека / ms189783.aspx
Aaron Bertrand
чтобы устранить эту проблему. Это было отправлено как ошибка.
На Win 7 (64) установлены SSMS SQL 2012 и VS 2012.
Удаление папки профиля никогда не работало в течение разумного периода времени.
Обходной путь, который мы нашли, состоял в том, чтобы при подключении мой профиль SSMS по умолчанию соответствовал базе данных Master. Оказалось, что это как-то связано с тем, что я подключаюсь с помощью аутентификации Windows и принадлежу к нескольким группам AD, которым назначены разрешения SQL И у меня нет специальных разрешений SQL, настроенных для моей учетной записи AD.
ющий раз, когда я открыл SSMS 2012, он снова зависнет при подключении к серверу. SP1 это тоже не исправил.
Так было до тех пор, пока я не нашел следующий простой обходной путь, описанный на билет Бена Амады на connect.microsoft.com: Всегда закрывайте Сведения о проводнике объекта до закрытия SSMS 2012.
Так что для меня это обходной путь:
Следуйте ответу Jaecen, но снова закройте SSMS 2012 после того, как он создал чистую папку профиля Применить рекомендации Hoodlum и скопироватьSqlStudio.bin
из старой папки профиля в новую (впоследствии старую папку профиля можно удалить) Каждый раз перед закрытием SSMS 2012 убедитесь, ч Сведения о проводнике объекта окно закрытоПервые два шага требуются только один раз, или если окно Подробности обозревателя объектов было оставлено открытым случайно.
Редактироват
Я только что заметил, что закрытие окна Object Explorer Details также необходимо при (повторном) подключении к серверу SQL в том же сеансе SSMS. Поэтому при подключении к серверу окна «Подробности обозревателя объектов» должны быть закрыты.
работающим с 2000 по 2012 год. SMSS на локальном ПК - это SQL Server 2012, SMSS - это 11.0.2100.60
SSMS зависает несколько раз в день. Когда это происходит, я иду через RDP на локальный сервер / SMSS / Activity Monitor и убиваю процессы с моего компьютера, используя Database Name = master, по одному, пока SMSS на моем компьютере не замерзнет.
Это всегда работает, однако, лекарство от болезни, более редкое, чем симптомы, было бы очень кстати.
затем доступ через SMSS с моего рабочего стола. Проблема возникает с различной частотой, выглядит так: когда я сворачиваю сервер в проводнике объектов, SMSS зависает.
просматривая монитор активности на рассматриваемом сервере, я нахожу процесс в master db с host = мой рабочий стол, выполняющий следующий запрос
ВЫБРАТЬ dtb.name КАК [Имя] ИЗ master.dbo.sys баз данных КАК dtb ЗАКАЗАТЬ [Имя] ASC SMSS
убийство процесса освобождает SMSS.
но моя 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, чтобы решить мою проблему.