SQL Server Management Studio медленно открывает новые окна

30

После обновления SQL Server и Management Studio с 2008 по 2012 год Management Studio 2012 работает очень медленно, когда открываются новые окна запросов и диалоговые окна.

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

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

То, что я пробовал, не помогло:

  • Хит на Google, где мне нужно изменить свой hostsфайл
  • Сброс SSMS "пользовательские настройки"
  • Обновление драйверов видео, отключение аппаратного ускорения, отключение DirectX
  • Отключение службы биометрической аутентификации (у меня она не установлена).

Мой компьютер должен быть более чем достаточно быстрым, и у меня также есть 16 ГБ оперативной памяти. Мое железо определенно не должно быть проблемой. Похоже, SSMS чего-то ждет - я могу беспрепятственно управлять другими программами, пока это происходит.

У меня нет возможности установить обновление SQL Server 2012 CU1, потому что, по-видимому, существует риск ошибок при установке исправлений, и я не могу рисковать этим прямо сейчас.

Дэвид С.
источник
Я не вижу такого поведения. Если бы я сделал это, чтобы продолжить расследование, я мог бы попытаться (1) использовать Process Monitor, чтобы увидеть, что делает процесс, и дает ли это какие-либо подсказки. (2) Использование SQL Server Profiler для определения высокой длительности каких-либо запросов, отправляемых из SSMS (например, блокировка) (3) Присоединение отладчика к процессу SSMS и его взлом во время зависаний, чтобы увидеть, указаны ли имена функций в стек вызовов выявил что-либо.
Мартин Смит

Ответы:

11

Запуск SQL Server Management Studio

Когда Microsoft SQL Server Management Studio (SSMS) запускается, он пытается подключиться к списку отзыва сертификатов (CRL) Microsoft:

http://crl.microsoft.com/pki/crl/products/MicrosoftRootAuthority.crl

Базовые компоненты .NET SSMS пытаются связаться со списком отзыва сертификатов, а SSMS не может этого сделать. Это замедляет общую процедуру загрузки. (Очевидно, 15 секунд на сертификат)

Итак, вот что происходит. SSMS имеет высокий процент управляемого кода, весь этот код подписан, когда мы его отправляем. При запуске (если этот параметр отмечен) .Net Runtime пытается связаться с crl.microsoft.com, чтобы убедиться, что сертификат действителен (некоторое время назад было выдано несколько поддельных сертификатов на имя Microsoft, так что это очень серьезная проблема) , Если нет подключения к Интернету или возникла проблема с подключением к серверу списка отзыва сертификатов, это приведет к задержке запуска SSMS.

Ссылка: FAQ, почему SSMS требуется 45 секунд для запуска? (Блог MSDN)

Проблема, которая может вызвать эту проблему, заключается в том, что если у сервера нет доступа к Интернету, то .NET Framework не может получить доступ к веб-сайту crl.microsoft.com, чтобы проверить, что цифровые подписи используются для подписи двоичных файлов для управляемых приложений. действительны. Каждая проверка сертификата имеет 15-секундный тайм-аут в реализации среды выполнения .NET. В зависимости от того, какие функции установлены, это может увеличить время запуска Management Studio до минуты.

Ссылка: время запуска SQL Server Management Studio (блог MSDN)

Решения

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

  • ИЛИ -

Вы можете перенастроить брандмауэр (компании), чтобы разрешить подключения к CRL от Microsoft

  • ИЛИ -

Вы можете перенастроить свой персональный антивирус / брандмауэр, чтобы разрешить подключения к Microsoft CRL

  • ИЛИ -

Вы можете настроить брандмауэр (компании) на более быструю отправку тайм-аута вашему клиенту для запросов на доступ к CRL от Microsoft.

  • ИЛИ -

Вы можете настроить IE, чтобы он больше не проверял отзыв сертификата издателя в дополнительных настройках.

(См. Вышеупомянутые блоги 1 и 2 для деталей)

Джон ака hot2use
источник
7

У меня такой же опыт, как и у вас, когда я подключаюсь к имени сервера "./". По счастливой случайности я обнаружил, что у меня не возникает проблемы с производительностью при подключении к имени сервера «(локально)». Вероятно, есть проблема с тем, как SSMS 2012 разрешает сервер через «./».

Изменить: я не думаю, что это связано с SSMS, так как я могу воспроизвести медлительность с ./ в соединении ADO.NET.

LorentzM
источник
6

Может случиться так, что SSMS импортирует настройки, которые больше не могут обрабатываться корректно (например, подключения к какому-либо серверу или некоторые настройки надстройки)

Существует жестокий способ «сброса» пользовательских настроек SSMS.

Закройте SSMS, перейдите в папку:

C:\Users\YOURWINLOGINNAME\AppData\Roaming\Microsoft\SQL Server Management Studio\

Вы найдете подпапку "11.0". Переименуйте его в «11.0_», чтобы вы всегда могли переименовать его обратно. Теперь запустите SSMS - он заново создаст чистые настройки и, возможно, ваша проблема будет решена. Если нет - удалите вновь сгенерированный «11.0» и переименуйте «11.0_» обратно в «11.0».

Это также может быть поведение некоторой надстройки, которая была повреждена после обновления. Надстройки регистрируют себя как обработчики для некоторых команд или событий, и система может работать нестабильно, если они пропускают / выдают исключения.

На самом деле, v2012 использует другой механизм регистрации надстроек, но некоторые надстройки устанавливаются во всех экземплярах. Чтобы проверить, загляните в этот раздел реестра:

[HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio\11.0_Config\AutomationOptions\LookInFolder]

Вы найдете список папок там. Проверьте все эти папки - они должны быть пустыми (значит, у вас нет надстроек).

Андрей Ранцевич
источник
4

Попробуйте отключить антивирус, а затем проверьте производительность для студии управления sql server 2012.

Имран
источник
4
В чем смысл этого предложения?
Мартин Смит
3

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

  1. Установка обновленного драйвера видео -OR-
  2. Уменьшение или отключение аппаратного исключения -OR-
  3. Отключение поддержки DirectX

От ветки был также этот ответ ... "Процедура чистой загрузки Windows 7 выявила, что служба биометрической проверки подлинности (DigitalPersona DPHostw.exe) была проблемой. Отключение службы решило проблему".

Мне было бы интересно узнать, работает ли какой-либо из этих подходов и в вашем случае, поскольку найденная мной нить относится к более старым версиям SSMS, т. Е. 2005, 2008 и т. Д.

Линн Лангит
источник
3

Я предполагаю, что проблема в том, что открытие нового соединения с вашим сервером занимает 5 секунд. Почему именно это так, я не могу сказать, и для анализа и диагностики потребовалась бы проводная трассировка. Вы должны выяснить, по какому протоколу (-ам) пытались и какой протокол в конечном итоге был успешным. Возможно, ваш клиент сначала пытается использовать именованные каналы (что зависит от SMB), а затем возвращается к TCP (хотя обычная задержка в таком случае намного больше, около 20-30 секунд).

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

Ремус Русану
источник
3

У меня та же проблема, и выясняется, что ее вызывает сканирование Trend Micro Office.

Я пытался все, что описано в нескольких других аналогичных темах об этой проблеме, но безрезультатно. Я подумал, что попробую отключить программное обеспечение AV. Как только сканирование Trend Micro Office отключено, SSMS быстро светит.

Этого не произошло в Windows 7.

user1905428
источник
3

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

Прочитав ответ imran об отключении антивируса, я пошел дальше к этой концепции, поскольку не хочу полностью отключать свой антивирус, просто чтобы решить эту проблему.

Я значительно сократил задержку (теперь она составляет не более 1 секунды), изменив расположение базы данных по умолчанию, а затем исключив этот каталог из антивируса (в моем случае я использую Microsoft System Center Endpoint Protection 2015).

Для изменения расположения базы данных по умолчанию см. Следующую статью для получения подробной информации. http://thomaslarock.com/2015/02/changing-default-database-file-locations-in-sql-server/

davrob01
источник
3

У меня была такая же проблема с SSMS 2016. Я использовал procmon, чтобы определить, что последнее, что он сделал перед задержкой в ​​несколько секунд, было сетевое подключение к IP-адресу Microsoft. Затем я попытался отключить программу взаимодействия с пользователем, установив HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\130значение ключа реестра CustomerFeedbackот 1 до 0. После перезапуска SSMS она снова работает быстро. Предположительно, это не всегда приводит к медленным новым окнам запросов, но для меня это было.

Я не знаю, происходило ли это с вашей SSMS 2012, но, возможно, стоит попробовать. Ключ реестра, вероятно, будет 110вместо 130.

Рори
источник
2

По поводу SSMS 2016 и изменения реестра. Мой путь был

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\Tools\Setup\UserFeedbackOptIn  

Я изменил его с 1 на 0, и SSMS снова был быстрым.

JohnH
источник
2

Иногда эту проблему можно решить, просто закрыв большое количество кэшированных окон запросов.

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

Coruscate5
источник
2

У меня ssms v17.0, у меня также была проблема с медленным щелчком правой кнопкой мыши по контекстным меню.

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

Я удалил ssms, удалил sql server, переименовал в компьютер что-то простое, например, «MyBox» вместо «xja-13-asdfa3». Затем я переустановил sql server, затем ssms, и это исправило ВСЕ мои проблемы с контекстным меню SLOW при щелчке правой кнопкой мыши по таблицам. Я предполагаю, что где-то проблемы DNS возникали, и ожидания были связаны с ожиданием времени ожидания DNS.

У меня был ноутбук с 16 гигабайтами оперативной памяти, ssd-накопителями, процессором 3 ГГц прямо из коробки с завода со случайным именем компьютера по умолчанию.

user124222
источник
1

Это быстро на моем компьютере.

SSMS в SQL Server 2012 теперь использует оболочку Visual Studio 2010, которая более ресурсоемка, чем оболочка, используемая SSMS в SQL Server 2008. Я предлагаю обновить ваш компьютер или использовать SSMS из SQL Server 2008 R2. Вы должны быть в состоянии выполнить большинство задач со старой версией.

Вы также можете попробовать установить последнее накопительное обновление, поскольку они также обновят клиентские инструменты. Последняя версия для SQL Server 2012 в настоящее время CU1.

http://support.microsoft.com/kb/2679368/

Роб Бок
источник
1

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

Джон Кэмпбелл
источник
1

Важно, чтобы вы не использовали короткое имя NetBIOS!

Если вы это сделаете, студия управления использует какое-то устаревшее соединение. Все будет раздражающе медленно. Просто используйте IP-адрес или полное имя компьютера, на котором работает сервер SQL.

Если вы хотите узнать имя NetBIOS вашего компьютера, выполните запрос:

select @@Servername

Это возвращает короткое, я думаю, 15 символов длинного старого названия машины. Не используйте это.

Mafii
источник
0

Для меня это был брандмауэр BitDefender, который сделал мой SSM очень медленным. По-видимому, своего рода блокировка брандмауэра для получения доступа к списку базы данных

eka808
источник
-1

Необходимо проверить состояние свойства базы данных « Автоматически закрыть » в группе « Автоматически ».

Если значение равно true, после каждого запроса соединение будет закрываться и повторно открываться при каждом новом запросе. Это наверняка замедлит вашу работу в ssms. По умолчанию установлено значение false.

Лоул Г.
источник
-2

Может быть, у вас недостаточно оперативной памяти на вашем компьютере?

Рекомендуемая оперативная память для SQL 2012 4 года. Это был 2 ход для SQL 2008. http://msdn.microsoft.com/en-us/library/ms143506.aspx

Поскольку вы обновились с SQL 2008 до 2012, может быть, вам нужно больше оперативной памяти?

Даниэль Пакетт-Харви
источник
-2

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

Waqas Zubairy
источник
-3

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

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

Смотрите здесь для получения дополнительной информации: http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/64c13a84-3e62-4b0c-a1ce-65fcc78d6787

Пляжный бездельник
источник
1
Эта проблема относится только к SSMS 2012 - я сомневаюсь, что тема msdn от февраля 2010 года будет актуальна.
JNK