Active 세션 조회
SELECT er.session_id AS [세션ID], er.status AS [상태],
er.wait_type AS [대기유형],blocking_session_id,wait_resource ,
CONVERT(float, er.total_elapsed_time / 1000.0) AS [경과시간(s)], -- 쿼리 경과 시
CONVERT(float, er.wait_time / 1000) AS [대기시간(s)], -- 대기 시간
DB_NAME(er.database_id) AS [데이터베이스],es.host_name as [요청서버],login_name,
CONVERT(float, er.logical_reads * 8 / 1024.0) AS [읽기(MB)], -- 논리적 읽기
CONVERT(float, er.granted_query_memory * 8 / 1024.0) AS [쿼리메모리(MB)], -- 쿼리 메모리
CONVERT(float, er.cpu_time / 1000.0) AS [CPU시간(s)], -- CPU 시간
er.command AS [명령],
CASE WHEN st.objectid IS NULL THEN 'Ad-hoc'
ELSE QUOTENAME(DB_NAME(st.dbid))
+ '.' + QUOTENAME(OBJECT_SCHEMA_NAME(st.objectid, st.dbid))
+ '.' + QUOTENAME(OBJECT_NAME(st.objectid, st.dbid)) END AS [프로시저이름],
left(st.text,3000) AS [쿼리문],
-- transaction_isolation_level as [격리수준],
qp.query_plan AS [실행계획],*
FROM sys.dm_exec_requests AS er
JOIN sys.dm_exec_sessions AS es ON er.session_id = es.session_id
INNER JOIN sys.sysprocesses AS sp ON er.session_id = sp.spid
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS st
CROSS APPLY sys.dm_exec_query_plan(er.plan_handle) AS qp
WHERE 1=1
--and er.session_id > 50
--AND ( er.total_elapsed_time > @total_elapsed_time
-- OR er.logical_reads > @logical_reads
-- )
order by er.total_elapsed_time desc
/*
SELECT
A.SESSION_ID, A.CONNECT_TIME,client_net_address,client_tcp_port, B.TEXT
FROM SYS.DM_EXEC_CONNECTIONS AS A
CROSS APPLY SYS.DM_EXEC_SQL_TEXT (A.MOST_RECENT_SQL_HANDLE) AS B
WHERE A.MOST_RECENT_SESSION_ID = 77
*/
에러로그 조회
DECLARE @datePre NVARCHAR(16)
DECLARE @datePost NVARCHAR(16)
set @datePre = left(convert(nvarchar(40),dateadd(hour,-4,getdate()),120) ,16)
set @datePost = left(convert(nvarchar(40),dateadd(hour,0,getdate()),120) ,16)
if OBJECT_ID('tempdb..#ErrorLogHistory') is not null
drop table #ErrorLogHistory
CREATE TABLE #ErrorLogHistory(
[OccuredDate] datetime,
[procInfo] [varchar](100) NULL,
[txt] [nvarchar](max) NULL )
insert into #ErrorLogHistory
exec [master].sys.xp_readerrorlog 0,1,null,null,@datePre,@datePost;
select [occureddate],procInfo,txt
from #ErrorLogHistory
order by OccuredDate desc
미러링 상태 체크
SELECT
DB_NAME(database_id) AS 'DatabaseName', mirroring_role_desc
, mirroring_safety_level_desc , mirroring_state_desc
, mirroring_safety_sequence, mirroring_role_sequence
, mirroring_partner_instance , mirroring_witness_name
, mirroring_witness_state_desc , mirroring_failover_lsn
FROM sys.database_mirroring
WHERE mirroring_guid IS NOT NULL;
배치 실패 체크
DECLARE @Query NVARCHAR(max)
DECLARE @Param_date1 varchar(16), @Param_date2 varchar(16) --, @DBMSName varchar(30)
DECLARE @paramDefinit NVARCHAR(100)
set @paramDefinit = N'@Date1 varchar(8),@date2 varchar(8)'
set @Param_date1 = convert(varchar(8),dateadd(d,-1,getdate()),112)
set @Param_date2 = convert(varchar(8),getdate(),112)
SELECT JobL.name as [배치명], JobH.step_name as [스탭단계],
REPLACE(message, '. ', '.' + CHAR(10)) as [메시지] , msdb.dbo.agent_datetime([JobH].run_date,[JobH].run_time) as [실패시간],
CASE WHEN LEN([JobH].run_duration ) IN (1,2) THEN Right([JobH].run_duration ,2)+'초'
WHEN LEN([JobH].run_duration ) = 3 THEN
SUBSTRING(cast([JobH].run_duration as varchar),1,1) + '분 ' + Right([JobH].run_duration ,2) + '초'
WHEN LEN([JobH].run_duration ) = 4 THEN
SUBSTRING(cast([JobH].run_duration as varchar),1,2) + '분 ' + Right([JobH].run_duration ,2) + '초'
WHEN LEN([JobH].run_duration ) = 5 THEN
SUBSTRING(cast([JobH].run_duration as varchar),1,1) + '시 ' +
SUBSTRING(cast([JobH].run_duration as varchar),2,2) + '분 ' +
Right([JobH].run_duration ,2) + '초'
WHEN LEN([JobH].run_duration ) = 6 THEN
SUBSTRING(cast([JobH].run_duration as varchar),1,2) + '시 ' +
SUBSTRING(cast([JobH].run_duration as varchar),3,2) + '분 ' +
Right([JobH].run_duration ,2) + '초'
end as [수행시간],
msdb.dbo.agent_datetime([JobS].next_run_date,[JobS].next_run_time) as [다음 일정]
FROM [msdb].dbo.sysjobhistory AS [JobH] WITH(NOLOCK)
left join msdb.dbo.sysjobs as [JobL] WITH (NOLOCK)
on JobH.job_id = JobL.job_id
left join msdb.dbo.[sysjobschedules] as [JobS] with (NOLOCK)
on JobH.job_id = JobS.job_id
WHERE [JobH].run_date between @Param_date1 and @Param_date2
and [JobH].run_status = 0 and [JobH].step_id > 0
'SQL Server > 스크립트' 카테고리의 다른 글
[스크립트] DBtoDB 참조관계 조회 (0) | 2022.01.05 |
---|---|
[스크립트] DB 배치 정보 확인 (0) | 2022.01.05 |
[스크립트]대량 데이터에 대한 특정 문자열 검색 및 변경 쿼리 추출 (0) | 2021.06.04 |
[스크립트] TRN 복원 쿼리 생성 스크립트 (0) | 2021.02.22 |
[스크립트] 특정경로 Full백업 일괄 복원 (0) | 2021.02.22 |