【问题标题】:Oracle table and index partitioning - risk and disadvantagesOracle 表和索引分区 - 风险和缺点
【发布时间】:2017-04-22 05:58:19
【问题描述】:

我在数据库中有大型未分区表 (100GB+),为了能够提高性能,我考虑对它们进行分区,或者只是索引。数据定期进入,并按日期选择,所以我认为按创建日期的月份划分范围是一个不错的选择。

我正在阅读oracle table and index partitioning,它看起来很有希望。 但是我有两个问题,我找不到答案(我认为我的谷歌技能正在下降)。

第一个是:

在 oracle 中创建分区表和索引有哪些风险和缺点,尤其是在如此大的活动表上?有什么我应该知道的吗?

第二个:

如何在现有和未分区的表或索引上创建分区?

【问题讨论】:

  • 我认为随着时间的推移进行分区不会有很大风险。您应该尝试按月、季度、年或其他时间间隔进行分区。您可以将最旧的 ETL 存储到您的报告和存档存储中;这是一个自然历史分区。

标签: oracle oracle11g relational-database database-performance partitioning


【解决方案1】:
  1. 除了对数据进行分区所需的中断(见下文)之外,我看到的主要风险是,如果您决定使用本地索引对表和索引进行分区,那么对于不依赖于在分区键(日期)上。但在这种情况下,您可以使用全局索引,然后返回类似的性能。

  2. 到目前为止,从未分区表创建分区表的最简单方法是使用带有新名称和所有分区存储详细信息的 create table as select,删除未分区表并将新表重命名为旧的。显然,这需要仔细准备,并且可能会持续几分钟的中断:)

【讨论】:

    猜你喜欢
    • 2013-06-02
    • 2016-11-07
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    相关资源
    最近更新 更多