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

Откуда:
Сообщений: 335
Сервер SQL 2000 SP4,
Есть базенка которая постепенно растет. Возникла необходимость отследить как быстро она растет, спрогнозировать ее рост на будущее. Какие средства для этого существуют? Чем в SQL 2000 для этого можно воспользоваться?

Я брошу все и войду в твое положение
18 авг 09, 10:42    [7549899]     Ответить | Цитировать Сообщить модератору
 Re: Динамика роста базы данных, как отследить, спрогнозировать?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ну так меряете размер вашей базы через какие то промежутки
И потом в Excel подставляете в аналитеческую функцию которая считает тренды
18 авг 09, 11:00    [7549996]     Ответить | Цитировать Сообщить модератору
 Re: Динамика роста базы данных, как отследить, спрогнозировать?  [new]
helloword
Member

Откуда:
Сообщений: 686
sp_spaceused ?
18 авг 09, 11:02    [7550010]     Ответить | Цитировать Сообщить модератору
 Re: Динамика роста базы данных, как отследить, спрогнозировать?  [new]
soljo_ua
Member

Откуда: Киев
Сообщений: 369
dbcc updateusage(0)

DECLARE @pagesizeKB int
SELECT @pagesizeKB = low / 1024 FROM master.dbo.spt_values
WHERE number = 1 AND type = 'E'

SELECT
  table_name = OBJECT_NAME(o.id),
  rows = i1.rowcnt,
  reservedKB = (ISNULL(SUM(i1.reserved), 0) + ISNULL(SUM(i2.reserved), 0)) * @pagesizeKB,
  dataKB = (ISNULL(SUM(i1.dpages), 0) + ISNULL(SUM(i2.used), 0)) * @pagesizeKB,
  index_sizeKB = ((ISNULL(SUM(i1.used), 0) + ISNULL(SUM(i2.used), 0))
    - (ISNULL(SUM(i1.dpages), 0) + ISNULL(SUM(i2.used), 0))) * @pagesizeKB,
  unusedKB = ((ISNULL(SUM(i1.reserved), 0) + ISNULL(SUM(i2.reserved), 0))
    - (ISNULL(SUM(i1.used), 0) + ISNULL(SUM(i2.used), 0))) * @pagesizeKB
FROM sysobjects o
LEFT OUTER JOIN sysindexes i1 ON i1.id = o.id AND i1.indid < 2
LEFT OUTER JOIN sysindexes i2 ON i2.id = o.id AND i2.indid = 255
WHERE OBJECTPROPERTY(o.id, N'IsUserTable') = 1 --same as: o.xtype = 'IsView'
OR (OBJECTPROPERTY(o.id, N'IsView') = 1 AND OBJECTPROPERTY(o.id, N'IsIndexed') = 1)
GROUP BY o.id, i1.rowcnt
ORDER BY 3 DESC

ставите на джоб в ночной обслуге (например) и сливаете в таблицу. по данным которой строите отчеты роста базы или отдельных таблиц
18 авг 09, 11:08    [7550052]     Ответить | Цитировать Сообщить модератору
 Re: Выделить строки в Excel  [new]
nikopol
Member

Откуда:
Сообщений: 335
то есть можно начать мониторинг только с текущего момента? узнать как с начала года каждый месяц база увеличивалась не получиться?
18 авг 09, 12:05    [7550518]     Ответить | Цитировать Сообщить модератору
 Re: Выделить строки в Excel  [new]
Glory
Member

Откуда:
Сообщений: 104760
nikopol
то есть можно начать мониторинг только с текущего момента? узнать как с начала года каждый месяц база увеличивалась не получиться?

Нет конечно. Зачем бы серверу мониторить и хранить динамику роста файлов ?
Тем более, что их размер администратор может менять, как ему захочется
18 авг 09, 12:34    [7550711]     Ответить | Цитировать Сообщить модератору
 Re: Динамика роста базы данных, как отследить, спрогнозировать?  [new]
pr0ger
Member

Откуда: Москва
Сообщений: 1933
Очень грубо можно оценить на основе данных о резервных копиях
SELECT backup_size, backup_start_date
FROM msdb.dbo.backupset
WHERE database_name='MyDbName' and type='D'
ORDER BY backup_start_date
18 авг 09, 13:39    [7551218]     Ответить | Цитировать Сообщить модератору
 Re: Выделить строки в Excel  [new]
nikopol
Member

Откуда:
Сообщений: 335
18 авг 09, 13:45    [7551260]     Ответить | Цитировать Сообщить модератору
 Re: Динамика роста базы данных, как отследить, спрогнозировать?  [new]
nikopol
Member

Откуда:
Сообщений: 335
Glory
nikopol
то есть можно начать мониторинг только с текущего момента? узнать как с начала года каждый месяц база увеличивалась не получиться?

Нет конечно. Зачем бы серверу мониторить и хранить динамику роста файлов ?
Тем более, что их размер администратор может менять, как ему захочется

Ну мало ли :)

pr0ger
Очень грубо можно оценить на основе данных о резервных копиях
SELECT backup_size, backup_start_date
FROM msdb.dbo.backupset
WHERE database_name='MyDbName' and type='D'
ORDER BY backup_start_date

О! в принципе то что надо, дает нам примерный порядок цифр, уже можно как то отталкиваться от этого...
18 авг 09, 13:50    [7551305]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить