Dlaczego połączenie SQL Management Studio trwa tak długo?

18

Biorąc pod uwagę, że Microsoft SQL Server, technicznie rzecz biorąc, nie jest powolnym systemem zarządzania bazami danych, wciąż zastanawiam się, dlaczego często / zwykle tak długo trwa połączenie z SQL Management Studio.

Dzieje się tak nawet wtedy, gdy nikt inny nie ma dostępu do serwera bazy danych i gdy Management Studio działa na tym samym komputerze co SQL Server.

Dodatkowo SQL Management Studio często zajmuje bardzo dużo czasu, nawet samo wyświetlenie uprawnień logowania może potrwać kilka minut na serwerach baz danych, które w przeciwnym razie byłyby nieużywane.

Czy jest jakieś oczywiste wytłumaczenie?

Andrew J. Brehm
źródło
1
Jak długo trwa „tak długo”? 2 sekundy, 20 sekund lub 200 sekund?
Bevan
Czy masz jakieś dziwne wtyczki? Każdy serwer, z którym próbuję się połączyć, zajmuje mniej niż 2 sekundy w mojej sieci służbowej.
Bob King
@Bevan dla mnie, minuty na połączenie localhost... to naprawdę frustrujące. (YMMV) I zaczęło się w pewnym momencie, nigdy wcześniej tak nie było.
ANeves
@Bevan, dla mnie uruchomienie zajmuje 50 sekund. Kiedy klikam ikonę, aż coś się pojawi, to 50 sekund, co moim zdaniem to zdecydowanie za dużo czasu.
FabianVal

Odpowiedzi:

14

Brzmi to głupio, ale miałem problem z bardzo wolnym programem SQL Server Management Studio i ta sztuczka go rozwiązała:

  • Otwórz Internet Explorera
  • Przejdź do Narzędzia -> Opcja internetowa
  • Otwórz zakładkę „Zaawansowane”
  • Odznacz „Sprawdź unieważnienie certyfikatu serwera (wymaga ponownego uruchomienia)”

Ta sztuczka jest skuteczna tylko wtedy, gdy komputer, na którym jest zainstalowane SQL Server Management Studio, NIE jest podłączony do Internetu. Tylko zrobienie tego rozwiązało mój problem. Może to rozwiąże twoje.

Julien N.
źródło
Co dziwne, wydaje się to nieco poprawiać. Ale wspomniany poniżej problem 32/64-bitowy również może być odpowiedni. Przyjmuję tę odpowiedź i głosuję za drugą.
Andrew J. Brehm,
4
Nie jestem ekspertem od bezpieczeństwa, ale ta strona virtualobjectives.com.au/sqlserver/ssms_slow.htm (która jest reprezentowana w innej odpowiedzi tutaj i działała dla mnie dobrze) zauważa, że ​​wyłączanie sprawdzania certyfikatów bezpieczeństwa nie jest zalecane. Myślę, że takie podejście otwiera cię na całkiem duże ryzyko bezpieczeństwa: O
jinglesthula
W moim przypadku serwer nie był podłączony do Internetu, więc nie mógł przeprowadzić żadnej kontroli bezpieczeństwa, więc niewiele się zmienił, poza tym nie musiałem czekać na limit czasu :). Ale zgadzam się, że nie jest to dobry pomysł na serwerze, który może wykonać tę kontrolę.
Julien N
16

To działało dla mnie: Microsoft SQL Server Management Studio jest zbyt wolny

W środowisku korporacyjnym często zdarza się, że uruchomienie programu Microsoft SQL Server Management Studio (SSMS) dla programu SQL Server 2005 trwa dłużej niż 45 sekund, a także opóźnień i opóźnień podczas otwierania różnych okien i okien dialogowych z poziomu aplikacji. Jeśli napotykasz ten problem, szybką poprawką jest dodanie wpisu do HOSTÓW. plik wskazujący crl.microsoft.com na 127.0.0.1

  • Wyjdź z SSMS
  • Naciśnij klawisze [Win] + [R]
  • Wpisz następujące ...

    notepad %systemroot%\system32\drivers\etc\hosts.
    
  • Dołącz następujące ...

    127.0.0.1    crl.microsoft.com
    
  • Zapisz plik.

  • Uruchom SSMS (ah! O wiele lepiej)
peco
źródło
Mój Boże, to bizzare ...
Alex Zhukovskiy
1
Ponieważ crloznacza „listę odwołań certyfikatów”, nie jest to również idealne z punktu widzenia bezpieczeństwa (patrz komentarze do zaakceptowanej odpowiedzi).
Heinzi
Wydaje mi się, że opóźnienie to zmniejszyło się z 30 ++ sekund do <5 sekund, ale nadal jest wolne.
tbone
3

domyślnie używanym protokołem sieciowym podczas łączenia się z serwerem lokalnym jest pamięć współdzielona. Czasami może to być dość powolne.

Wystąpił ten sam problem z prędkością podczas łączenia się z podobnym urządzeniem lokalnie, ale nie zdalnie.

Czy otrzymujesz to samo spowolnienie, jeśli podczas łączenia określisz protokół sieciowy TCP / IP?

EDYCJA Również według Microsoft może to być problem spowodowany 32-bitowym programem Management Studio i systemem 64-bitowym. Zobacz tutaj: http://support.microsoft.com/kb/906892

Sk93
źródło
1
Dlatego Microsoft zaleca uruchamianie go w 32-bitowym systemie operacyjnym. Niezupełnie praktyczna sugestia. przewracając oczami
mhenry1384
3

Możliwe zepsute wdrożenie IPv6? Czy korzystasz z podwójnego stosu? Jesteśmy i mieliśmy ten problem wcześniej. Najpierw wypróbowywana jest IPv6, a jeśli wystąpią jakiekolwiek błędy konfiguracji, ostatecznie nie powiedzie się IPv4.

Brian Knoblauch
źródło
3

SSMS próbuje sprawdzić z Microsoftem domyślny certyfikat główny, nawet jeśli go nie nam. Jeśli korzystasz z serwera proxy, użyj parametru proxyycfg lub netsh, aby ustawić systemowe ustawienia proxy. Zamknij, a następnie otwórz SSMS, a czas ładowania zostanie znacznie skrócony.

Vern Wold
źródło
2

Dodając do powyższej odpowiedzi Julien N, naprawiłem problem (10-sekundowe opóźnienie przy pierwszym uruchomieniu zapytania) poprzez odznaczenie:

„Sprawdź, czy certyfikat wydawcy został unieważniony”

w zaawansowanych opcjach Internet Explorera. Ponowne uruchomienie nie jest wymagane.

Neil Miller
źródło
1

Mój kolega ma dokładnie takie samo zachowanie jak Ty na swoim komputerze. Korzystał z SQL Server Management Studio 2005. Rozwiązał instalację nowej wersji, która jest dostarczana z SQL Server 2008.

Jeśli zauważysz, że ten problem występuje tylko na komputerze, sugeruję, aby spróbować odinstalować i ponownie zainstalować cały pakiet Microsoft SQL Server.

Kaczor
źródło
1
Zdarza mi się to zarówno z SQL Server 2005, jak i 2008.
Andrew J. Brehm
... aż do SSMS 2017.
rory.ap
1

Czy może to być problem z rozpoznawaniem nazw? Jeśli silnik SQL Server znajduje się na tym samym komputerze, spróbuj użyć (lokalnego) jako nazwy lub nawet 127.0.0.1 (lub adresu IP komputera). Netbios przez TCP / IP i / lub wadliwy WINS / DNS może prowadzić do wydłużenia czasu połączenia.

Upewnij się także, że serwer ma wystarczającą ilość pamięci do działania. SQL Server może działać dobrze poniżej 512 MB pamięci RAM, ale jego wydajność bardzo szybko spada.

Podczas łączenia z serwerem nie powinno być opóźnienia dłuższego niż 5 sekund. (Mniej, jeśli lokalnie).

Martin Marconcini
źródło
Nie. Łączy się z „.”. Wspomniane serwery są 64-bitowe i mają 8 GB i więcej.
Andrew J. Brehm
1

Dodałem sqlservr.exe do listy wyjątków zapory systemu Windows na serwerze SQL 2005. Wynik: bardzo szybka reakcja!


źródło
1

W moim przypadku nie zawsze tak było, ale kiedy tak się stało, odzyskanie nawet mojej skrzynki przyłączeniowej zajęłoby 10 minut. Spojrzałem na Menedżera konfiguracji i wyłączyłem pamięć współdzieloną. Działa jak urok za każdym razem !!

użytkownik61982
źródło
1
Przydałoby się trochę więcej szczegółów, takich jak wersja, nawigacja z aplikacji do tego ustawienia itp.
Pimp Juice IT
To zadziałało dla mnie. Aby to zrobić, uruchom Menedżera konfiguracji programu SQL Server i wyłącz opcję „Pamięć współdzielona” w obszarze Konfiguracja sieci / Protokoły
Mike Jerred
1

Rozwiązaniem było dla mnie wyłączenie karty sieciowej Hyper-V:

wprowadź opis zdjęcia tutaj

Po prostu kliknij prawym przyciskiem myszy, a następnie kliknij disable

RobIII
źródło
To był dokładnie mój problem.
Dominique Alexandre
0

Miałem taki sam problem, gdy powiększanie folderu Widoki zajmowało dużo czasu. Inne foldery, w tym bazy danych lub tabele, były w porządku. Wszystkie powyższe zalecenia nie działały w moim przypadku. To, co zadziałało dla mnie, to to, że użytkownik miał rolę sysdamin, usunąłem rolę sysadmin i oddaję ją, a wszystko zaczyna działać dobrze dla mnie.

Bader Cheema
źródło
-2

Jeśli używasz SQL Express, sprawdź, czy całkowity rozmiar baz danych nie przekracza 10 GB (ograniczenie dla SQL Express 2012).

R Barbosa
źródło
2
Jeśli rozmiar przekracza ograniczenie, czy wynikiem tego byłaby tylko niska wydajność?
fixer1234,