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

Откуда:
Сообщений: 105
В общем тут такую задачку дали, к примеру база весит 1000МБ, у нее стоит AG на 50МБ или 5%, как узнать через сколько МБ сервер сделает автомат. увеличение, т.е. когда будет 1002 или 1010 МБ, т.е. сколько МБ до увеличения осталось?
15 янв 16, 11:18    [18682751]     Ответить | Цитировать Сообщить модератору
 Re: Как определить когда вырастет БД по autogrowth?  [new]
Glory
Member

Откуда:
Сообщений: 104751
dark_DBa_dmin
как узнать через сколько МБ сервер сделает автомат. увеличение,

Через сколько МБ чего ? Траффика ? Транзакции ?

dark_DBa_dmin
т.е. когда будет 1002 или 1010 МБ, т.е. сколько МБ до увеличения осталось?

Как размер файла может быть 1002 или 1010, если приращение "на 50МБ или 5%," ?
15 янв 16, 11:23    [18682809]     Ответить | Цитировать Сообщить модератору
 Re: Как определить когда вырастет БД по autogrowth?  [new]
dark_DBa_dmin
Member

Откуда:
Сообщений: 105
Я наверно неясно написал.
Попробую еще раз. БД к примеру изначально 100 ГБ пускай была, AG 10 ГБ, к примеру 10 дней назад база стала 110, и с тех не увеличивалась, сколько из этих 10 ГБ, которые были выделены 10 дней назад еще осталось прежде база опять увеличиться.
15 янв 16, 11:33    [18682876]     Ответить | Цитировать Сообщить модератору
 Re: Как определить когда вырастет БД по autogrowth?  [new]
Glory
Member

Откуда:
Сообщений: 104751
dark_DBa_dmin
сколько из этих 10 ГБ, которые были выделены 10 дней назад еще осталось прежде база опять увеличиться.

Вы что хотите узнать, сколько свободного места в базе ?
Или сколько свобдного места в какой то таблице ?
Потому что при изменении данных может быть использовано как то, так и другое.
И все ваши прогнозы будут хуже прогнозов погоды.
15 янв 16, 11:36    [18682895]     Ответить | Цитировать Сообщить модератору
 Re: Как определить когда вырастет БД по autogrowth?  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
dark_DBa_dmin
Я наверно неясно написал.
Попробую еще раз. БД к примеру изначально 100 ГБ пускай была, AG 10 ГБ, к примеру 10 дней назад база стала 110, и с тех не увеличивалась, сколько из этих 10 ГБ, которые были выделены 10 дней назад еще осталось прежде база опять увеличиться.


сколько осталось, можно понять, выполнив

sp_spaceused


Когда увеличится - предсказать малореально, можно делать только более или менее достоверные предположения, исходя из среднего прироста.
15 янв 16, 11:41    [18682930]     Ответить | Цитировать Сообщить модератору
 Re: Как определить когда вырастет БД по autogrowth?  [new]
dark_DBa_dmin
Member

Откуда:
Сообщений: 105
Minamoto
dark_DBa_dmin
Я наверно неясно написал.
Попробую еще раз. БД к примеру изначально 100 ГБ пускай была, AG 10 ГБ, к примеру 10 дней назад база стала 110, и с тех не увеличивалась, сколько из этих 10 ГБ, которые были выделены 10 дней назад еще осталось прежде база опять увеличиться.


сколько осталось, можно понять, выполнив

sp_spaceused


Когда увеличится - предсказать малореально, можно делать только более или менее достоверные предположения, исходя из среднего прироста.


Спасибо! То что надо! А разве unused это как раз не та цифра которая когда дойдет до 0 произойдет AG? Если вставлять по одной записи в БД, видно как СУБД выделяет доп. страницы, цифра уменьшается на 8КБ, то есть в принципе когда она дойдет до 0 произойдет автоувел.
15 янв 16, 11:49    [18682999]     Ответить | Цитировать Сообщить модератору
 Re: Как определить когда вырастет БД по autogrowth?  [new]
Glory
Member

Откуда:
Сообщений: 104751
dark_DBa_dmin
А разве unused это как раз не та цифра которая когда дойдет до 0 произойдет AG?

Да.
Только вы спрашивали, в какой момент времени настанет это "дойдет до 0".

dark_DBa_dmin
Если вставлять по одной записи в БД, видно как СУБД выделяет доп. страницы, цифра уменьшается на 8КБ, то есть в принципе когда она дойдет до 0 произойдет автоувел.

Т.е. у вас только инсерты и только в таблицы-кучи без всяких индексов ?
15 янв 16, 11:51    [18683012]     Ответить | Цитировать Сообщить модератору
 Re: Как определить когда вырастет БД по autogrowth?  [new]
dark_DBa_dmin
Member

Откуда:
Сообщений: 105
Glory
dark_DBa_dmin
А разве unused это как раз не та цифра которая когда дойдет до 0 произойдет AG?

Да.
Только вы спрашивали, в какой момент времени настанет это "дойдет до 0".

dark_DBa_dmin
Если вставлять по одной записи в БД, видно как СУБД выделяет доп. страницы, цифра уменьшается на 8КБ, то есть в принципе когда она дойдет до 0 произойдет автоувел.

Т.е. у вас только инсерты и только в таблицы-кучи без всяких индексов ?


Да, неверно задал вопрос. Нужна была цифра, а не время.
На одной из тестовых баз, на которой я запустил эту ХП да, просто куча без индексов.
15 янв 16, 11:57    [18683064]     Ответить | Цитировать Сообщить модератору
 Re: Как определить когда вырастет БД по autogrowth?  [new]
komrad
Member

Откуда:
Сообщений: 5735
dark_DBa_dmin
Спасибо! То что надо!


это поудобней будет:

	SELECT	db_name() [DB],
		isnull(ds.name,'Not Applicable') as [FileGroup],
		df.file_id,
		df.name as [FileName],
		df.type_desc as [Type], 
		df.physical_name,size/128. [Size (MB)],
		CAST(FILEPROPERTY(df.name, 'SpaceUsed') AS int)/128. [Used Space (MB)],
		size/128.0 - CAST(FILEPROPERTY(df.name, 'SpaceUsed') AS int)/128. AS [Available Space (MB)],

		df.state_desc as [Status],

	 case 
		when df.max_size=-1 then 'Unlimited'
		else convert(varchar(50),ceiling(df.max_size/128.)) end as [Max Size (MB)],

	 case 
		when df.is_percent_growth=1 then convert(varchar(20),df.growth)+'%'
		else 
		convert(varchar(20),convert(int,df.growth/128.))+' MB' end as [Growth],

	 df.is_read_only,df.is_media_read_only,df.is_sparse

	FROM sys.database_files df 
		left join sys.data_spaces ds on df.data_space_id=ds.data_space_id 
	order by df.file_id;
15 янв 16, 12:00    [18683084]     Ответить | Цитировать Сообщить модератору
 Re: Как определить когда вырастет БД по autogrowth?  [new]
dark_DBa_dmin
Member

Откуда:
Сообщений: 105
komrad
dark_DBa_dmin
Спасибо! То что надо!


это поудобней будет:

	SELECT	db_name() [DB],
		isnull(ds.name,'Not Applicable') as [FileGroup],
		df.file_id,
		df.name as [FileName],
		df.type_desc as [Type], 
		df.physical_name,size/128. [Size (MB)],
		CAST(FILEPROPERTY(df.name, 'SpaceUsed') AS int)/128. [Used Space (MB)],
		size/128.0 - CAST(FILEPROPERTY(df.name, 'SpaceUsed') AS int)/128. AS [Available Space (MB)],

		df.state_desc as [Status],

	 case 
		when df.max_size=-1 then 'Unlimited'
		else convert(varchar(50),ceiling(df.max_size/128.)) end as [Max Size (MB)],

	 case 
		when df.is_percent_growth=1 then convert(varchar(20),df.growth)+'%'
		else 
		convert(varchar(20),convert(int,df.growth/128.))+' MB' end as [Growth],

	 df.is_read_only,df.is_media_read_only,df.is_sparse

	FROM sys.database_files df 
		left join sys.data_spaces ds on df.data_space_id=ds.data_space_id 
	order by df.file_id;


Согласен! Спасибо!
15 янв 16, 12:06    [18683126]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить