Database Administrator/Monitoring 11

실행 쿼리 memory 사용 대기 정보

SQL SERVER 2005 이상. - 일부 컬럼은 SQL 2008 이상 메모리 사용을 대기하는 쿼리의 정보를 반환합니다. 메모리 대기를 하지 않는 쿼리는 나타나지 않으며, 이 쿼리에 실행되는 내역이 많다면 메모리 할당 대기가 많다는 의미 입니다. -- memory used select top 50 --mem.session_id,req.group_id, -- sql 2008 이상 가능 db_name(req.database_id) as db, mem.request_time, mem.grant_time, mem.granted_memory_kb,mem.used_memory_kb, mem.required_memory_kb, mem.query_cost,mem.timeout_sec,mem.wait_time_ms a..

대랑 I/O 사용 세션 쿼리

SQL SERVER 2005 이상 1. I/O Pending 조회 -- ===================================== -- I/O pending -- 어떤 row도 반환되지 않아야 한다. -- ===================================== select database_id, db_name(database_id) as db_name, file_id, t2.io_type, io_stall, io_pending_ms_ticks, scheduler_address from sys.dm_io_virtual_file_stats(NULL, NULL)t1, sys.dm_io_pending_io_requests as t2 where t1.file_handle = t2.io_han..

TEMPDB의 페이지 사용량 측정

SQL SERVER 2005 이상 실행 되는 SESSION TEMPDB의 페이지 사용량 측정.세가지 쿼리다 결과는 같음. --각 세션별 사용되는 Page, Plan, Statement WITH BASE AS ( SELECT session_id, request_id, SUM(internal_objects_alloc_page_count) AS [internal object pages alloc used], (SUM(internal_objects_alloc_page_count)*1.0/128) AS [internal object alloc space in MB], SUM(internal_objects_dealloc_page_count) AS [internal object pages dealloc used], ..

모니터링::Index 생성 & Rebuild 진행 상황

SQL SERVER 2005 이상 Index를 생성하거나, Rebuild 작업시 sysprocess 에서 max_dop = 설정값 보다 하나 더 많은 row가 보이면서 완료되어 가면 그 수가 하나씩 줄어드는 것을 확인 할 수 있다. 이 수가 줄어드는 것으로 완료되는 진행 상황을 보았었는데.. sys.partitions에서 작업하는 index_id 값에 해당하는 row 수가 전체 table row 값과 동일할 때까지 증가하는 것을 볼 수 있다. 즉, 완료가 되면 전체 table row 수와 같아 진다. SQL 2005 이상 부터 가능. DECLARE @TABLE_NAME SYSNAME, @INDEX_ID INT SET @TABLE_NAME = SET @INDEX_ID = -- REBUILD SELECT A..

T-SQL:: Default Trace로 DB 증가량 확인

SQL SERVER 2000 이상 EventClass : 92, 93, 94, 95 번은 DB File의 증가하거나 Shrink 하는 이벤트 임. Default Trace가 되고 있는 SQL Server에서는 해당 이벤트를 수집하고 있으며, 증가/축소되는 사이즈를 확인할 수 있다. begin try if (select convert(int,value_in_use) from sys.configurations where name = 'default trace enabled' ) = 1 begin declare @curr_tracefilename varchar(500) ; declare @base_tracefilename varchar(500) ; declare @indx int ; select @curr_t..