【问题标题】:Predicting Oracle Table Growth预测 Oracle 表增长
【发布时间】:2009-02-03 23:20:06
【问题描述】:

如何预测 Oracle 表的未来大小/增长?

假设:

  • 行数线性增长
  • 基本数据类型(字符、数字和日期)的已知列
    • 忽略 varchar2 的可变性
    • 对存储它们所需空间的基本了解(例如number
  • blocks, extents, segmentsblock overhead的基本理解

我正在寻找比“现在衡量,等待,再次衡量”更积极主动的方法。

【问题讨论】:

  • 这听起来更像是一个 dba 的问题,而不是程序员的问题……在 stackoverflow 上可能不合适
  • 废话。这是一个完美的问题。

标签: database oracle


【解决方案1】:
  1. 根据您的数据类型估计平均行大小。
  2. 估计块中的可用空间。这将是块大小,减去块头大小,减去 PCTFREE 剩余的空间。例如,如果您的块头大小为 100 字节,您的 PCTFREE 为 10,并且您的块大小为 8192 字节,那么给定块中的可用空间为(8192 - 100) * 0.9 = 7282
  3. 估计该空间可以容纳多少行。如果您的平均行大小为 1 kB,则大约 7 行将适合 8 kB 块。
  4. 估计您的增长率,以每时间单位的行数为单位。例如,如果您预计每年有一百万行,那么在每 8 kB 块有 7 行的情况下,您的表每年将增长大约 1 GB。

【讨论】:

    【解决方案2】:

    我怀疑估计将 100% 取决于问题域。您提出的方法似乎是一个尽可能好的一般程序。

    【讨论】:

      【解决方案3】:

      根据您的假设,“测量、等待、再测量”是完全可以预测的。在 10g+ 中,Oracle 甚至为您执行“测量、等待、再次测量”。 http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_3165.htm#I1023436

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-23
        • 2013-08-17
        • 2022-01-14
        相关资源
        最近更新 更多