2009-12-18 3 views
10

Abbiamo un grande sistema con diverse centinaia di utenti simultanei, quindi sql profiler fornisce un po 'troppe informazioni senza filtri appropriati. Mi piacerebbe vedere quali comandi SQL vengono eseguiti solo sul mio account e sul mio account. Con account intendo lo username che uso per accedere al sistema. Questi nomi utente sono memorizzati in una normale tabella di database e quindi non possono essere inseriti in alcun filtro in sql profiler, immagino? Ma ogni utente che accede potrebbe avere qualche ID univoco in ogni caso, anche se usiamo tutti lo stesso login/utente SQL?SQL Profiler (SQL Server 2000), come filtrare solo le mie attività?

Quindi, la domanda è principalmente come ottenere quel valore univoco e quale filtro utilizzare? O c'è un modo per vedere questo e solo questo in SQL Profiler?

risposta

2

Ogni appilcation, che si collega a SQL Server, ha un ID host univoco (il valore restituito dalla funzione HOST_ID()) e può essere filtrato su di esso. Naturalmente, per prima cosa è necessario connettersi al database dalla propria applicazione, al fine di ottenere il proprio ID host.

L'ID host può anche essere trovato nella colonna hostprocess della tabella di sistema sysprocesses. E in Profiler si chiama ClientProcessId.

18

Si dovrebbe essere in grado di ottenere il nome host della macchina che si connette al server SQL. Nella scheda Proprietà traccia /Evento Sezione, spunta la mostra tutte le colonne opzione poi nel Filtri colonna è possibile specificare HostName.

Se volete sapere il nome host di una macchina che si sta utilizzando quindi al prompt dei comandi tipo hostname

+0

Grazie! Ho provato prima questo e funziona magnificamente. – Micke

+0

Ciao, questo non funziona in SQL Server 2012, hai qualche idea del perché? , ho filtrato solo il mio hostname .. ma sembra che il nome host del server IIS sia chi ha chiamato in SQL Server Profiler. – Japongskie