SQL Server Management Studio powoli otwiera nowe okna

29

Po uaktualnieniu zarówno SQL Server, jak i Management Studio od 2008 do 2012, Management Studio 2012 działa bardzo wolno po otwarciu nowych okien zapytań i okien dialogowych.

Nawet kliknięcie tabel prawym przyciskiem myszy jest powolne. Zazwyczaj jest co najmniej 5 sekund opóźnienia, zanim zacznę robić cokolwiek w oknie. Dzieje się tak za każdym razem, nawet jeśli dwa razy z rzędu otwieram to samo okno. Dlaczego tak się dzieje i jak mogę to naprawić?

Inne aplikacje bardzo szybko ustanawiają połączenia z bazą danych.

Rzeczy, które próbowałem, które nie pomogły:

  • Hit w Google, w którym musiałbym zmodyfikować mój hostsplik
  • Resetowanie „ustawień zdefiniowanych przez użytkownika” SSMS
  • Aktualizacja sterowników wideo, wyłączenie akceleracji sprzętowej, wyłączenie DirectX
  • Wyłączanie usługi uwierzytelniania biometrycznego (nie mam jej zainstalowanej).

Mój komputer powinien być wystarczająco szybki, a także mam 16 GB pamięci RAM. Mój sprzęt zdecydowanie nie powinien stanowić problemu. Wygląda na to, że SSMS na coś czeka - w tym czasie mogę płynnie obsługiwać inne programy.

Nie mam możliwości zainstalowania aktualizacji CU1 programu SQL Server 2012, ponieważ wydaje się, że istnieje ryzyko błędów podczas instalowania poprawek i nie mogę teraz zaryzykować.

David S.
źródło
Nie widzę tego zachowania. Gdybym to zrobił, to by zbadać dalej, mógłbym spróbować (1) Za pomocą Monitora procesów sprawdzić, co robi proces i czy to daje jakieś wskazówki. (2) Korzystanie z SQL Server Profiler, aby sprawdzić, czy którekolwiek z zapytań wysyłanych z SSMS ma długi czas trwania (np. Blokowanie) (3) Dołączanie debugera do procesu SSMS i włamanie się do niego podczas zawieszeń, aby sprawdzić, czy nazwy funkcji w stos wywołań ujawnił wszystko.
Martin Smith,

Odpowiedzi:

11

Uruchomienie programu SQL Server Management Studio

Podczas uruchamiania programu SQL Server Management Studio (SSMS) firmy Microsoft próbuje połączyć listę odwołania certyfikatów (CRL) firmy Microsoft:

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

Podstawowe komponenty .NET SSMS próbują skontaktować się z listą unieważnionych certyfikatów, a SSMS nie może tego zrobić. Spowalnia to ogólną procedurę ładowania. (Najwyraźniej 15 sekund na certyfikat)

Ok, więc oto co się dzieje. SSMS ma wysoki procent zarządzanego kodu, cały ten kod jest podpisywany przy wysyłce. Podczas uruchamiania (jeśli to ustawienie jest zaznaczone) środowisko uruchomieniowe .Net próbuje skontaktować się z crl.microsoft.com, aby upewnić się, że certyfikat jest ważny (były pewne fałszywe certyfikaty wydane na nazwisko Microsoft, więc jest to bardzo ważna sprawa) . Jeśli nie ma połączenia z Internetem lub występuje problem z kontaktem z serwerem listy odwołania certyfikatów, opóźni to uruchomienie SSMS.

Odniesienie: FAQ, Dlaczego uruchomienie SSMS zajmuje 45 sekund? (Blog MSDN)

Jednym z problemów, które mogą powodować ten problem, jest to, że jeśli serwer nie ma dostępu do Internetu, wówczas .NET Framework nie może uzyskać dostępu do witryny crl.microsoft.com w celu zweryfikowania, czy podpisy cyfrowe używane do podpisywania plików binarnych dla zarządzanych aplikacji są ważne. Każde sprawdzenie certyfikatu ma 15-sekundowy limit czasu w implementacji środowiska wykonawczego .NET. W zależności od zainstalowanych funkcji może to wydłużyć czas uruchamiania programu Management Studio.

Odwołanie: czas uruchamiania programu SQL Server Management Studio (blog MSDN)

Rozwiązania

Możesz obejść część problemu, pobierając certyfikat, wpisując link bezpośrednio do przeglądarki, a następnie importując certyfikat do bazy danych certyfikatów

  • LUB -

Możesz ponownie skonfigurować zaporę (firmową), aby umożliwić połączenia z listą CRL firmy Microsoft

  • LUB -

Możesz ponownie skonfigurować swój osobisty program antywirusowy / zaporę ogniową, aby zezwolić na połączenia z Microsoft CRL

  • LUB -

Możesz skonfigurować zaporę (firmową) zapory, aby szybciej przesyłać do klienta limit czasu na żądania dostępu do listy CRL firmy Microsoft.

  • LUB -

Możesz skonfigurować IE, aby nie „Sprawdzał odwołania certyfikatu wydawcy” w ustawieniach zaawansowanych.

(Zobacz wyżej wspomniane blogi 1 i 2, aby poznać szczegóły)

John aka hot2use
źródło
7

Mam takie same wrażenia jak ty, kiedy łączę się z nazwą serwera „./”. Przez głupie szczęście stwierdziłem, że nie mam problemu z wydajnością, gdy łączę się z nazwą serwera „(lokalny)”. Prawdopodobnie występuje problem ze sposobem, w jaki SSMS 2012 rozwiązuje serwer poprzez „./”.

Edycja: Nie sądzę, że jest to związane z SSMS, ponieważ mogę odtworzyć powolność z ./ w połączeniu ADO.NET.

LorentzM
źródło
6

Może się zdarzyć, że SSMS zaimportował ustawienia, których nie można już traktować poprawnie (np. Połączenia z jakimś serwerem lub może niektóre ustawienia dodatków).

Istnieje brutalny sposób na „zresetowanie” ustawień SSMS zdefiniowanych przez użytkownika.

Zamknij SSMS, przejdź do folderu:

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

Znajdziesz podfolder „11.0”. Zmień nazwę na „11.0_”, aby zawsze móc zmienić nazwę z powrotem. Teraz uruchom SSMS - odtworzy czyste ustawienia i być może twój problem zostanie rozwiązany. Jeśli nie - usuń nowo wygenerowany „11.0” i zmień nazwę „11.0_” z powrotem na „11.0”.

Może to być także zachowanie niektórych dodatków, które uległy uszkodzeniu po aktualizacji. Dodatki rejestrują się jako moduły obsługi niektórych poleceń lub zdarzeń, a system może stać się niestabilny, jeśli brakuje / zgłasza wyjątki.

W rzeczywistości v2012 używa innego mechanizmu rejestrowania dodatków, ale niektóre dodatki instalują się we wszystkich instancjach. Aby to sprawdzić, sprawdź ten klucz rejestru:

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

Znajdziesz tam listę folderów. Sprawdź wszystkie te foldery - muszą być puste (oznacza, że ​​nie masz żadnych dodatków).

Andrei Rantsevich
źródło
4

Spróbuj wyłączyć program antywirusowy, a następnie sprawdź wydajność studia zarządzania SQL Server 2012.

imran
źródło
4
Jakie jest uzasadnienie tej sugestii?
Martin Smith,
3

Osobiście nie spotkałem się z tym problemem, jednak istnieje długi wątek ( tutaj ), w którym wiele osób ma. Wydaje się, że ogólna rada dotyczy pracy ze sterownikiem wideo

  1. Instalowanie zaktualizowanego sterownika wideo -LUB-
  2. Ograniczanie lub wyłączanie przyspieszania sprzętowego -LUB-
  3. Wyłączanie obsługi DirectX

Z wątku była także ta odpowiedź ... „Procedura czystego rozruchu systemu Windows 7 ujawniła, że ​​usługa stanowiła problem z usługą uwierzytelniania biometrycznego (DigitalPersona DPHostw.exe). Wyłączenie usługi naprawiło problem”.

Chciałbym wiedzieć, czy którekolwiek z tych podejść działa również w twoim przypadku, ponieważ znaleziony przeze mnie wątek dotyczy starszych wersji SSMS, tj. 2005, 2008 itd.

Lynn Langit
źródło
3

Myślę, że problem polega na tym, że otwarcie nowego połączenia z serwerem zajmuje 5 sekund. Dlaczego dokładnie nie jest to przypadek, którego analizowanie i diagnozowanie wymagałoby śladu drutu. Powinieneś sprawdzić, które protokoły są próbowane i który protokół ostatecznie się powiedzie. Możliwe, że Twój klient najpierw próbuje nazwać potoki (co zależy od SMB), a następnie wraca do TCP (chociaż zwykłe opóźnienie w takim przypadku jest znacznie dłuższe, około 20-30 sekund).

Polecam sprawdzenie kolejności protokołów klienta w konfiguracji sieci klienta . Sprawdź używany protokół klienta, znajdując swój własny wpis w sys.dm_exec_connections.

Remus Rusanu
źródło
3

Mam ten sam problem i okazuje się, że przyczyną problemu jest skan Trend Micro Office.

Próbowałem wszystkiego opisanego w kilku innych podobnych wątkach na ten temat bezskutecznie. Pomyślałem, że spróbuję wyłączyć oprogramowanie AV. Po wyłączeniu skanowania Trend Micro Office SSMS błyskawicznie się rozjaśnia.

Tak się nie stało w systemie Windows 7.

użytkownik1905428
źródło
3

Ja również miałem 5 do 10 sekund opóźnienia po kliknięciu tabeli prawym przyciskiem myszy, aby wyświetlić menu kontekstowe. Moja sytuacja może być trochę inna niż niektóre, ponieważ używam tylko lokalnych baz danych. Moje rozwiązanie:

Po przeczytaniu odpowiedzi firmy Imran na temat wyłączenia programu antywirusowego poszedłem o krok dalej, ponieważ nie chcę całkowicie wyłączać mojego programu antywirusowego, aby rozwiązać ten problem.

Znacząco zmniejszyłem opóźnienie (teraz wynosi maksymalnie 1 sekundę), zmieniając domyślne lokalizacje bazy danych, a następnie wykluczając ten katalog z antywirusa (w moim przypadku korzystam z Microsoft System Center Endpoint Protection 2015).

Aby zmienić domyślne lokalizacje bazy danych, zobacz następujący artykuł, aby uzyskać szczegółowe informacje. http://thomaslarock.com/2015/02/changing-default-database-file-locations-in-sql-server/

davrob01
źródło
3

Miałem ten sam problem z SSMS 2016. Użyłem procmon, aby zidentyfikować, że ostatnią rzeczą, którą zrobił przed kilkuminutowym opóźnieniem, było połączenie sieciowe z adresem Microsoft IP. Następnie spróbowałem wyłączyć program Customer Experience Program, ustawiając HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\130wartość klucza rejestru CustomerFeedbackod 1 do 0. Po ponownym uruchomieniu SSMS, znów działa szybko. Prawdopodobnie nie zawsze prowadzi to do spowolnienia nowych okien zapytań, ale dla mnie tak się stało.

Nie wiem, czy tak właśnie było z twoim SSMS 2012, ale być może warto spróbować. Klucz rejestru prawdopodobnie będzie 110zamiast 130.

Rory
źródło
2

Dotyczący SSMS 2016 i zmiany rejestru. Moja ścieżka była

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

Zmieniłem go z 1 na 0 i SSMS znów był szybki.

JohnH
źródło
2

Czasami ten problem można rozwiązać, po prostu zamykając dużą liczbę buforowanych okien zapytań.

Moja instancja SSMS zawierała około 15 zapytań w zapisanej pamięci podręcznej (która otwierała się przy każdym otwarciu SSMS) - zamknąłem wszystkie te okna i ponownie uruchomiłem SSMS, a problem natychmiast zniknął.

Coruscate5
źródło
2

Mam ssms v17.0, miałem również problem z powolnym menu kontekstowym prawym przyciskiem myszy.

Nazwa komputera zawierała myślniki, zmieniając nazwę komputera na coś prostego, naprawiono.

Odinstalowałem ssms, odinstalowałem serwer sql, zmieniłem nazwę komputera na coś prostego jak „MyBox” zamiast „xja-13-asdfa3”. Następnie ponownie zainstalowałem serwer sql, a następnie ssms, a to naprawiło WSZYSTKIE problemy z menu kontekstowym mojego SLOW po kliknięciu tabel prawym przyciskiem myszy. Wyobrażam sobie, że gdzieś występowały problemy z DNS, a oczekiwania były związane z oczekiwaniem na przekroczenie limitu czasu dns.

Miałem laptopa z 16 gigabajtami pamięci RAM, SSD, procesorem 3 GHz bezpośrednio po wyjęciu z pudełka z domyślną losową nazwą komputera.

użytkownik124222
źródło
1

Na moim komputerze działa szybko.

SSMS w SQL Server 2012 korzysta teraz z powłoki Visual Studio 2010, która wymaga więcej zasobów niż powłoka używana przez SSMS w SQL Server 2008. Sugeruję uaktualnienie komputera lub użycie SSMS z SQL Server 2008 R2. Powinieneś być w stanie wykonać większość zadań ze starą wersją.

Możesz także spróbować zainstalować najnowszą aktualizację zbiorczą, ponieważ zaktualizują one również narzędzia klienta. Najnowsza wersja dla SQL Server 2012 to obecnie CU1.

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

Rob Boek
źródło
1

zmiana nazwy komputera, aby nie miała znaku „-”, naprawiła to dla mnie.

John Campbell
źródło
0

Dla mnie to zapora sieciowa BitDefender sprawiła, że ​​mój SSM był bardzo wolny Najwyraźniej jakiś rodzaj zapory blokuje dostęp do listy baz danych

eka808
źródło
-1

Należy sprawdzić status właściwości bazy danych „ Automatycznie zamknij ” w grupie „ Automatycznie ”.

Jeśli jest to prawda, po każdym zapytaniu połączenie zostanie zamknięte i ponownie otwarte przy każdym nowym zapytaniu. To z pewnością spowolni Twoją pracę w SSMS. Wartość domyślna to false.

Loul G.
źródło
-2

Czy to możliwe, że nie masz wystarczającej ilości pamięci RAM na komputerze?

Zalecana pamięć RAM dla SQL 2012 to 4 go. To była 2 wersja SQL 2008. http://msdn.microsoft.com/en-us/library/ms143506.aspx

Ponieważ zaktualizowałeś wersję SQL 2008 do 2012, może potrzebujesz więcej pamięci RAM?

Danielle Paquette-Harvey
źródło
-2

Kiedy uruchamiam SSMS przy użyciu uprawnień administratora (kliknij prawym przyciskiem myszy i uruchom jako administrator), to działa dobrze, w przeciwnym razie nowe okno zapytania trwa dłużej

Waqas Zubairy
źródło
-3

Przyczyną tego jest prawie zawsze brakujący dysk sieciowy - np. Jeśli masz mapowanie dysku do laptopa, ale laptop jest wyłączony.

Rozwiązaniem jest niestety włączenie laptopa (aby dyski ponownie się połączyły) lub odłączenie dysków w Eksploratorze Windows (ale potem trzeba je ponownie podłączyć później).

Zobacz tutaj, aby uzyskać więcej informacji: http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/64c13a84-3e62-4b0c-a1ce-65fcc78d6787

BeachBum
źródło
1
Ten problem dotyczy SSMS 2012 - wątpię, aby wątek msdn z lutego 2010 był odpowiedni.
JNK