Oracle表和索引分区—风险和缺点

Oracle表和索引分区—风险和缺点,oracle,oracle11g,relational-database,database-performance,partitioning,Oracle,Oracle11g,Relational Database,Database Performance,Partitioning,我在数据库中有大型的未分区表(100GB+),为了提高性能,我考虑对它们进行分区,或者仅仅是索引。数据是定期输入的,并且是按日期选择的,所以我认为按创建日期的月份进行范围划分将是一个不错的选择 我正在读一本关于它的书,它看起来很有前途。 但我有两个问题,我找不到答案(我想我的谷歌技能正在下降) 第一个是: 在oracle中创建分区表和索引的风险和缺点是什么,特别是在如此大的活动表上?有什么我应该知道的吗 第二: 如何在现有和未分区的表或索引上创建分区 除了对数据进行分区所需的中断(见下文)之外,

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

我正在读一本关于它的书,它看起来很有前途。 但我有两个问题,我找不到答案(我想我的谷歌技能正在下降)

第一个是:

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

第二:

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

  • 除了对数据进行分区所需的中断(见下文)之外,我看到的主要风险是,如果您决定使用本地索引对表和索引进行分区,那么对于不依赖分区键(日期)的查询,您的性能将不会很好。但在这种情况下,您可以使用全局索引,并返回到类似的性能

  • 到目前为止,从未分区表创建分区表的最简单方法是使用新名称和所有分区存储详细信息,删除未分区表并将新表重命名为旧表。显然,这需要仔细的准备,以及可能持续几分钟的停机:)

  • 除了对数据进行分区所需的中断(见下文)之外,我看到的主要风险是,如果您决定使用本地索引对表和索引进行分区,那么对于不依赖分区键(日期)的查询,您的性能将不会很好。但在这种情况下,您可以使用全局索引,并返回到类似的性能

  • 到目前为止,从未分区表创建分区表的最简单方法是使用新名称和所有分区存储详细信息,删除未分区表并将新表重命名为旧表。显然,这需要仔细的准备,以及可能持续几分钟的停机:)


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