-- TABLE_A 테이블 포함된 프로시저

SELECT o.NAME FROM SYSOBJECTS O JOIN SYSCOMMENTS C
ON O.id = C.id
WHERE O.type = 'p' AND C.text LIKE '%TABLE_A%' ORDER BY name





-- JOB_TABLE_A 라는 프로시저가 사용된 회수
SELECT p.name AS 'SP명',
qs.execution_count AS 'SP실행수',
ISNULL(qs.execution_count/DATEDIFF(Second, qs.cached_time, GetDate()), 0) AS '[실행수/초]',
qs.total_worker_time/qs.execution_count AS '[작동시간/실행수]',
qs.total_worker_time AS '총작동시간',
qs.total_elapsed_time,
qs.total_elapsed_time/qs.execution_count AS [avg_elapsed_time],
qs.last_elapsed_time,
qs.cached_time
FROM sys.procedures AS p
INNER JOIN sys.dm_exec_procedure_stats AS qs
ON p.object_id = qs.object_id
WHERE P.name LIKE '%JJOB_TABLE_A %'
ORDER BY qs.execution_count DESC 




-- 테이블이 참조 되는 모든 것 찾기 


Select OBJECT_NAME(sysC.id) As OBjectName,

Max(sysO.xtype + ' - '+

Case sysO.xtype

When 'C' Then 'CHECK 제약 조건'

When 'D' Then '기본값 또는 DEFAULT 제약 조건'

When 'F' Then 'FOREIGN KEY 제약 조건'

When 'L' Then '로그'

When 'FN' Then '스칼라 함수'

When 'IF' Then '인라인 테이블 함수'

When 'P' Then '저장 프로시저'

When 'PK' Then 'PRIMARY KEY 제약 조건(유형은 K)'

When 'RF' Then '복제 필터 저장 프로시저'

When 'S' Then '시스템 테이블'

When 'TF' Then '테이블 함수'

When 'TR' Then '트리거'

When 'U' Then '사용자 테이블'

When 'UQ' Then 'UNIQUE 제약 조건(유형은 K)'

When 'V' Then '뷰'

When 'X' Then '확장 저장 프로시저' End) As type

From

sys.syscomments sysC

Inner Join sys.sysobjects sysO On sysC.id = sysO.id

Where

sysC.text LIke '%table%'

And sysO.xtype = 'P'

Group By sysC.id

Order By OBjectName Asc


출처: http://makeus.tistory.com/119 [makeus]

'DB' 카테고리의 다른 글

[MSSQL] 점유율 높은 쿼리 찾기  (0) 2017.06.15
APPLY (OUTER / CROSS)  (0) 2016.10.19
[MS-SQL] 세로 데이터 가로로 출력- FOR XML  (0) 2016.09.07

+ Recent posts