2011-01-10 2 views
8

새 SQL Server에 나타나는 문제를 해결하기 위해 노력하고 있습니다. 실행중인 프로세스 (sp_who2)를 보는 동안 proc이 시작된 매개 변수를 알 수 없습니다. DBCC INPUTBUFFER (spid)SQL Server 2008에서 현재 실행중인 procs의 매개 변수를 확인하는 방법

내가도 몇 가지 추가 정보를 찾을 수 있습니다,하지만 난 매개 변수를 표시하는 방법을 볼 수 없습니다 :

내가 사용 시저의 이름을 찾을 수 있습니다.

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

은 내가 추적을 할 경우 내가 매개 변수를 볼 수 있습니다 알고 있지만,이 경우 도움이되지 않습니다.

+0

"sp_who2"및 "dbcc"는 수행 할 수 있지만 추적은 수행하지 않는 권한이 있습니까? –

답변

6

Adam Machanic의 SP_WhoisActive를 사용하면 필요한 모든 정보를 얻을 수 있으며 xml의 전체 쿼리를 제공하므로 클릭하여 실행중인 것을 볼 수 있습니다.
http://sqlblog.com/files/folders/release/entry29675.aspx

+0

방금'proc create #foo @a int waitfor delay '01 : 00''과'exeC#foo 1'을 만들었습니다. 나는 어디에서나 매개 변수의 값을 볼 수 없습니다. –

+4

이것은 훌륭한 도구이지만 proc 호출에 사용 된 매개 변수는 여전히 표시되지 않습니다. 나는 이것을 'exec sp_WhoIsActive @get_outer_command = 1'라고 부른다. sql_text와 sql_command라는 두 개의 컬럼을 제공한다. sql_command는 "MyDB.dbo.MyProc; 1"과 같은 것을 제공합니다. 여기서 1은 전송 된 매개 변수가 아닌 proc의 버전 번호입니다. sql_text는 실행중인 proc의 명령문을 제공합니다. 이 호출에는 많은 옵션이 있습니다. 매개 변수를 표시하는 매개 변수가 누락 되었습니까? – Pez

0

편집 :이 재미있는 코드는 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입니다. 그것을 시도하십시오. 당신이 흔적도없이 그것을 할 수처럼

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

는 것 같습니다. 유사한 질문이있는 게시물이 몇 개 더 있습니다. Can parameterized queries be fully captured using DBCC INPUTBUFFER?

sp를 SSMS에서 시작한 경우에만 DBCC INPUTBUFFER (spid)를 사용할 수 있습니다.

이 부분을보세요. http://sqlblog.com/tags/Who+is+Active/default.aspx. 이 SP를 상자에 추가 할 수없는 경우 유용한 코드가 있습니다.

편집 :이 명령은 매개 변수가 아니라 실행중인 sp의 문을 보여줍니다.

+0

가장 최근의 편집은 여전히 ​​전달 된 매개 변수가 아닌'create proc' 정의 만 보여줍니다. –

0

저장 프로 시저를 변경하여 매개 변수를 기록 할 수 있습니까? 아마도 테이블에 진단을위한 매개 변수를 삽입 할 것입니까?

관련 문제