Традиционная задача для DBA- место на диске кончается. Вдруг начала стремительно расти база или еще что-то произошло. Где найти место в базе, в каких файлах, как? Да вот так:
— Dmitry Gorchilin 2016 www.digger.dp.ua
— Процент использования файлов данных
— С указанием для обрезки файлов. Первый вариант легкий, с конца до последнего занятого экстента. Второй- жесткий, с перепаковкой
— Третий вариант- к занятому месту добавляется 5%, в таком виде и обрезается. Там где остаток свободного места менее 5% выдаются звездочки
SELECT name ,size/128.0 as sizeMB,size/128.0 – CAST(FILEPROPERTY(name, ‘SpaceUsed’) AS int)/128.0 AS AvailableSpaceInMB,
–FILEPROPERTY(name, ‘IsReadOnly’),
‘DBCC SHRINKFILE ( ‘+name+’,TRUNCATEONLY )’ AS ‘SOFT_SHRINK’,
‘DBCC SHRINKFILE ( ‘+name+’ )’AS ‘HARD_SHRINK’,
case when ((1+FILEPROPERTY(name, ‘SpaceUsed’))/(128.0*1.05))<size/128.0
then ‘DBCC SHRINKFILE ( ‘+name+’,’+convert(varchar(20),1+CAST(FILEPROPERTY(name, ‘SpaceUsed’)/128.0*1.05 as int))+’ )’
else ‘– ***’ end
+’–‘+convert(varchar(20),CAST(FILEPROPERTY(name, ‘SpaceUsed’)/128.0 as int))
AS ‘+5%_Useed_SHRINK’
FROM sys.database_files WHERE type_desc=’ROWS’;
The traditional problem for DBA- disk space ends. Suddenly beginning to skyrocket base or something else happened. Where to find a place in the database in which files, how? Yes, like so
Hi there. Merely desired to question an instant dilemma. adeabbddbkkk
I really like and appreciate your blog post.Thanks Again. cgegekbeedbf