2012-06-10 17 views
25

Quando faccio clic sul nodo "Database" in "Esplora oggetti", continua a "Caricare gli elementi" fino a quando non si blocca.SQL Server Management Studio 2012 si blocca

Ciò si verifica solo durante la connessione a un server remoto, non quando si accede a un database sul mio PC.

Inoltre, non si verifica con nessun altro nodo.

I ragazzi della società di web hosting non hanno avuto problemi con esso. (Ma sono in esecuzione 2008, e così è il server SQL lì)

Ho reinstallato l'intero server SQL ecc. Ma senza successo.

Quale potrebbe essere il problema?

+0

Non si ha accesso a più di un database, con queste credenziali, presso la società di hosting? (Di solito questo non è il caso.) –

+0

Puoi anche definire "blocco"? Significa che hai appena rinunciato, o in realtà passa alla modalità "Non risponde"? Hai eseguito qualche tipo di profilo di rete per vedere quali dati vengono trasmessi durante questo periodo mentre stai aspettando? Potrebbe essere bloccato dall'altra parte, oppure potrebbe semplicemente trasmettere dati da e per l'ora ... –

risposta

5

Supponendo di avere accesso a un solo database presso la società di hosting (che è quasi sempre il caso, almeno con un determinato nome utente/password), è possibile evitare la necessità di utilizzare il menu a discesa impostando il server registrato di default per il database che si suppone di accesso:.

enter image description here

(può richiedere più tempo qui, anche, ma questa sarà una tantum è inoltre possibile digitare invece di aspettare per la lista di popola.)

In questo modo, anche se il login creato dall'host per te ti indirizza a tempdb o r qualcosa di default, Management Studio ti inserirà ancora nel contesto del tuo database.

Vedo ora che si sta parlando del nodo Esplora oggetti, non del menu a discesa "Usa database" che in qualche modo ho interpretato in modo errato. Un esercizio da provare potrebbe essere quello di evidenziare il nodo dei database (non espanderlo) e fare clic su F7 (Object Explorer Details). Se questo carica per te, può essere un'alternativa per navigare nella gerarchia e, come bonus, puoi mostrare molti attributi di entità qui e anche multi-selezione, due cose su cui non hai alcun controllo in Esplora oggetti.

Se ciò non aiuta, il tuo host dovrebbe aiutarti meglio di quanto sembri. Se SSMS 2012 è supportato, dovrebbero essere in grado di verificarlo in SSMS 2012 e confermare o negare che possono riprodurlo. Se non è supportato, penso che la tua soluzione sia installare anche SSMS 2008 (possono coesistere) e utilizzarlo per gestire questo specifico server.

Ovviamente, tutto ciò che è possibile fare in Object Explorer (e molte cose che non si possono fare), si può fare usando lo catalog views e/o lo DMVs. Quindi, prima di decidere cosa fare, potresti voler rivedere (o condividere con noi) esattamente cosa stai usando Object Explorer per - se c'è un modo per farlo senza Object Explorer, ti potrebbe piacere la soluzione migliore di avere due versioni dello strumento (poiché i miglioramenti nel 2012 SSMS non hanno assolutamente nulla a che fare con Object Explorer).

+0

Grazie per la risposta dettagliata./ Ho provato a inserire il nome del database in "Proprietà connessione": si collega semplicemente al server come prima. / Ho provato "Dettagli Esplora oggetti" - lo stesso problema. / L'host web non supporta 2012. / Attualmente sto scaricando SSMS 2008 ma vorrei evitare questa opzione per paura che possa interferire con il 2012 (è documentato che i 2 possono coesistere?). / Per quanto riguarda la vista del catalogo e DMV - suoni promettenti - cosa sono? / E grazie ancora. – ispiro

+0

Non so se è documentato, ma finché non usi Visual Studio o BIDS ecc., Allora posso darti la mia personale assicurazione che non si romperanno a vicenda (anche se non sono sicuro al 100% chi vincerà nelle preferenze/personalizzazioni della tastiera ecc. se si installa 2008 secondo - l'ho sempre fatto al contrario). Non penso che l'uso della versione 2008 cambierà nulla, ma ti darà almeno un riserbo legittimo che puoi romperlo nella versione che supportano. Dovrebbero essere in grado di provare a riprodurre da * fuori * della loro piccola rete accogliente (dove sono sicuro che funzioni). –

+0

Come per il tuo commento sopra - Dopo molto tempo devo usare "Task Manager" per terminare il processo./Per quanto riguarda "network profiler" - vorrei sapere cosa sia. – ispiro

44

Ho riscontrato lo stesso problema: quando si accede a un server remoto con Object Explorer, SSMS si bloccava indefinitamente. Il registro eventi di sistema di Windows mostrerebbe l'errore DCM 10009 ("DCOM non è stato in grado di comunicare con il computer MACHINE_NAME utilizzando uno dei protocolli configurati.").

La soluzione era cancellare la cronologia MRU e altre impostazioni dal mio profilo. per farlo:

  1. Chiudere tutte le istanze aperte di SSMS 2012
  2. In Explorer, aprire "% appdata% \ Microsoft \ SQL Server Management Studio"
  3. Rinominare la cartella "11,0" a qualcos'altro, come "11.0.old"
  4. aperte SSMS 2012

vedrai che l'elenco MRU è stato cancellato. Dovresti quindi essere in grado di reinserire le tue credenziali e utilizzare SSMS normalmente.

Se tutto funziona, è possibile eliminare la cartella rinominata. Altrimenti, elimina la nuova cartella "11.0" che è stata creata e rinominare quella originale in "11.0".

Non ho idea se sia effettivamente l'elenco MRU a causare questo problema o se si tratta di altri dati profilo.

Siamo stati in grado di scoprire che SSMS sta tentando di stabilire una connessione DCOM sulla porta 135 su SQL Server (forse per SSIS, Debug T-SQL o altro). Il nostro firewall è stato configurato per bloccare la porta 135. Aprendo la porta nel firewall siamo stati in grado di utilizzare SSMS (da qui la ragione per cui ha funzionato rispetto ai database locali ma non a quelli remoti). Sfortunatamente, una porta aperta 135 è un invito per molti attacchi, quindi non è stata una soluzione pratica per noi.

+1

Cancellare 11.La cartella 0 ha funzionato per un paio di giorni, ma una settimana dopo è tornata a come era inizialmente con Object Explorer completamente bloccato quando si cercava di espandere il nodo Database, o anche prima che avessi la possibilità di farlo. Sta accadendo con 2 istanze separate del server SQL che provo a connettermi con gli host web condivisi con molti altri DB su di essi. Le stesse 2 istanze del server SQL a cui sono stato in grado di connettersi senza problemi in SSMS 2008. Probabilmente eliminerò di nuovo la cartella 11.0, ma è un problema da fare perché devo aggiungere nuovamente tutte le mie impostazioni. –

+0

L'unica soluzione permanente sarebbe quello di aprire la porta 135 sul firewall, ma io non lo consiglio. – Jaecen

+0

L'eliminazione della cartella ha funzionato per me. Grazie! – jkruer01

0

Ora ho applicato SQL 2012 Service Pack 1 (tramite Windows Update) e sembra che funzioni bene ora, anche se richiede molto tempo per essere caricato.

2

Nel mio caso l'eliminazione della cartella del profilo ha funzionato esattamente una volta. La prossima volta che ho aperto SSMS 2012 si bloccerebbe di nuovo durante la connessione a un server. SP1 non ha risolto questo problema.

Questo fino a quando ho trovato la seguente soluzione semplice descritta su un ticket by Ben Amada over at connect.microsoft.com: Chiudere sempre la Esplora oggetti Dettagli prima di chiudere SSMS 2012.

Quindi la soluzione completa per me è questo:

  1. Seguire la risposta di Jaecen, ma chiudere nuovamente SSMS 2012 dopo aver creato una cartella profilo pulito
  2. Applicare la raccomandazione di Hoodlum e copiare SqlStudio.bin dalla vecchia cartella del profilo al nuovo (la cartella del profilo può essere cancellato in seguito)
  3. Ogni volta prima di chiudere SSMS 2012 assicura che i particolari Explorer finestra oggetto è chiuso

I primi due i passaggi sono necessari solo una volta o se la finestra Dettagli Esplora oggetti è stata lasciata aperta accidentalmente.

Modifica

Ho appena notato che la chiusura della finestra di Explorer Dettagli oggetto è necessaria anche quando (ri) che collega a un server SQL nella stessa sessione SSMS. Quindi, in pratica, ogni volta che ci si collega a un server è necessario chiudere le finestre Dettagli Esplora oggetti.

1

Ecco cosa ha funzionato per me Aperte SSMS click sul collegamento di opporsi pulsante explorer nelle finestra di dialogo Connetti server di espandere le opzioni >> fare clic su Ripristina tutto Fatto!

3

Ho trascorso più di un mese con Microsoft SQL Support risoluzione dei problemi. È stato presentato come un bug.

Ho installato SQL 2012 SSMS e VS 2012 su Win 7 (64).

L'eliminazione della cartella del profilo non ha mai funzionato per un periodo di tempo ragionevole.

La soluzione che abbiamo trovato è stata quella di garantire che il mio profilo SSMS fosse automaticamente impostato sul database Master durante la connessione. Sembra che abbia qualcosa a che fare con il fatto che mi sto connettendo con l'autenticazione di Windows e appartengo a più di un gruppo AD che hanno le autorizzazioni SQL assegnate E non ho le autorizzazioni specifiche SQL impostate sul mio account AD.

6

Disattiva la chiusura automatica su tutti i database. Ha funzionato come un incantesimo per me! Ogni volta che si espande o aggiorna l'elenco di database, il server deve riattivare i database che causano il blocco.

basta eseguire questo per trovare tutti i database che dispongono di chiusura automatica su

SELECT name, is_auto_close_on 
FROM master.sys.databases AS dtb 
WHERE is_auto_close_on = 1 
ORDER BY name 

Crediti per http://social.msdn.microsoft.com/Forums/sqlserver/en-US/99bbcb47-d4b5-4ec0-9e91-b1a23a655844/ssms-2012-extremely-slow-expanding-databases?forum=sqltools

di spegnere questa impostazione per un database - Fare clic destro su istanza del database in Esplora oggetti -> Fare clic su Proprietà -> Fare clic su "Opzioni" nel riquadro di spostamento a sinistra nella finestra delle proprietà del database -> Modificare il valore della proprietà Auto Chiudi su "False" nel riquadro a destra come mostrato nell'istantanea sottostante:

Auto close option in database properties window in SQL Server 2008 R2

+1

Grazie. Se questo è vero - che un database deve essere risvegliato per apparire nella finestra di Esplora oggetti - mi chiedo _perché è così. Mi piacerebbe vederlo e _ poi scegliere quale database ho bisogno ... – ispiro

+0

Sembra che il SSMS precedente al 2012 non abbia avuto la necessità di farlo. Il 2012 deve fare qualcosa che richiede il caricamento del DB ... –

+0

Inoltre, googling in giro, sembra che avere database su auto-close sia una pessima pratica ... Ho cambiato tutto il mio (avevo 40 database) e l'attesa il tempo passava da 1-2 minuti a 0 secondi :) –

0

"Apri SSMS cliccare su Connetti di opporsi pulsante Explorer nella finestra di dialogo Connetti server di espandere le opzioni >> fare clic su Ripristina tutto" - funziona

2

Sto collegando a diverse rangig server remoto dal 2000 al 2012. SMSS su PC locale è SQL Server 2012, SMSS è 11.0.2100.60

SSMS si blocca più volte al giorno. Quando questo si verifica, si passa tramite RDP al server locale /SMSS/Activity Monitor e si eliminano i processi dal mio PC con Nome database = master, uno alla volta, finché SMSS sul mio PC non si sblocca.

Questo funziona sempre, tuttavia, una cura per la malattia più di quanto i sintomi sarebbero altamente graditi.

2

Avere alcuni SQL Server dal 2000 al 2012, accedere quindi tramite SMSS dal mio desktop. Il problema si verifica con frequenza variabile, assomiglia a questo: quando si comprime un server in Esplora oggetti, SMSS si blocca.

guardando nel monitor attività sul server in questione, trovo un processo in master db con host = il mio desktop eseguendo la seguente interrogazione

SELEZIONA dtb.name AS [Nome] FROM master.dbo.sysdatabases AS dtb ORDINA DA [Nome] ASC SMSS

uccidere il processo libera SMSS.

0

Ho risolto questo problema cambiando il mio database predefinito di nuovo.

+0

Ha funzionato perché qualsiasi default db che avevi impostato aveva Auto-Close? – influent

+0

@influent Dov'è? – Tuan

1

Ho provato circa tutte le risposte di cui sopra ma il mio SSMS si è bloccato nell'espandere l'elenco dei database. Alla fine ho trovato il problema. Il problema era a causa di un database che l'ho ripristinato, ma alla fine è stato ripristinato correttamente. Quindi, quando ho espanso l'elenco dei database che stava attaccando.

Ho eseguito una query

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 

Poi il risultato ha preso troppo a lungo e alla fine scaduta, ma quando a filtrare il database bloccato ho ottenuto risultato.

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 

Alla fine ho deciso di staccare StuckDB per risolvere il mio problema.

0

Passare alle proprietà del database su SSMS e modificare la compatibilità con 2012. Quindi verificare.

enter image description here

Problemi correlati