【问题标题】:compress similar rows in oracle/SQL在 oracle/SQL 中压缩相似的行
【发布时间】:2016-07-08 15:39:00
【问题描述】:

我正在尝试考虑 oracle/SQL 中的表设计,其中数据库中的许多行相互关联,并且总是一起查询,但确实包含不同的信息(尽管许多列之间包含相似的信息)类似的行)

从这个意义上说,在我看来,在 Oracle 中以某种方式将多行压缩为包含单个公共 recordID 并始终一起存储在磁盘上的单行会更有效,因为它们总是被插入、删除、查询并一起提取。对于这种类型的表,是否可以使用某种行压缩,以便这些相关行不被视为单独的行以获得更好的性能?

更新:一个例子如下

Field1  Field2  Field3
1       1       A
1       2       B
1       3       C
2       4       D
2       5       E

在此示例中,我总是将前三行插入和查询在一起(因为它们共享 Field1 值)。它们是独立的数据片段,但它们永远不会相互分离。有没有办法将它们作为一个组插入、存储、索引和提取,同时将它们保持为单独的数据行?

【问题讨论】:

  • 你能提供一些简单的例子吗?几乎听起来您正试图将所有内容放在一个表中,而它可能应该放在几个较小的表中。要获得“一切都在一个地方”,您可以根据情况使用视图(或物化视图)。
  • 谢谢,我用一个例子更新了原帖。但是,创建子表并不合适,因为它们只是通常不会重复的随机数据。子表实际上与我认为的原始表大小相同。

标签: oracle


【解决方案1】:

如果您使用的是 Exadata,那么您可以选择 Exadata 混合列压缩。

http://www.oracle.com/technetwork/database/exadata/ehcc-twp-131254.pdf

如果您不在 Exadata 上,您仍然可以使用 OLTP 压缩。

http://allthingsoracle.com/compression-in-oracle-part-3-oltp-compression/

【讨论】:

  • 我不认为 OP 的意思是标准技术意义上的“压缩”......你读过他的问题吗?
  • 是的,我阅读了这个问题,并认为建议的压缩技术在一定程度上有助于实现所需的目标。
猜你喜欢
  • 2016-09-02
  • 2018-11-24
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多