如何确定 table space 中保存数据所需的大小?
How to determine what size is required to hold data in a table space?
我对表空间以及决定其保存数据所需大小的要求有些困惑。
我已经阅读了文档和许多文章,包括 Whosebug 中关于表空间的答案,但我仍然不明白。
假设我要创建 3 个表:
- customer
- product
- sales
以上模式会影响您为表空间选择的大小吗?还是完全无关紧要?如果不相关,那么在这种情况下什么是相关的?
有人可以为刚接触这项研究的人简单解释一下吗?
分配给 tablespace 的数据文件的大小(和数量)取决于您要存储在 table 中的数据量。在大多数组织中,这还取决于您的存储管理员喜欢使用的块大小、获得额外存储需要多长时间 space,以及其他特定于组织的信息位。
估计 table 的大小可能会有点复杂,具体取决于您想要接近的程度以及您对数据的了解程度。但是,为了估计要分配给 tablespace 的数据文件的大小,您通常可以进行非常基本的估计,然后只监控实际利用率。
假设您的 customer
table 有一个 customer_id
列,它是一个数字标识符,它有一个 name
列,平均 30 个字符,和一个 create_date
告诉你它是什么时候创建的。粗略地说,这意味着每行 create_date
需要 7 个字节,name
需要 30 个字节,假设 customer_id
平均需要 5 个字节,总共 42 个字节。如果我们预计在前 6 个月内有 1,000,000 名客户(我们是一群乐观的人),我们预计 table 的大小约为 42 MB。如果我们对 tablespace 中的其他 table 重复该过程并将结果相加,我们就可以猜测我们需要分配多大的数据文件涵盖运营的前 6 个月。
当然,在现实中,有很多并发症。您不能只将列的大小相加来获得行的大小。您必须弄清楚一个块中有多少行,这可能取决于数据随时间变化的模式。我忽略了诸如 pctfree
之类的东西,它们为将来更新行保留了 space。另外,您对将拥有多少行以及各种字符串的大小的估计很少特别准确。因此,您得出的估计 非常 粗略。不过,在这种情况下,即使您偏离了 2 倍,一般来说也没什么大不了的。完成初始分配后,您需要监控实际使用了多少 space。因此,如果您使用的 space 比您猜想的多,您可以稍后再添加文件、增加文件大小等。
我对表空间以及决定其保存数据所需大小的要求有些困惑。
我已经阅读了文档和许多文章,包括 Whosebug 中关于表空间的答案,但我仍然不明白。
假设我要创建 3 个表:
- customer
- product
- sales
以上模式会影响您为表空间选择的大小吗?还是完全无关紧要?如果不相关,那么在这种情况下什么是相关的?
有人可以为刚接触这项研究的人简单解释一下吗?
分配给 tablespace 的数据文件的大小(和数量)取决于您要存储在 table 中的数据量。在大多数组织中,这还取决于您的存储管理员喜欢使用的块大小、获得额外存储需要多长时间 space,以及其他特定于组织的信息位。
估计 table 的大小可能会有点复杂,具体取决于您想要接近的程度以及您对数据的了解程度。但是,为了估计要分配给 tablespace 的数据文件的大小,您通常可以进行非常基本的估计,然后只监控实际利用率。
假设您的 customer
table 有一个 customer_id
列,它是一个数字标识符,它有一个 name
列,平均 30 个字符,和一个 create_date
告诉你它是什么时候创建的。粗略地说,这意味着每行 create_date
需要 7 个字节,name
需要 30 个字节,假设 customer_id
平均需要 5 个字节,总共 42 个字节。如果我们预计在前 6 个月内有 1,000,000 名客户(我们是一群乐观的人),我们预计 table 的大小约为 42 MB。如果我们对 tablespace 中的其他 table 重复该过程并将结果相加,我们就可以猜测我们需要分配多大的数据文件涵盖运营的前 6 个月。
当然,在现实中,有很多并发症。您不能只将列的大小相加来获得行的大小。您必须弄清楚一个块中有多少行,这可能取决于数据随时间变化的模式。我忽略了诸如 pctfree
之类的东西,它们为将来更新行保留了 space。另外,您对将拥有多少行以及各种字符串的大小的估计很少特别准确。因此,您得出的估计 非常 粗略。不过,在这种情况下,即使您偏离了 2 倍,一般来说也没什么大不了的。完成初始分配后,您需要监控实际使用了多少 space。因此,如果您使用的 space 比您猜想的多,您可以稍后再添加文件、增加文件大小等。