Я пытаюсь выяснить, насколько большой будет определенная база данных (она еще не была создана). Я знаю, сколько строк и какие таблицы будут. Есть ли в Oracle функция, которая сообщит мне размер такой теоретической базы данных? Есть ли известная математическая формула, которую я могу использовать? Я знаю, что есть функция для определения размера существующей базы данных, но я хочу знать, насколько большой она будет, прежде чем я ее создаю.
Вы можете из размера типов данных для столбцов в таблице. Затем вы можете получить приблизительную оценку размера строки в этой таблице. затем для 1 - n таблиц, затем для 1 строки в 1 таблице для x строк в x таблиц = оценка базы данных для данного размера строк.
Я знаю, но я так и делаю.
Вы можете попробовать создать прототип вашего проекта - создать начальную версию базы данных и написать несколько сценариев (или использовать инструмент), чтобы заполнить таблицы разумным количеством данных. Тогда вы будете точно знать, сколько места занимает X строк. Если это слишком много, вы можете вернуться к чертежной доске с вашим дизайном. Я знаю, что вам нужна фигура до создания базы данных, но вы никогда не сможете отчитаться за все, что происходит с физическими файлами данных под капотом.
Чтобы быть точным, это может стать действительно сложным. Например, вот как вы делаете это на MS SQL Server:
http://msdn.microsoft.com/en-us/library/aa933068(SQL.80).aspx
Точный размер не был слишком важен, поэтому я выбрал метод Литтл-Гига. Я выяснил, какими будут мои таблицы и столбцы, и посмотрел размеры типов данных , а затем сделал некоторое хорошее умножение.
Вы также должны включить индексы в свои оценки. Я видел системы, где индексы были такими же большими, как данные. Единственный способ доверять ответу - делать прототипы, как предлагает Эрик З. Борода. Разные системы баз данных имеют разные издержки, но у всех они есть.