블로그 이미지
010-9967-0955 보미아빠

카테고리

보미아빠, 석이 (500)
밥벌이 (16)
싸이클 (1)
일상 (1)
Total
Today
Yesterday

달력

« » 2014.10
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

'2014/10/24'에 해당되는 글 1건

  1. 2014.10.24 sqlserver 2012 extended events callstack 확인을 위한 pdb download
http://www.sqlskills.com/blogs/paul/how-to-download-a-sqlservr-pdb-symbol-file/

를 읽어보고 wdk 를 설치한다.

모르면 모든 dll 과 exe 파일의 symbol 을 다운로드 하는게 정신건강에 좋단다.

 

1. c:\symbols 폴더를 만든다.

 

2. 폴더에 들어간다

cd "C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\Binn"

 

3. 다음 명령어를 이용해 필요한 파일을 다운로드 한다.

"C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" sqlservr.exe /s SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
"C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" sqldk.dll /s SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
"C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" sqllang.dll /s SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
"C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" sqlmin.dll /s SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
"C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" sqlboot.dll /s SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

 

4. 실행 경로에 pdb 파일만 복사해 넣는다. (일일이 폴더 들어가서 파일을 골라서 옮긴다)

C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\Binn

 

5. 출력해본다.

DBCC TRACEON (3656, -1)


SELECT n.query('.') AS callstack
FROM
(
    SELECT CAST(target_data as xml)
    FROM sys.dm_xe_sessions AS s
    INNER JOIN sys.dm_xe_session_targets AS t
        ON s.address = t.event_session_address
    WHERE s.name = 'system_health'
      AND t.target_name = 'ring_buffer'
) AS src (target_data)
CROSS APPLY target_data.nodes('RingBufferTarget/event/action[@name="callstack"]') as q(n)

 

6. 결과

<action name="callstack" package="package0">
  <type name="callstack" package="package0" />
  <value>XeSosPkg::wait_info::Publish+138 [ @ 0+0x0
SOS_Scheduler::UpdateWaitTimeStats+30c [ @ 0+0x0
SOS_Task::PostWait+90 [ @ 0+0x0
EventInternal&lt;SuspendQueueSLock&gt;::Wait+1f9 [ @ 0+0x0
LockOwner::Sleep+495 [ @ 0+0x0
lck_lockInternal+ebd [ @ 0+0x0
MDL::LockObjectLocal+443 [ @ 0+0x0
SMD::LockObjectAndCheckVersion+86 [ @ 0+0x0
CRangeObject::XretSchemaChanged+430 [ @ 0+0x0
CRangeTable::XretSchemaChanged+1f [ @ 0+0x0
CEnvCollection::XretSchemaChanged+e1 [ @ 0+0x0
CXStmtQuery::XretSchemaChanged+11c [ @ 0+0x0
CXStmtSelect::XretExecute+1be [ @ 0+0x0
CMsqlExecContext::ExecuteStmts&lt;1,1&gt;+400 [ @ 0+0x0
CMsqlExecContext::FExecute+a33 [ @ 0+0x0
CSQLSource::Execute+866 [ @ 0+0x0
process_request+73c [ @ 0+0x0
process_commands+51c [ @ 0+0x0
SOS_Task::Param::Execute+21e [ @ 0+0x0
SOS_Scheduler::RunTask+a8 [ @ 0+0x0
SOS_Scheduler::ProcessTasks+29a [ @ 0+0x0
SchedulerManager::WorkerEntryPoint+261 [ @ 0+0x0
SystemThread::RunWorker+8f [ @ 0+0x0
SystemThreadDispatcher::ProcessWorker+372 [ @ 0+0x0</value>
</action>

 

7. 이제 원하는 콜스택정보를 확인할 수 있다.

Posted by 보미아빠
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함