-- DB 응급조치
-- 1. 캐쉬를 비운다.
-- 프로시저 캐쉬에서 모든 요소를 제거할 때
-- (프로시저 사용시 다시 사용하지 않고 다시 컴파일 하게 됨)
DBCC FREEPROCCACHE
-- 버퍼 풀에서 빈 버퍼를 모두 제거할 때
-- (서버를 종료하지 않아도 완전히 빈 버퍼 캐쉬를 사용함)
DBCC DROPCLEANBUFFERS
-- 2. 통계를 업데이트 한다.
-- 하나의 테이블에 대하여 모든 통계를 업데이트 하는 방법
UPDATE STATISTICS [table_name]
-- 하나의 테이블에 대하여 원하는 인덱스에 대해서만 통계를 업데이트 하는 방법
UPDATE STATISTICS [table_name] [index_name]
-- 데이터베이스 전체에 대하여 통계를 업데이트 하는 방법
USE [db_name];
EXEC SP_UPDATESTATS
-- 인덱스의 통계정보와 조각난 정도를 보는 경우
-- (http://forfido.tistory.com/93)
-- All density 값은 0.0043 이하일 때 NC INDEX 사용함
DBCC SHOW_STATISTICS ([table_name], [index_name])
EXEC SP_SPACEUSED [table_name]
-- 만약 테이블의 인덱스 정보를 모른 다면
EXEC SP_HELPINDEX [table_name]
-- 3. 인덱스 조각모음을 한다.
-- 인덱스 파편화 정보보기(검색밀도, 평균 페이지 밀도가 크면 좋은 것)
DBCC SHOWCONTIG([table_name])
DBCC SHOWCONTIG([table_name],[index_name])
-- 또는
SELECT A.INDEX_ID, NAME, AVG_FRAGMENTATION_IN_PERCENT
FROM SYS.DM_DB_INDEX_PHYSICAL_STATS
(DB_ID('db_name'), OBJECT_ID('table_name'), NULL, NULL, NULL)AS A
JOIN SYS.INDEXES AS B
ON A.OBJECT_ID = B.OBJECT_ID AND
A.INDEX_ID = B.INDEX_ID
-- 파편화가 일정이상 진행되었다면 인덱스 조각모음 실행
-- (http://msdn.microsoft.com/ko-kr/library/ms189858.aspx)
DBCC INDEXDEFRAG([db_name], [table_name], [index_name])
-- 2005 이상에서는 아래와 같은 방법도 있다.(http://text.zpne.net/6)
ALTER INDEX ALL ON [table_name] REBUILD WITH (PAD_INDEX = ON, FILLFACTOR = 90)
-- 모든 테이블에 하나씩 하기 힘들 때를 위해
/*
DECLARE @i int, @sql varchar(1000)
DECLARE @tablename varchar(1000),@ownerName varchar(1000)
SET @i = 1
DECLARE DB_Cursor CURSOR FOR
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_SCHEMA, TABLE_NAME
OPEN DB_Cursor
FETCH NEXT FROM DB_Cursor
INTO @ownerName, @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'ALTER INDEX ALL ON ' + @ownerName + '.' + @tablename + ' REBUILD WITH (PAD_INDEX = ON, FILLFACTOR = 90) '
EXEC (@sql)
PRINT CONVERT(VARCHAR, @i) + '__' + @ownerName + '.' + @tablename + '............ OK'
SET @i = @i + 1
FETCH NEXT FROM DB_Cursor
INTO @ownerName, @tablename
END
CLOSE DB_Cursor
DEALLOCATE DB_Cursor
*/