2013-01-08 2 views
0

여기에서 찾을 수 있습니다 Quick way to find usages of DB Objects in SQL Server 2008? SQL Server 2008 R2 데이터베이스에서 개체의 종속성을 확인할 수있는 몇 가지 방법이 나와 있습니다.SQL Server 2008 R2에서 실제로 사용되는 개체를 확인하는 방법이 있습니까

그러나 개체가 실제로 사용되는지 여부를 확인하는 방법이 있습니까? 즉, 저장 프로 시저가 특정 테이블을 사용하는 것을 볼 수 있지만 저장 프로 시저가 실행되었는지 여부를 어떻게 알 수 있습니까?

내가 저장 프로 시저와 테이블을 묶어 놓은 장소에 왔기 때문에 나는 무엇을 사용하는지 알지 못한다.

+0

좋은 생각입니다. 그러나 저장된 프로 시저와 테이블의 묶음이 있고 어떤 것이 사용되고 있는지 알 수 없기 때문에 묻습니다. – Amarundo

답변

2

테이블의 경우, index statistics을 사용할 수 있습니다 : SQL 서버에도 힙에 대한 색인 통계를 유지하기 때문에이 모든 테이블에 대해 작동

SELECT getdate() AS RunTime 
,  DB_NAME(i.database_id) as DatabaseName 
,  OBJECT_NAME(i.object_id, i.database_id) as ObjectName 
,  * 
FROM sys.dm_db_index_usage_stats AS i 
WHERE object_id > 100 

합니다.

저장 프로 시저가 어렵습니다. 당신은 다음과 같이 그들을 계측 할 수 있습니다 :

create table SPCalls (name sysname); 
go 
alter procedure dbo.YourSP 
as 
insert SPCalls ('YourSP'); 
.... 
+0

실례합니다. SP를 위해 한 부분을 이해하지 못합니다. 로그를 작성해야하는 모든 SP에 코드 행을 추가하는 것을 의미합니까? – Amarundo

+0

예, 정확하게. 약간의 작업이 필요합니다. 데이터베이스를 마우스 오른쪽 단추로 클릭 한 다음 작업, 스크립트 생성을 차례로 클릭하여 모든 저장 프로 시저를 스크립팅하는 데 도움이 될 수 있습니다. – Andomar

+0

그래, 내 대답에 대한 답변. 내가 생각할 수있는 유일한 다른 방법은 프로파일 러를 설정하여 파일에 로그 한 다음 광산으로 채우는 것입니다.하지만 원하는 각 파일에 로그 라인을 추가하는 것보다 오래 걸릴 것으로 생각됩니다. –

관련 문제