3달전보다 1기가 가량이 확 늘어나 있어요 하루 간격으로 100메가 가량씩 증가한다 해야 하나?
지금 디비를 풀백업을 해보면 5기가가 나오는데 작년까지만 해도 2~3기가 였었는데 왜이리 확 늘어나는건지
정상적인 증가가 아닌거 같은 느낌이 드는데 뭘 어떻게 손대봐야 할지 전혀 보르겠습니다.
서버는 ms-sql2012 사용중이고요 dbcc shrink 를 이용해봐도 크게 감소폭은 없고.. 테이블 용량을 다 합쳐도 3기가 안되는데
나머지 용량은 어디서 나오는건지 이거 정리가 가능하련지요
Comment 3
-
이리
2016.09.22 11:56
-
카루카루
2016.09.22 12:38
답변 감사합니다 로그는 900메가 정도고 mdf파일이 5.1기가에요..
-
헬로우파이썬
2016.09.22 13:08
아래스크립트 돌려보세요.
두번째화면의 freegb라는것이 용량을 줄일수있다는 뜻입니다.
결과값도 캡쳐해서 올려주시면 봐드릴수있습니다.
IF OBJECT_ID('tempdb..#dbInfo') IS NOT NULL
BEGIN
DROP TABLE #drives
END
SET NOCOUNT ON
DECLARE @hr int
DECLARE @fso int
DECLARE @drive char(1)
DECLARE @odrive int
DECLARE @TotalSize varchar(20)
DECLARE @MB Numeric
SET @MB = 1073741824
CREATE TABLE #drives
( drive char(1) PRIMARY KEY,
FreeSpace int NULL,
TotalSize int NULL
)
INSERT #drives(drive,FreeSpace) EXEC master.dbo.xp_fixeddrives
EXEC @hr=sp_OACreate 'Scripting.FileSystemObject',@fso OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
DECLARE dcur CURSOR LOCAL FAST_FORWARD
FOR SELECT drive from #drives ORDER by drive
OPEN dcur FETCH NEXT FROM dcur INTO @drive
WHILE @@FETCH_STATUS=0
BEGIN
EXEC @hr = sp_OAMethod @fso,'GetDrive', @odrive OUT, @drive
--select @fso, @odrive, @drive
--break
IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
EXEC @hr = sp_OAGetProperty @odrive,'TotalSize', @TotalSize OUT
IF @hr <> 0 EXEC sp_OAGetErrorInfo @odrive
UPDATE #drives SET TotalSize=@TotalSize/@MB
WHERE drive=@drive
FETCH NEXT FROM dcur INTO @drive
End
Close dcur
DEALLOCATE dcur
EXEC @hr=sp_OADestroy @fso IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso
SELECT
drive,
TotalSize as 'Total(GB)',
ROUND( CAST ( FreeSpace AS FLOAT)/1024.00 ,2) as 'Free(GB)' ,TotalSize,
ROUND( ( CAST ( FreeSpace AS FLOAT) /1024.00)/ cast ( NULLIF(TotalSize,0) AS FLOAT) * 100.0 , 2) AS 'Free(%)'
FROM #drives
ORDER BY drive
DROP TABLE #drives
GO
/*****************************[DB FILE]******************************/
IF OBJECT_ID('tempdb..#dbInfo') IS NOT NULL
BEGIN
DROP TABLE #dbInfo
END
Create Table #dbInfo (dId smallint, dbName sysname, gId smallint NULL, segName varchar(256) NULL,
drive VARCHAR(10) NULL,
filName varchar(520) NULL, sizeMg decimal(10,2) null,
usedMg decimal(10,2) null, freeMg decimal(10,2) null,
pcntUsed decimal(10,2) null, pcntFree decimal(10,2) null)
Declare @sSql varchar(1000)
Set @sSql = 'Use [?];
Insert #dbInfo (dId, dbName, gid, segName,drive, filName, sizeMg, usedMg)
Select db_id()
, db_name()
, groupid
, rtrim(name)
, left(filename,3) as drive
, filename
, Cast(size/128.0 As Decimal(10,2))
, Cast(Fileproperty(name, ''SpaceUsed'')/128.0 As Decimal(10,2))
From dbo.sysfiles Order By groupId Desc;'
Exec sp_MSforeachdb @sSql
Update #dbInfo Set
freeMg = sizeMg - usedMg,
pcntUsed = (usedMg/sizeMg)*100,
pcntFree = ((sizeMg-usedMg)/sizeMg)*100
SELECT
dId
, dbName
, gId
, segName
, SUM(sizeMg) AS sizeMg
, SUM(usedMg) AS usedMg
, SUM(freeMg) AS freeMg
, cast(SUM(sizeMg)/1024 AS Decimal(10,2)) AS sizeGB
, cast(SUM(usedMg)/1024 As Decimal(10,2)) AS usedGB
, cast(SUM(freeMg)/1024 As Decimal(10,2)) AS freeGB
, pcntUsed = CAST ( (SUM(usedMg)/SUM(sizeMg))*100 As Decimal(10,2))
, pcntFree = CAST ( ((SUM(sizeMg)-SUM(usedMg))/SUM(sizeMg))*100 As Decimal(10,2))
FROM #dbInfo
GROUP BY dId
, dbName
, gId
, segName
SELECT
dId
, dbName
, gId
, segName
, drive
, filName
, sizeMg
, usedMg
, freeMg
, cast(sizeMg/1024 AS Decimal(10,2)) AS sizeGB
, cast(usedMg/1024 As Decimal(10,2)) AS usedGB
, cast(freeMg/1024 As Decimal(10,2)) AS freeGB
, pcntUsed
, pcntFree
FROM #dbInfo
DROP TABLE #dbInfo
로그 사이즈 한번 확인해보세요