Blue sky, wind, cloud and knulf

관리용 주요 쿼리들 본문

라이브러리/시스템

관리용 주요 쿼리들

눌프 2011. 6. 3. 11:48
-- 특정 DB내의 테이블 사이즈 조회
CREATE TABLE #TableSize (
[TableName] VARCHAR(50),
[RowCount] INT,
[TableSize] VARCHAR(50) ,
[DataSpaceUsed] VARCHAR(50) ,
[IndexSpaceUsed] VARCHAR(50),
[UnusedSpace] VARCHAR(50)
)

INSERT INTO #TableSize
EXEC SP_MSFOREACHTABLE 'SP_SPACEUSED "?"'

SELECT * FROM #TableSize ORDER BY [TableName]

DROP TABLE #TableSize


--
sp_spaceused @updateusage = 'TRUE'

-- 현재데이터베이스의용량정보확인
SP_SPACEUSED

-- 전체데이터베이스의용량정보확인
SP_HELPDB

-- 'master' 데이터베이스의용량정보확인
SP_HELPDB @DBNAME = master

-- 현재데이터베이스의파일용량정보확인
SP_HELPFILE

-- 전체데이터베이스의로그사이즈, 로그사용률확인
DBCC SQLPERF (LOGSPACE)

-- 'AMS' 데이터베이스를10%의여유공간를두고데이터베이스를축소
DBCC SHRINKDATABASE (AMS, 10)

-- 'AMS' 데이터베이스의'AMS_Data' 파일의사이즈를10MB로축소
-- 10MB 이상이필요한경우최소한으로줄일수있는사이즈로자동조절됨
-- 실용량이15MB가필요한경우위의명령어를내려도15MB로축소됨
DBCC SHRINKFILE (AMS_Data, 10)

-- 현 데이터베이스 파일들의 여유 공간 확인 (SQL 2005용)
SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB
FROM sys.database_files;

-- 현 데이터베이스 파일들의 여유 공간 확인 (SQL 2000용)
SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB
FROM sysfiles

-- 트랜젝션로그 지우기 (SQL 2008)
USE AMS;
GO

ALTER DATABASE AMS
SET RECOVERY SIMPLE;
GO

DBCC SHRINKFILE (AMS_log, 1);
GO

ALTER DATABASE AMS
SET RECOVERY FULL;
GO

-- 트랜잭션로그를백업하되로그잘라내기수행
BACKUP LOG AMS WITH TRUNCATE_ONLY

-- 'AMS' 데이터베이스의'AMS_Data'를100MB 자동증가로변경하고
-- 'AMS_Log'를10MB 자동증가로변경함
ALTER DATABASE AMS
MODIFY FILE
       (NAME = AMS_Data,
       FILEGROWTH = 100MB
)
GO
ALTER DATABASE AMS
MODIFY FILE
       (NAME = AMS_Log,
       FILEGROWTH = 10MB
)
GO
Comments