2011-11-03 11 views
7

Ho un database SQL Server 2008 R2 Enterprise con una vista denominata vw_Users.L'istruzione SQL Drop View richiede sempre il completamento

-Running (selezionare * da vw_users) richiede meno di un secondo per il completamento.

-L'esecuzione del codice SQL all'interno della vista richiede meno di un secondo.

-La riproduzione (rilascio di visualizzazione vw_Users) si blocca e non viene mai completata. L'ho lasciato girare per circa 10 minuti prima di cancellarlo.

Ho riavviato SQL Server Agent, quindi ho provato di nuovo, ma è ancora in corso.

Questo è un problema nuovo di zecca, questo server e questo database hanno funzionato bene per oltre un anno.

Non ci sono indici nella vista. Non sono sicuro di quale sia il problema, ma qualsiasi aiuto sarebbe molto apprezzato.

Grazie

risposta

14

qualcuno o qualcosa ha un collegamento aperto l'accesso a quella vista e vi sono stati bloccati.

È possibile controllare questo avviando il DROP, poi in un'altra finestra in SSMS esecuzione:

sp_who2 active

si dovrebbe vedere una fila con il vostro SPID, e il campo di blocked_by avrà un altro numero SPID in esso. Trova quello spid per vedere cosa ti sta bloccando.

Se può essere risolto in modo sicuro, chiudere il processo manualmente o dall'interno SSMS eseguire:

kill x

... dove x è lo spid del processo di blocco.

+0

Per chiunque altro stia facendo questo; Ho seguito questo e ho trovato il numero SPID che mi stava bloccando ma non sono riuscito a trovarlo sul tavolo. L'inserimento di 'sp_who2' fornisce una lista più lunga che aveva lo SPID di blocco per me –

+0

Eccellente. Stavo tentando di evitare di realizzare un breakpoint in una app C# correlata, il colpevole che ha bloccato l'operazione ALTER VIEW. La colonna _ProgramName_ ha dato l'indizio dato il valore _.Net SqlClient Data Provider._ – bvj

Problemi correlati