2011-01-10 9 views
8

Próbuję rozwiązać problem, który pojawia się na naszym nowym serwerze SQL. Podczas przeglądania uruchomionych procesów (sp_who2) nie mogę stwierdzić, z jakimi parametrami uruchomiono proces.Jak wyświetlić parametry aktualnie uruchomionych procesów w SQL Server 2008

mogę znaleźć nazwę proc używając: DBCC INPUTBUFFER (spid)

mogę nawet znaleźć jakieś dodatkowe informacje, ale nie widzę sposobu, aby pokazać parametry.

(http://sqlserverpedia.com/blog/sql-server-bloggers/sql-server-%E2%80%93-get-last-running-query-based-on-spid/)

wiem, że mogę zobaczyć parametry jeśli zrobię sobie ślad, ale to nie pomoże w tej sprawie.

+0

Masz uprawnienia do zrobienia "sp_who2" i "dbcc", ale nie możesz uruchomić śledzenia? –

Odpowiedz

6

Musisz sprawdzić SP_WhoisActive Adama Machanica, który zawiera wszystkie potrzebne informacje, i daje ci całą kwerendę w xml, dzięki czemu możesz po prostu kliknąć na nią i zobaczyć, co działa.
http://sqlblog.com/files/folders/release/entry29675.aspx

+0

Właśnie próbowałem 'create proC#foo @a int jako waitfor delay '01: 00'' następnie' exeC#foo 1' Nie widzę wartości parametrów w dowolnym miejscu na wyjściu. –

+4

To jest świetne narzędzie, jednak nadal nie widzę parametrów używanych do wywołania proc. Wzywam tak: 'exec sp_WhoIsActive @get_outer_command = 1'. Daje mi dwie kolumny - sql_text i sql_command. sql_command daje mi coś w stylu "MyDB.dbo.MyProc; 1", gdzie 1 to numer wersji procesu, a nie parametry wysłane. sql_text daje mi instrukcję w procedurze, która jest wykonywana. Jest wiele opcji tego połączenia, czy brakuje mi takiego, który pokazywałby parametry? – Pez

0

Edytuj: Znalazłem ten interesujący kod: select dest.* from sys.dm_exec_requests as der cross apply sys.dm_exec_sql_text (der.sql_handle) as dest where session_id = @spid. Proszę, spróbuj tego.

http://msdn.microsoft.com/en-us/library/ms181929%28v=SQL.100%29.aspx

Wygląda na to, że nie może tego zrobić bez śladu. There few more posts with similar question: Can parameterized queries be fully captured using DBCC INPUTBUFFER?

Możesz użyć DBCC INPUTBUFFER (spid), ale tylko wtedy, gdy sp jest uruchamiany z SSMS.

Spójrz na to http://sqlblog.com/tags/Who+is+Active/default.aspx. Jeśli nie możesz dodać tego sp do swojego pola, pojawi się kod, który może być pomocny.

Edytuj: Pokazuje tylko, jakie stwierdzenie twojego sp jest uruchomione, a nie parametry.

+0

Twoja najnowsza edycja wciąż pokazuje tylko definicję "create proc", a nie parametry przekazane. –

0

Czy można zmienić zapisany proces, aby zarejestrować parametry? Być może wstawić do tabeli parametry do diagnostyki?

Powiązane problemy