Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Размер БД и удаление файла БД  [new]
Marianna-sec
Member

Откуда:
Сообщений: 128
Здравствуйте!

вопрос новичка, связанный с размером БД.

у меня у БД было два вайла, один mdf на 130 МБ, другой ndf - на 500МБ, логи еще на 10МБ
В свойствах у БД указывается размер 640МБ

Хотела сделать так, чтобы база не занимала столько места, таблицы предварительно очищены.

Сначала выполнила для файла ndf
DBCC SHRINKFILE EMPTYFILE 
 


Потом удалила сам файл ndf
ALTER DATABASE   REMOVE FILE


Почему в свойствах БД до сих пор пишется размер 640МБ? :(

Спасибо.
16 авг 12, 12:03    [13019485]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
nicescar
Member

Откуда:
Сообщений: 94
Либо теперь все данные в mdf, либо накопился лог от очистки данных.. Сейчас какой размер у файлов?
+Узнать можно, например, так:
select db_name(sa.dbid) as DBname 
	, sa.name as LogicalName
	, case sa.groupid
		WHEN 0 then 'LOG'
		ELSE sfg.groupname
	  end as Filegroup
	, sa.filename as Filename
	, cast(sf.size*8/1024. as numeric(19,3))as sizeMB
	, cast(sf.spaceused*8/1024. as numeric(19,3)) as spaceusedMB
	, cast((sf.size-sf.spaceused)*8/1024. as numeric(19,3)) as freespaceMB
	, case sf.maxsize
		when -1 then 'Unlimited'
		else cast(cast(sf.maxsize*8/1024.  as numeric(19,3))as varchar(22))
	  end as maxsizeMB
	, cast(sf.growth*8/1024. as numeric(19,3)) as nextgrowthMB
from master..sysaltfiles sa 
left join (
	select   cast(size as bigint) as size
			,fileid
			,groupid
			,cast(fileproperty(name,'SpaceUsed')as bigint) as spaceused 
			,cast(maxsize as bigint) as maxsize
			,cast(case 
				when status & 0x100000 = 0 then growth
				else size*growth/100
			 end as bigint) as growth
	from sysfiles
	) sf on sf.fileid=sa.fileid 
		and sf.groupid = sa.groupid
left outer join sysfilegroups sfg on sfg.groupid = sf.groupid
where sa.dbid = db_id()
order by case when sa.groupid = 0 then 1 else 0 end, sa.groupid, sa.fileid
16 авг 12, 12:11    [13019529]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Marianna-sec, а вы ждете, что размер уменьшится на ndf - на 500МБ ?

Сообщение было отредактировано: 16 авг 12, 12:13
16 авг 12, 12:12    [13019532]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
Marianna-sec
Member

Откуда:
Сообщений: 128
tpg
Marianna-sec, а вы ждете, что размер уменьшится на ndf - на 500МБ ?


ага, это неверное предположение? :(
16 авг 12, 12:22    [13019599]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
Glory
Member

Откуда:
Сообщений: 104751
Marianna-sec
Почему в свойствах БД до сих пор пишется размер 640МБ? :(

Это вы про managament studio ?
А вы рефрешили информацию там ?
16 авг 12, 12:24    [13019610]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
Marianna-sec
Member

Откуда:
Сообщений: 128
nicescar
Либо теперь все данные в mdf, либо накопился лог от очистки данных.. Сейчас какой размер у файлов?
+
+ Узнать можно, например, так:
select db_name(sa.dbid) as DBname 
	, sa.name as LogicalName
	, case sa.groupid
		WHEN 0 then 'LOG'
		ELSE sfg.groupname
	  end as Filegroup
	, sa.filename as Filename
	, cast(sf.size*8/1024. as numeric(19,3))as sizeMB
	, cast(sf.spaceused*8/1024. as numeric(19,3)) as spaceusedMB
	, cast((sf.size-sf.spaceused)*8/1024. as numeric(19,3)) as freespaceMB
	, case sf.maxsize
		when -1 then 'Unlimited'
		else cast(cast(sf.maxsize*8/1024.  as numeric(19,3))as varchar(22))
	  end as maxsizeMB
	, cast(sf.growth*8/1024. as numeric(19,3)) as nextgrowthMB
from master..sysaltfiles sa 
left join (
	select   cast(size as bigint) as size
			,fileid
			,groupid
			,cast(fileproperty(name,'SpaceUsed')as bigint) as spaceused 
			,cast(maxsize as bigint) as maxsize
			,cast(case 
				when status & 0x100000 = 0 then growth
				else size*growth/100
			 end as bigint) as growth
	from sysfiles
	) sf on sf.fileid=sa.fileid 
		and sf.groupid = sa.groupid
left outer join sysfilegroups sfg on sfg.groupid = sf.groupid
where sa.dbid = db_id()
order by case when sa.groupid = 0 then 1 else 0 end, sa.groupid, sa.fileid


осталось два файла 130 МБ (5.438 использовано) и лог на 10 МБ (использовано 10)
16 авг 12, 12:27    [13019632]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
Marianna-sec
Member

Откуда:
Сообщений: 128
Glory
Marianna-sec
Почему в свойствах БД до сих пор пишется размер 640МБ? :(

Это вы про managament studio ?
А вы рефрешили информацию там ?


ага, периодически обновляю :) не помогает :(
16 авг 12, 12:28    [13019636]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
Marianna-sec
Member

Откуда:
Сообщений: 128
перезапустила службу SQL Server, теперь пишет, что база недоступна (in recovery).

Что это значит???
16 авг 12, 12:53    [13019835]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Marianna-sec
перезапустила службу SQL Server, теперь пишет, что база недоступна (in recovery).

Что это значит???
Значит это, что сервер "возобновляется" - http://www.sqlcmd.ru/trans_log_internals-part04.html
16 авг 12, 12:58    [13019872]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
Marianna-sec
Member

Откуда:
Сообщений: 128
да, вроде хорошо, что ничего не сломалось.

но размер базы данных в свойствах отображается до сих пор как 640МБ.
при этом полный бекап весит 140 :(
16 авг 12, 13:07    [13019938]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
Glory
Member

Откуда:
Сообщений: 104751
Marianna-sec
но размер базы данных в свойствах отображается до сих пор как 640МБ.

Почему он должен быть другим, если всего лишь объекты были перенесены из одного файла в другой ?
16 авг 12, 13:13    [13019974]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
Marianna-sec
Member

Откуда:
Сообщений: 128
сам файл 500МБ был на 99% пустым, из него все было перенесено в другой файл этой же группы, который весит 100Мб
затем сам файл на 500Мб удалился.
итого у БД сейчас один файл в 100МБ (на 99% пустой также!), а по свойствам в Management Studio база весит 640Мб.

типа дебет с кредитом не сходится :(
16 авг 12, 13:17    [13020012]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
Glory
Member

Откуда:
Сообщений: 104751
USE MyDB;
GO
EXEC sp_spaceused @updateusage = N'TRUE';
GO
16 авг 12, 13:19    [13020035]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
nicescar
Member

Откуда:
Сообщений: 94
Да пусть хоть 2 ТБ показывает, по факту же файлы небольшие, какая разница, сколько там в интерфейсе показывается.
16 авг 12, 13:21    [13020061]     Ответить | Цитировать Сообщить модератору
 Re: Размер БД и удаление файла БД  [new]
Marianna-sec
Member

Откуда:
Сообщений: 128
Glory
USE MyDB;
GO
EXEC sp_spaceused @updateusage = N'TRUE';
GO


эта штука показывает размер БД 140МБ, но интерфейс упорно настаивает на своем :(
как-то это нелогично.
16 авг 12, 13:27    [13020137]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить