SQL Server Management Studio apre lentamente nuove finestre


30

Dopo aver aggiornato SQL Server e Management Studio dal 2008 al 2012, Management Studio 2012 è molto lento quando vengono aperte nuove finestre di query e finestre di dialogo.

Anche fare clic destro sulle tabelle è lento. Di solito c'è almeno un ritardo di 5 secondi prima che io possa iniziare a fare qualsiasi cosa all'interno di una finestra. Questo succede ogni volta, anche se apro la stessa finestra due volte di seguito. Perché succede e come posso ripararlo?

Altre applicazioni stabiliscono connessioni al database molto velocemente.

Le cose che ho provato che non hanno aiutato:

  • Un successo su Google in cui avrei bisogno di modificare il mio hostsfile
  • Ripristino di "impostazioni definite dall'utente" di SSMS
  • Aggiornamento dei driver video, disattivazione dell'accelerazione hardware, disabilitazione di DirectX
  • Disabilitazione del servizio di autenticazione biometrica (non l'ho installato).

Il mio computer dovrebbe essere più che abbastanza veloce e ho anche 16 GB di RAM. Il mio hardware non dovrebbe assolutamente essere un problema. Sembra che SSMS stia aspettando qualcosa: posso far funzionare altri programmi senza problemi mentre questo accade.

Non ho l'opportunità di installare l'aggiornamento CU1 di SQL Server 2012 perché sembra che ci sia un certo rischio di errori durante l'installazione degli hotfix e non posso rischiare questo in questo momento.


Non vedo questo comportamento. Se lo facessi per indagare ulteriormente, potrei provare (1) Usare Process Monitor per vedere cosa sta facendo il processo e se questo fornisce qualche indizio. (2) Utilizzo di SQL Server Profiler per verificare se una delle query inviate da SSMS ha una durata elevata (ad es. Blocco) (3) Collegare un debugger al processo SSMS e interromperlo durante gli hang per vedere se i nomi delle funzioni in lo stack di chiamate ha rivelato qualcosa.
Martin Smith,

Risposte:


11

Avvio di SQL Server Management Studio

All'avvio di Microsoft SQL Server Management Studio (SSMS) tenta di connettere l'Elenco di revoche di certificati (CRL) di Microsoft:

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

I componenti .NET sottostanti di SSMS stanno provando a contattare l'elenco di revoche di certificati e SSMS non è in grado di farlo. Questo rallenta la procedura di caricamento generale. (Apparentemente 15 secondi per certificato)

Ok, ecco cosa sta succedendo. SSMS ha un'alta percentuale di codice gestito, tutto questo codice viene firmato al momento della spedizione. All'avvio (se questa impostazione è selezionata) .Net Runtime tenta di contattare crl.microsoft.com per assicurarsi che il certificato sia valido (c'erano alcuni certificati falsi emessi in nome di Microsoft qualche tempo fa, quindi questa è una preoccupazione molto valida) . Se non è presente alcuna connessione a Internet o si verifica un problema nel contattare il server dell'elenco di revoche di certificati, ciò ritarderà l'avvio di SSMS.

Riferimento: FAQ, Perché SSMS impiega 45 secondi per avviarsi? (Blog MSDN)

Un problema che può causare questo problema è che se il server non ha accesso a Internet, il framework .NET non può accedere al sito Web crl.microsoft.com per verificare che le firme digitali utilizzate per firmare i binari per le applicazioni gestite sono validi Ogni controllo del certificato ha un timeout di 15 secondi nell'implementazione di runtime .NET. A seconda delle funzionalità installate, ciò può aggiungere fino a un minuto di tempo di avvio per Management Studio.

Riferimento: ora di avvio di SQL Server Management Studio (blog MSDN)

soluzioni

È possibile aggirare parte del problema, scaricando il certificato inserendo direttamente il collegamento nel browser e quindi importando il certificato nel database dei certificati

  • O -

Puoi riconfigurare il firewall della tua azienda per consentire connessioni al CRL di Microsoft

  • O -

È possibile riconfigurare il proprio antivirus / firewall personale per consentire connessioni a Microsoft CRL

  • O -

Puoi configurare il firewall della tua azienda per inviare più rapidamente un timeout al tuo client per le richieste di accesso al CRL di Microsoft.

  • O -

È possibile configurare IE per non "Controllare la revoca del certificato dell'editore" nelle impostazioni avanzate.

(Vedi i blog 1 e 2 sopra menzionati per i dettagli)


7

Ho la tua stessa esperienza quando mi collego al Nome server "./". Per fortuna ho scoperto che non ho riscontrato problemi di prestazioni quando mi collego al nome server "(locale)". Probabilmente c'è un problema con il modo in cui SSMS 2012 risolve il server tramite "./".

Modifica: non penso che sia correlato a SSMS poiché posso riprodurre la lentezza con ./ in una connessione ADO.NET.


6

È possibile che SSMS abbia importato impostazioni che non possono più essere trattate correttamente (come le connessioni ad alcuni server o forse alcune impostazioni dei componenti aggiuntivi).

Esiste un modo brutale per "ripristinare" le impostazioni definite dall'utente di SSMS.

Chiudi SSMS, vai alla cartella:

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

Troverete la sottocartella "11.0". Rinominalo in "11.0_", così puoi sempre rinominarlo. Ora avvia SSMS: ricrea le impostazioni pulite e forse il tuo problema sarà risolto. In caso contrario, elimina "11.0" appena generato e rinomina "11.0_" in "11.0".

Questo potrebbe anche essere un comportamento di alcuni componenti aggiuntivi, che sono stati danneggiati dopo l'aggiornamento. I componenti aggiuntivi si registrano come gestori di alcuni comandi o eventi e il sistema potrebbe diventare instabile se mancano / generano eccezioni.

In realtà, v2012 utilizza un altro meccanismo per la registrazione dei componenti aggiuntivi, ma alcuni componenti aggiuntivi si installano su tutte le istanze. Per verificare, guarda in questa chiave di registro:

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

Qui troverai l'elenco delle cartelle. Controlla tutte queste cartelle: devono essere vuote (significa che non hai componenti aggiuntivi).


4

Prova a disabilitare l'antivirus e quindi controlla le prestazioni di sql server 2012 management studio.


4
Qual è la logica di questo suggerimento?
Martin Smith,

3

Non ho riscontrato personalmente questo problema, tuttavia c'è un lungo thread ( qui ) in cui molte persone hanno. Il consiglio generale sembra essere quello di lavorare con il tuo driver video per entrambi

  1. Installazione di un driver video aggiornato -OPPURE-
  2. Ridurre o disattivare l'eccellenza dell'hardware -OPPURE-
  3. Disattivazione del supporto DirectX

Dal thread c'era anche questa risposta ... "La procedura di avvio pulito di Windows 7 ha rivelato che il servizio Bienticentication Service (DigitalPersona DPHostw.exe) era il problema. La disabilitazione del servizio ha risolto il problema."

Sarei interessato a sapere se qualcuno di questi approcci funziona anche nel tuo caso, poiché il thread che ho trovato si riferisce a versioni precedenti di SSMS, ovvero 2005, 2008, ecc ...


3

Immagino che il problema sia che l'apertura di una nuova connessione al tuo server richiede 5 secondi. Perché esattamente questo è il caso che non posso dire e richiederebbe una traccia di filo per analizzare e diagnosticare. È necessario verificare quali protocolli sono stati tentati e quale protocollo ha esito positivo. È possibile che il tuo client tenti prima di tutto il nome di pipe (che dipende da SMB) e poi ricade su TCP (anche se il solito ritardo in questo caso è molto più lungo, circa 20-30 secondi).

Ti consiglierei di controllare l'ordine dei protocolli client nella Configurazione della rete client . Controllare il protocollo utilizzato dal client trovando la propria voce sys.dm_exec_connections.


3

Ho lo stesso problema e risulta che la scansione di Trend Micro Office sta causando il problema.

Ho provato tutto ciò che è stato descritto in molti altri thread simili su questo problema senza alcun risultato. Ho pensato che proverò a disabilitare il software AV .. Una volta che la scansione di Trend Micro Office è disattivata, SSMS è velocissimo.

Questo non è accaduto su Windows 7.


3

Anch'io stavo vivendo un ritardo di 5-10 secondi quando si fa clic con il tasto destro su una tabella per visualizzare il menu di scelta rapida. La mia situazione potrebbe essere leggermente diversa rispetto ad alcune, tuttavia, poiché utilizzo solo database locali. La mia soluzione:

Dopo aver letto la risposta di imran sulla disabilitazione dell'antivirus, ho preso questo concetto un ulteriore passo avanti poiché non voglio disabilitare completamente il mio antivirus SOLO per superare questo problema.

Ho ridotto significativamente il ritardo (ora è massimo di 1 secondo) modificando le posizioni predefinite del database e quindi escludendo quella directory dall'antivirus (nel mio caso sto utilizzando Microsoft System Center Endpoint Protection 2015).

Per modificare le posizioni predefinite del database, consultare l'articolo seguente per informazioni dettagliate. http://thomaslarock.com/2015/02/changing-default-database-file-locations-in-sql-server/


3

Ho avuto lo stesso problema con SSMS 2016. Ho usato procmon per identificare che l'ultima cosa che ha fatto prima di un ritardo di alcuni secondi è stata quella di stabilire una connessione di rete a un indirizzo IP di Microsoft. Ho quindi provato a disattivare il Programma esperienza cliente impostando il HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\130valore della chiave di registro CustomerFeedbackda 1 a 0. Dopo aver riavviato SSMS, funziona di nuovo velocemente. Presumibilmente ciò non porta sempre a rallentare nuove finestre di query, ma per me lo ha fatto.

Non so se è quello che stava succedendo con il tuo SSMS 2012, ma forse vale la pena provare. La chiave di registro sarà probabilmente 110invece di 130.


2

Per quanto riguarda SSMS 2016 e la modifica del registro. Il mio percorso era

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

L'ho cambiato da 1 a 0 e SSMS era di nuovo veloce.


2

A volte questo problema può essere risolto semplicemente chiudendo un gran numero di finestre di query memorizzate nella cache.

La mia istanza di SSMS aveva circa 15 query nella cache salvata (che si apriva ogni volta che ho aperto SSMS) - Ho chiuso tutte queste finestre e riavviato SSMS e il problema è immediatamente scomparso.


2

Ho sms v17.0, ho anche avuto il problema con i menu contestuali del tasto destro del mouse.

Il nome del computer conteneva trattini, rinominando il computer in modo semplice, risolto.

Ho disinstallato ssms, disinstallato sql server, ribattezzato il computer con qualcosa di semplice come "MyBox" invece di "xja-13-asdfa3". Quindi ho reinstallato sql server, quindi ssms, e questo ha risolto TUTTI i miei problemi del menu contestuale SLOW facendo clic con il tasto destro del mouse sulle tabelle. Immagino che da qualche parte si stessero verificando problemi DNS e che le attese fossero legate all'attesa dei timeout DNS.

Avevo un laptop con 16 gig di ram, unità ssd, una CPU da 3ghz pronta all'uso dalla fabbrica con il nome predefinito per PC casuale.


1

È veloce sul mio computer.

SSMS in SQL Server 2012 ora utilizza la shell di Visual Studio 2010, che richiede più risorse della shell utilizzata da SSMS in SQL Server 2008. Suggerisco di aggiornare il computer o utilizzare SSMS da SQL Server 2008 R2. Dovresti essere in grado di eseguire la maggior parte delle attività con la versione precedente.

Puoi anche provare a installare l'ultimo aggiornamento cumulativo in quanto aggiorneranno anche gli strumenti client. L'ultima versione di SQL Server 2012 è attualmente CU1.

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


1

cambiare il nome del computer per non avere '-' è ciò che l'ha risolto per me.


1

È importante non utilizzare il nome breve NetBIOS!

In tal caso, lo studio di gestione utilizza una sorta di connessione legacy. Tutto sarà fastidiosamente lento. Basta usare l'IP o il nome completo della macchina su cui è in esecuzione il server sql.

Se vuoi scoprire qual è il nome NetBIOS della tua macchina, esegui una query:

select @@Servername

Questo restituisce il corto, credo che il nome legacy della macchina sia lungo 15 caratteri. Non usare quello.


0

Per me è stato il firewall BitDefender a rendere il mio SSM ultra lento Apparentemente, una sorta di blocco del firewall per ottenere l'accesso all'elenco dei database


-1

Si dovrebbe controllare lo stato della proprietà del database " Chiudi automaticamente " nel gruppo " Automaticamente ".

Se vero, dopo ogni query, la connessione verrà chiusa e riaperta ad ogni nuova query. Questo sicuramente rallenterà il tuo lavoro negli sms. L'impostazione predefinita è falsa.



-2

Quando avvio SSMS usando i privilegi di amministratore (clic destro ed eseguo come amministratore), allora funziona benissimo, altrimenti la nuova finestra di query impiega più tempo


-3

La causa di ciò è quasi sempre un'unità di rete mancante, ad esempio se si dispone di una mappatura dell'unità sul laptop, ma il laptop è spento.

La risoluzione sfortunatamente è accendere il laptop (quindi le unità si riconnettono) o disconnettere le unità in Esplora risorse (ma è necessario ricollegarle in seguito).

Vedi qui per maggiori informazioni: http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/64c13a84-3e62-4b0c-a1ce-65fcc78d6787


1
Questo problema è specifico di SSMS 2012 - dubito che un thread msdn di febbraio 2010 sarà pertinente.
JNK,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.