4

我试图弄清楚某个数据库有多大(它尚未创建)。我知道有多少行和表格。Oracle 中是否有一个功能可以告诉我这种理论数据库的大小?我可以使用一个已知的数学公式吗?我知道有一个功能可以确定现有数据库的大小,但我想在创建它之前知道它有多大。

4

5 回答 5

7

您可以尝试对您的设计进行原型设计 - 创建数据库的初始版本并编写一些脚本(或使用工具)以使用合理数量的数据填充表。然后您将确定 X 行占用了多少空间。如果太多,你可以带着你的设计回到绘图板上。我知道您在创建数据库之前需要一个数字,但是您永远无法解释引擎盖下物理数据文件发生的所有事情。

于 2008-08-14T14:34:49.763 回答
5

您可以从表中列的数据类型的大小。然后,您可以粗略估计该表中行的大小。然后对于 1 到 n 个表,然后对于 1 个表中的 1 行,对于 x 个表中的 x 行 = 给定行大小的数据库估计值。

长手我知道,但这就是我通常这样做的方式。

于 2008-08-14T14:07:27.307 回答
1

准确地说,这可能会变得非常复杂。例如,这就是您在 MS SQL Server 上执行此操作的方式:

http://msdn.microsoft.com/en-us/library/aa933068(SQL.80).aspx

于 2008-08-14T14:36:30.477 回答
1

您还需要在估算中包含索引。我见过索引与数据一样大的系统。我相信答案的唯一方法是像 Eric Z Beard 建议的那样进行原型设计。不同的数据库系统有不同的开销,但它们都有。

于 2008-08-17T23:22:37.067 回答
0

有一个确切的尺寸并不太重要,所以我采用了 littlegeek 的方法。我弄清楚了我的表和列将是什么,并查看了数据类型的大小,然后做了一些很好的 'ole 乘法。

于 2008-08-14T15:21:51.867 回答