2010-02-22 9 views
6

on-locali di Microsoft SQL Server, quando ho rilasciare questa query:SQL Azure solo restituzione di una riga in sys.dm_exec_sessions

SELECT * FROM sys.dm_exec_sessions

ricevo un record per la finestra in SQL Server Management Studio. Se apro diverse finestre di query in SSMS, ottengo un record per ognuna di esse, anche se non stanno facendo nulla. In Azure, quando emetto la stessa query, ottengo solo un record. Ecco il kicker: ottengo persino un record solo quando ho più finestre in SSMS che eseguono il lavoro attivo in Azure.

Ecco uno screenshot:

SQL Azure http://s3temp.brentozar.com/azure1.png

In questo screenshot, ho tre schede attivi in ​​SSMS. Due di loro eseguono istruzioni di inserimento giganti che richiedono diversi secondi per l'esecuzione e il terzo sta eseguendo una query su sys.dm_exec_sessions, ma sto recuperando solo un record. Ottengo più record in sys.dm_tran_active_transactions e sys.dm_tran_database_transactions, ma questo cambia il modo in cui faccio rapporto sulle query attive se non riesco a legarlo alle singole sessioni. Questo comportamento previsto o qualcosa che MS sta lavorando per risolvere in Azure vNext?

risposta

7

Dopo l'escalation di questo in Microsoft, hanno concordato che c'è un errore in sys.dm_exec_sessions. È filtrato in modo non corretto, quindi mostra sempre solo la sessione corrente e nessun'altra sessione indipendentemente dalle tue autorizzazioni. Lo aggiorneranno in una versione futura di SQL Azure.

Maggiori informazioni nel thread MSDN, se si ha bisogno di prove:

http://social.msdn.microsoft.com/Forums/en-US/ssdsgetstarted/thread/db88c830-0b0a-4e38-ad93-062d12d55c31

8

Il comportamento del Azure è la stessa di SQL:

Permessi: Richiede VIEW SERVER STATE permesso sul server.

Nota: Se l'utente ha l'autorizzazione VIEW SERVER STATE sul server, l'utente vedrà tutte le sessioni esecuzione nell'istanza di SQL Server; altrimenti, l'utente vedrà solo la sessione corrente .

+0

Purtroppo, c'è un problema qui. È possibile concedere a qualcuno VIEW DATABASE STATE, ma non è possibile concedere loro VIEW SERVER STATE in Azure. VISUALIZZAZIONE STATO DATABASE non mostra nemmeno più connessioni. Dang. –

+0

Non ho un account Azure (o non ricordo?) Ma puoi controllare che sys.dm_exec_sessions abbia la stessa definizione: 'CREATE VIEW sys.dm_exec_sessions AS SELECT * FROM OpenRowset (TABLE SYSSESSIONS)', no DOVE aggiuntivo aggiunto in Azure? –

+0

Il team di Azure ha verificato l'esistenza di un bug in sys.dm_exec_sessions. Mostra solo la sessione corrente. Lo aggiusteranno in un prossimo aggiornamento. –