Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Доброе утро, где можно найти этот параметр для БД?
21 ноя 12, 09:17    [13504808]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
teCa,

Такого параметра базы не существует. Вообще размер — это свойство файлов базы данных. Соответственно, может подойти выборка из sys.database_files. Но там хранится текущий размер файлов. Если же вам нужно посмотреть, с каким размером изначально были созданы файлы БД, то определить это только по базе невозможно. Если сохранился скрипт, которым эта БД создавалась, то можно посмотреть там.
21 ноя 12, 09:38    [13504893]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Я имею ввиду эти два параметра
Картинка с другого сайта.
21 ноя 12, 10:00    [13505009]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
teCa,

select name, cast(size * 1.0 / 128 as float) as [Size in Mb]
from sys.database_files
21 ноя 12, 10:08    [13505057]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Это текущий размер как я полагаю, а мне нужен зарезервированный объем для tempdb.

Суть в целом следующая, Хочу вывести отчет, который будет мониторить размер tempdb и реагировать на те БД, у которых их фактический размер начинает превышать зарезервированный.
21 ноя 12, 10:18    [13505108]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Гость333
teCa,

select name, cast(size * 1.0 / 128 as float) as [Size in Mb]
from sys.database_files


sys.database_files как я понимаю не содержит данные про системные БД.
21 ноя 12, 10:23    [13505136]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
teCa
sys.database_files как я понимаю не содержит данные про системные БД.

Если sys.database_files используется без префикса, то оно возвращает информацию о файлах текущей БД. Для остальных БД можно использовать префикс, например:

select name, cast(size * 1.0 / 128 as float) as [Size in Mb]
from tempdb.sys.database_files;

select name, cast(size * 1.0 / 128 as float) as [Size in Mb]
from master.sys.database_files;
21 ноя 12, 10:26    [13505156]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Glory
Member

Откуда:
Сообщений: 104751
teCa
sys.database_files как я понимаю не содержит данные про системные БД.

Потому что sys.database_files содержит данные текущей базы
21 ноя 12, 10:26    [13505158]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
sys.master_files
21 ноя 12, 10:29    [13505173]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Glory
teCa
sys.database_files как я понимаю не содержит данные про системные БД.

Потому что sys.database_files содержит данные текущей базы


Понятно, но как я понял нужное мне значение там все равно нет.
21 ноя 12, 10:39    [13505249]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
teCa
Это текущий размер как я полагаю, а мне нужен зарезервированный объем для tempdb.

Суть в целом следующая, Хочу вывести отчет, который будет мониторить размер tempdb и реагировать на те БД, у которых их фактический размер начинает превышать зарезервированный.

Не понял, каким образом мониторинг tempdb может реагировать на какие-то другие БД.

Попробуйте посмотреть в сторону alerts. Можно создать алерт по событию "размер БД превысил такое-то значение", и уведомление об этом будет послано по выбору на почту/пейджер/net send.
21 ноя 12, 10:42    [13505272]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Glory
Member

Откуда:
Сообщений: 104751
teCa
Понятно, но как я понял нужное мне значение там все равно нет.

Потому что в новой студии "съэкономили" на диалогах. Один и тот же диалог использован для создания нового файла и для отображения существующего.
21 ноя 12, 10:47    [13505303]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Гость333
teCa
Это текущий размер как я полагаю, а мне нужен зарезервированный объем для tempdb.

Суть в целом следующая, Хочу вывести отчет, который будет мониторить размер tempdb и реагировать на те БД, у которых их фактический размер начинает превышать зарезервированный.

Не понял, каким образом мониторинг tempdb может реагировать на какие-то другие БД.

Попробуйте посмотреть в сторону alerts. Можно создать алерт по событию "размер БД превысил такое-то значение", и уведомление об этом будет послано по выбору на почту/пейджер/net send.


Да это 1Совские заморочки, там очень много внимания нужно уделать базе tempdb. Выделение дополнительного места для tempdb ведет к дополнительной нагрузке. Таким образом заня, что tempdb начинает превышать зарезервированный размер, мы оперативно сможем увеличить резерв. Конечно много не особо парится и запилить х2 - х3 максимальных пиков и не парится, но коли бы это можно было сделать, было бы хорошо)
21 ноя 12, 11:19    [13505597]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Glory
Member

Откуда:
Сообщений: 104751
teCa
Выделение дополнительного места для tempdb ведет к дополнительной нагрузке.

C чего это вдруг ?
teCa
Таким образом заня, что tempdb начинает превышать зарезервированный размер

Какой еще "зарезервированный" ?
Если вас беспокоит размер tempdb, то задайте ей размер и отмените автоматическое приращение.
21 ноя 12, 11:22    [13505631]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Glory
teCa
Выделение дополнительного места для tempdb ведет к дополнительной нагрузке.

C чего это вдруг ?

Из статья от МС об оптимизации tempdb
Заранее выделите место для всех файлов tempdb, установив размер файла в значение, достаточное, чтобы гарантировать обычную рабочую нагрузку в среде. Это предотвращает слишком частое расширение tempdb, которое может повлиять на производительность. Следует установить автоувеличение для базы данных tempdb, но это следует сделать, чтобы увеличить место на диске для незапланированных исключений.



teCa
Таким образом заня, что tempdb начинает превышать зарезервированный размер

Какой еще "зарезервированный" ?
Если вас беспокоит размер tempdb, то задайте ей размер и отмените автоматическое приращение.


И что будет, если tempdb всетаки упрется в ограничение. Задача - поймать тот момент, когда текущий размер начинает превышать зарезервированное место на диске. Я не говорю, что это настолько критично и требует такого бдительного внимания, но просто хочу еще один отчетик и аларм.
21 ноя 12, 12:16    [13506159]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
teCa,

"Зарезервированное место" — это значение max_size из sys.database_files? Или вас беспокоит, что при попытке очередного увеличения размера файла кончится место на диске? Если второе, то погуглите "sql server low disk space alert".
21 ноя 12, 12:35    [13506356]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Гость333
teCa,

"Зарезервированное место" — это значение max_size из sys.database_files? Или вас беспокоит, что при попытке очередного увеличения размера файла кончится место на диске? Если второе, то погуглите "sql server low disk space alert".


Фиг его знает, у меня напротив всех системных баз max_size = -1 )
21 ноя 12, 12:39    [13506403]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
По сути, мне нужно найти восьмерку из скриншота.
21 ноя 12, 12:43    [13506454]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Glory
Member

Откуда:
Сообщений: 104751
teCa
По сути, мне нужно найти восьмерку из скриншота.

8ка из скриншота - это текущий размер файла.
21 ноя 12, 13:59    [13507234]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Glory
teCa
По сути, мне нужно найти восьмерку из скриншота.

8ка из скриншота - это текущий размер файла.

Помоему вы ошибаетесь.
sp_helpdb возвращает 2.75 MB касаемо этой БД.

Картинка с другого сайта.
21 ноя 12, 14:16    [13507384]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Картинка с другого сайта.
21 ноя 12, 14:17    [13507402]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
Glory
Member

Откуда:
Сообщений: 104751
teCa
Помоему вы ошибаетесь.
sp_helpdb возвращает 2.75 MB касаемо этой БД.

Кто-то ошибается со скриншотами

вот кусок вычисления из sp_helpdb
    set dbsize = (select str(sum(convert(dec(17,2),size)) / 128,10,2)  
    + N'' MB'' from '  
     + quotename(@name, N'[')   
     + N'.dbo.sysfiles)   


а это запрос студии
SELECT
CAST(cast(g.name as varbinary(256)) AS sysname) AS [FileGroup_Name],
s.name AS [Name],
CAST(CASE s.file_id WHEN 1 THEN 1 ELSE 0 END AS bit) AS [IsPrimaryFile],
CAST(CASE s.type WHEN 2 THEN 0 ELSE tspc.UsedExtents*convert(float,64) END AS float) AS [UsedSpace],
CASE s.type WHEN 2 THEN 0 ELSE (tspc.TotalExtents - tspc.UsedExtents)*convert(float,64) END AS [AvailableSpace],
CAST(CASE when s.growth=0 THEN (CASE WHEN s.type = 2 THEN 0 ELSE 99 END) ELSE s.is_percent_growth END AS int) AS [GrowthType],
s.physical_name AS [FileName],
s.size * CONVERT(float,8) AS [Size],
CASE when s.max_size=-1 then -1 else s.max_size * CONVERT(float,8) END AS [MaxSize],
s.file_id AS [ID],
'Server[@Name=' + quotename(CAST(
        serverproperty(N'Servername')
       AS sysname),'''') + ']' + '/Database[@Name=' + quotename(db_name(),'''') + ']' + '/FileGroup[@Name=' + quotename(CAST(cast(g.name as varbinary(256)) AS sysname),'''') + ']' + '/File[@Name=' + quotename(s.name,'''') + ']' AS [Urn],
CAST(CASE s.is_percent_growth WHEN 1 THEN s.growth ELSE s.growth*8 END AS float) AS [Growth],
s.is_media_read_only AS [IsReadOnlyMedia],
s.is_read_only AS [IsReadOnly],
CAST(case s.state when 6 then 1 else 0 end AS bit) AS [IsOffline],
s.is_sparse AS [IsSparse]
FROM
sys.filegroups AS g
INNER JOIN sys.master_files AS s ON ((s.type = 2 or s.type = 0) and s.database_id = db_id() and (s.drop_lsn IS NULL)) AND (s.data_space_id=g.data_space_id)


как вы видите везде идет работы с полем size

Так что нет никакого "зарезервированного места"
21 ноя 12, 14:41    [13507669]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Glory,

Точно, извиняюсь, смотрел не туда.
21 ноя 12, 14:50    [13507778]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
Картинка с другого сайта.

Получается нужно мониторить доступное место.
21 ноя 12, 14:56    [13507844]     Ответить | Цитировать Сообщить модератору
 Re: Как через TSQL пролучить Initial Size базы?  [new]
teCa
Member

Откуда: Москва
Сообщений: 973
А этот параметр где взять подскажите плз.
21 ноя 12, 15:14    [13508057]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить