Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CREATETABLE语句用于oracle中的一个非常大的表_Oracle_Large Data - Fatal编程技术网

CREATETABLE语句用于oracle中的一个非常大的表

CREATETABLE语句用于oracle中的一个非常大的表,oracle,large-data,Oracle,Large Data,我计划在一个表中存储大约5 TB的数据。以下是我为创建表而生成的默认脚本: CREATE TABLE measurements ( measurementtime DATE NOT NULL, height number, offset number ) PCTFREE 10 PCTUSED INITRANS 1 MAXTRANS 255 TABLESPACE mytablespace STORAGE ( INITIAL 262144

我计划在一个表中存储大约5 TB的数据。以下是我为创建表而生成的默认脚本:

CREATE TABLE measurements
(
 measurementtime              DATE NOT NULL,
 height number,
 offset number
)
PCTFREE    10
PCTUSED
INITRANS   1
MAXTRANS   255
TABLESPACE mytablespace
STORAGE   (
  INITIAL     262144
  NEXT
  PCTINCREASE
  MINEXTENTS  1
  MAXEXTENTS  2147483645
  FREELIST GROUPS  0
  FREELISTS  0
 )

您能告诉我是否需要修改任何参数吗?

在不了解整个系统的情况下,很难给出好的建议。下面的想法是根据你的剧本和你之前的问题做出的猜测,但不要相信你读到的一切。你需要做很多测试。您可以很容易地花很多天来优化这样的表

  • PCTFREE 0:如果您有5 TB且没有索引,则 假设你什么都不会做 更新。如果那是真的,你可以 将PCTFREE更改为0并保存10%的 你的空间

  • NOLOGGING:如果您不需要保存数据 可恢复,并且如果您的数据库是 在archivelog模式下,您可以 要添加NOLOGGING。无记录 使用附加插入将不会 生成重做。(这可能是 如果您的表空间是 已设置为NOLOGGING。)

  • 平行:你肯定会想使用 与这张桌子平行。自从 这张桌子对我来说可能不寻常 你的系统,可能最好 在Station定义平行度 或会话级别。但如果你不愿意 控制所有的 语句在此表上运行 你可能想考虑定义 这里的学位是为了确保 语句不会以串行方式运行

  • 删除未知选项:我认为您应该删除所有 你没有特别提到的选项 设置,或不理解。如果你 使用像蟾蜍或其他工具 用于生成脚本的DBMS_元数据 他们总是会列出每个选项, 但通常你应该离开大部分时间 把这些东西拿出来,让甲骨文使用 随便你喜欢什么

  • 压缩/分区:就像Gary提到的,分区 可能非常有用。但是在你的 你刚才提到的问题 存储容量高达200 TB,仅5 TB 每天。你用的是穷人的吗 划分;重新命名和 每天重新制作桌子?如果 这只是一天的数据 那么压缩应该是非常重要的 有助于测量时间

  • 块大小:我不确定的设置 “mytablespace”是,但既然您 我什么都没提我很抱歉 我猜你在用标准 块大小。也许值得 为此使用较大的块大小 这样你就可以做得更好 压缩(因为压缩是 每个块完成一次,一个块中的数据越多 阻止Oracle可以压缩的数据量)。 我不愿意提出这个建议, 因为99%的时候 更改块大小,但这不起作用 他们认为应该怎么做。但是 这么大的数据量可能 这是值得考虑的


  • 在不了解整个系统的情况下,很难给出好的建议。下面的想法是根据你的剧本和你之前的问题做出的猜测,但不要相信你读到的一切。你需要做很多测试。您可以很容易地花很多天来优化这样的表

  • PCTFREE 0:如果您有5 TB且没有索引,则 假设你什么都不会做 更新。如果那是真的,你可以 将PCTFREE更改为0并保存10%的 你的空间

  • NOLOGGING:如果您不需要保存数据 可恢复,并且如果您的数据库是 在archivelog模式下,您可以 要添加NOLOGGING。无记录 使用附加插入将不会 生成重做。(这可能是 如果您的表空间是 已设置为NOLOGGING。)

  • 平行:你肯定会想使用 与这张桌子平行。自从 这张桌子对我来说可能不寻常 你的系统,可能最好 在Station定义平行度 或会话级别。但如果你不愿意 控制所有的 语句在此表上运行 你可能想考虑定义 这里的学位是为了确保 语句不会以串行方式运行

  • 删除未知选项:我认为您应该删除所有 你没有特别提到的选项 设置,或不理解。如果你 使用像蟾蜍或其他工具 用于生成脚本的DBMS_元数据 他们总是会列出每个选项, 但通常你应该离开大部分时间 把这些东西拿出来,让甲骨文使用 随便你喜欢什么

  • 压缩/分区:就像Gary提到的,分区 可能非常有用。但是在你的 你刚才提到的问题 存储容量高达200 TB,仅5 TB 每天。你用的是穷人的吗 划分;重新命名和 每天重新制作桌子?如果 这只是一天的数据 那么压缩应该是非常重要的 有助于测量时间

  • 块大小:我不确定的设置 “mytablespace”是,但既然您 我什么都没提我很抱歉 我猜你在用标准 块大小。也许值得 为此使用较大的块大小 这样你就可以做得更好 压缩(因为压缩是 每个块完成一次,一个块中的数据越多 阻止Oracle可以压缩的数据量)。 我不愿意提出这个建议, 因为99%的时候 更改块大小,但这不起作用 他们认为应该怎么做。但是 这么大的数据量可能 这是值得考虑的


  • 在5TB的容量下,您可能希望在某个地方拥有一个主键或一些索引:-)您可能需要分区或压缩。取决于Oracle版本以及您实际计划对数据执行的操作。在5TB的容量下,您可能需要考虑在某个地方使用主键或某些索引:-)您可能需要分区或压缩。取决于Oracle版本以及您实际计划如何处理数据。