- oracle/
- CREATETABLE语句用于oracle中的一个非常大的表
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版本以及您实际计划如何处理数据。