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

有帮助吗?

解决方案

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

我知道这很麻烦,但这就是我通常这样做的方式。

其他提示

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

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

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

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

拥有精确的尺寸并不是太重要,所以我采用了littlegeek的方法。我弄清楚了我的表格和列是什么,并且 查找数据类型的大小, ,然后做了一些很好的“ole 乘法”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top