데이터베이스 조각 정리하는 SQL 스크립트 > db

본문 바로가기
사이트 내 전체검색

db

데이터베이스 조각 정리하는 SQL 스크립트

페이지 정보

작성자 서방님 댓글 0건 조회 126회 작성일 06-09-13 11:13

본문

오랜 기간 동안 데이터베이스를 정리하지 않았다면 insert, update, delete 등의 명령 실행으로 인해 데이터와 인덱스 페이지가 상당 부분 조각 조각나 있을 것이다. 이 SQL 스크립트는 데이터베이스 조각 정리를 도와준다.

SQL 스크립트 소스는 다음과 같다.

--Re-indexes the specified database
CREATE PROCEDURE usp_DefragDatabase
-- We don't use sysname because it might not be long enough.  
-- sysname is 128 chars, so we use double that.
@dbname nvarchar(256)
AS
BEGIN   
    -- Quote the database name with brackets
    DECLARE @quoteddbname nvarchar(256)
    set @quoteddbname = quotename( @dbname )
 
    -- The outer EXEC is so we can do USE, not allowed in stored procs
    -- The inner EXEC does the actual reindex on each table in the
    -- specified database
    
    EXEC('
    USE '+ @quoteddbname +'
    DECLARE @sTableName sysname
    DECLARE PKMS_Tables CURSOR LOCAL FOR
        select table_name from information_schema.tables
        where table_type = ''base table'' order by 1
    OPEN PKMS_Tables
    FETCH NEXT FROM PKMS_Tables INTO @sTableName
 
    WHILE @@FETCH_STATUS = 0
    BEGIN
    select @sTablename = quotename(@sTablename, ''[]'')
        EXEC('' DBCC DBREINDEX ( ''+@sTableName+'') WITH NO_INFOMSGS'')
        FETCH NEXT FROM PKMS_Tables INTO @sTableName
    END
    CLOSE PKMS_Tables')
END
GO

자료출처 : http://korea.internet.com/

댓글목록

등록된 댓글이 없습니다.

회원로그인

접속자집계

오늘
130
어제
225
최대
1,347
전체
154,889
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.