T-SQL 26

복제::트랜잭션 복제 배포agent 실행중 상태 모니터링

작업으로 인해 배포자 agent를 중지하고 작업 처리후 시작하는 것을 잊어버리는 수가 있다. 혹은 다른 문제로 인해 배포 agent가 실행되고 있지 않을때, 오래 동안 실행되지 않으면 복제가 실패되어 다시 구축해야 하는 경우가 발생한다. 아래 쿼리는 배포 agent 실행여부를 확인하여 메일이나 SMS를 받을 수 있게 처리하는 것이다. 이또는 해당 job이 실행되고 있거나 오래 실행되는것도 찾을 수 있다. [code sql] DECLARE @is_sysadmin INT DECLARE @job_owner sysname DECLARE @job_id uniqueidentifier DECLARE @job_name sysname DECLARE @running int DECLARE @cnt int DECLARE @m..

T-SQL::테이블 ROWCOUNT, 사이즈

테이블의 rowcount와 예약된 공간, 인덱스 공간 사이즈. sp_spaceused 를 사용해도 되지만, 테이블 여러개를 한번에 조회시 사용하면 좋다. --================================== -- DB 테이블 목록, row수 ceusee -- ================================= DECLARE @tablename sysname SET @tablename = '' SELECT sys.name, ind.row_count ,convert(int,(sum(convert(numeric(15,2),reserved) * m.low /1024))) as 'reserved(KB)' ,convert(int,(sum(convert(numeric(15,2),used) * m..

T-SQL::Index Script

현재 존재하는 Index 스크립트 생성. T-SQL::List all indexes in database 에 관련 함수, view 생성해야함. -- INDEX Script SELECT CASE WHEN T.TABLE_NAME IS NULL THEN 'CREATE ' + CASE IS_UNIQUE WHEN 1 THEN ' UNIQUE' ELSE '' END + CASE IS_CLUSTERED WHEN 1 THEN ' CLUSTERED' ELSE '' END + ' INDEX [' + INDEX_NAME + '] ON [' + v.TABLE_NAME + ']' + ' (' + COLUMN_LIST + ') ON ' + FILE_GROUP ELSE 'ALTER TABLE ['+T.TABLE_NAME+']' +..

T-SQL::List all indexes in database

데이터 베이스에 있는 모든 인덱스 정보를 보기 위함. sys.indexes, sys.index_columns, sys.columns 정보를 보면 복합 인덱스 일경우 row가 한개 이상으로 나타나서 한눈에 보기가 힘들다. select t.name as table_name ,ind.name as index_name, ind.index_id, ic.index_column_id, col.name as column_name from sys.indexes ind inner join sys.index_columns ic on ind.object_id = ic.object_id and ind.index_id = ic.index_id inner join sys.columns col on ic.object_id = col..

T-SQL::Total Disk Size 얻기 (OLE 사용)

디스크의 남은 용량은 xp_fixeddrives 를 이용해서 구할 수 있지만 디스크 전체 사이즈를 쉽게 얻기는 쉽지 않다. 여러 방법이 있었는데 그중 OLE 사용하는 방법이다. 이 방법을 사용하기 위해서는 기능 영역에 OLE 자동화 사용이 활성화 되어 있어야 한다. 서비스 되고 있는 DB 장비는 이 기능을 ON 해 놓지 않기에 평범하게 사용할 수는 없다. (클릭해서 크게 보세요) CREATE PROCEDURE sp_diskspace AS /* Displays the free space,free space percentage plus total drive size for a server */ SET NOCOUNT ON DECLARE @hr int DECLARE @fso int DECLARE @drive c..