2017-01-10 3 views
1

Сегодня я получил новое требование от бизнеса, чтобы заранее предсказать размер БД для нового проекта.Прогнозирование размера БД в SQL Server

Может ли кто-нибудь знать, как я могу заранее предсказать размер БД?

У нас есть продукт, который импортирует DATA из Excel в DB, ​​максимальный размер - любая вещь, такая как 500 столбцов и 15000 строк.

Итак, я хочу создать формулу прогноза, чтобы найти размер DB. например, если клиент загружает столбцы DATA 500 и 15000 строк, размер исключений будет = 500 * 1500, но он не дает точного размера.

+0

Мы используем выпуски SQL Express, поэтому мы должны прогнозировать DB Размер до установки программного обеспечения на клиента – nirav

+4

Вы действительно планируете имея 500 столбцов в одной таблице? Сначала планируйте свою схему (нормализация), и вы сможете сэкономить некоторое пространство. – alroc

+0

При загрузке файла Excel нет предела столбца. потому что после загрузки данных мы конвертируем данные из столбца в строки. – nirav

ответ

5

Количество столбцов недостаточно, вы должны знать типы данных и длину данных.

Используя эту информацию, вы можете рассчитать сценарий наихудшего случая, добавив максимальное пространство для хранения, необходимое для столбцов. Например, NVARCHAR(20) потребует 40 bytes, когда он хранит строку длиной 20 символов.

Умножьте это на количество строк (это образованное предположение, основанное на предыдущей информации).

Это ваш примерный рост.

Вот пример:

У вас есть следующие столбцы:

  • ID INT
  • Имя NVARCHAR(64)
  • Описание NVARCHAR(256)

Ваш размер строки 4 байта + 128 байт + 512 байт = 644 байта за строку.

Это худший вариант, на самом деле средний будет меньше.

Есть некоторые накладные расходы, и вам нужно учитывать индексы, файлы журналов, резервное пространство и т. Д., Они занимают пространство для хранения.

Так как вы уже упоминали, что это будет экземпляр SQL Server Express, у вас есть жесткий предел размера БД (больше или меньше данных и размер индекса в сочетании):

  • Microsoft SQL Server 2008 Express : 4GB
  • Microsoft SQL Server 2008 R2 Экспресс: 10GB
  • Microsoft SQL Server 2012: 10GB
  • Microsoft SQL Server 2014 Express,: 10GB

Ресурсы:

+0

... и убедитесь, что вы учли резервное пространство, сколько места в архиве вам нужно, переиндексировать, сколько может увеличить ваш tempdb (исходя из вашего трафика и количества запросов). –

+0

Да, @MK_ прав, расчет выше - это просто необработанное пространство для хранения, файлы журналов, резервные копии, индексы, все, что потребуется больше места. – Pred

+0

@MK_ это определенно факторы, которые необходимо учитывать при планировании емкости * сервера *, но помимо пространства индекса они не учитывают ограничение на размер 10 ГБ для SQL Server Express Edition. – alroc

 Смежные вопросы

  • Нет связанных вопросов^_^