2011-10-14 2 views
0

SQL Server Express에 몇 가지 스칼라 함수를 작성했습니다. 그들은 엑셀 플러그인에 의해 사용/호출됩니다.작성 또는 지난 주 이후로 UDF/SP가 호출 된 빈도를 알아내는 방법

어떻게하면 함수가 호출 된 빈도 카운터를 얻을 수 있습니까? 어떤 기능이 인기 있고 어떤 기능이 아닌지 찾아내는 데 그 목적이 있습니다. 카운터의 시간 범위를 설정하여 다음과 같은 질문에 대답 할 수 있다면 더 좋을 것입니다. 지난 주에 함수 xy가 얼마나 자주 사용 되었습니까?

답변

1

당신은 빠른 테스트의 경우 비록이 끝에서

SELECT usecounts 
FROM sys.dm_exec_cached_plans 
CROSS APPLY sys.dm_exec_sql_text(plan_handle) 
WHERE sys.dm_exec_sql_text.objectid=object_id('YourFunction') 

을 실행하여 막연한 아이디어를 얻을 수있을 것 (쓰기, 즉) 기능이 RBAR 방식

SELECT dbo.YourFunction(X) 
FROM T 

usecounts에 호출은 함수 호출 당 쿼리 당 한 번 한 번이 증가합니다. 그리고 시간이 지남에 따라 사용법에 대한 어떤 징후도 얻을 수 없습니다. usecounts은 계획이 캐시 된 이후에 사용됩니다.

+0

감사 마틴, 첫 번째 제안이 트릭을 할 것입니다! – Lumpi

0

한 가지 옵션은 프로파일 러를 필터링 된 활동을 트랩하는 기간 동안 실행하는 것입니다.

다른보기는 Database-Level Audit Actions이지만, 방법 너무 많은 정보를 기록 할 수 있습니다. 필터링 할 수 있는지 확실하지 않음 (아직이 기능을 사용하지 않은 경우)

저장 프로 시저의 경우 원하는 경우 기본 로깅을 추가 할 수 있습니다. 당신은 DB 상태를 변경할 수없는 UDF의에서이 작업을 수행 할 수

+0

"저장 프로 시저의 경우 기본 로깅을 추가 할 수 있습니다"라는 메시지가 필요한데,이 옵션을 설정할 위치를 알고 있습니까? – Lumpi

+0

테이블 및 일부 코드를 추가하십시오 ...--) – gbn

관련 문제