Oracle table 和索引分区 - 风险和缺点
Oracle table and index partitioning - risk and disadvantages
我在数据库 (100GB+) 中有大量未分区的 table,为了提高性能,我考虑对它们进行分区,或者可能只是索引。数据定期进入,并按日期选择,所以我认为按创建日期月份进行范围分区是个不错的选择。
我正在阅读 oracle table and index partitioning,它看起来很有前途。
但是我有两个问题,我找不到答案(我认为我的 google 技能正在下降)。
第一个是:
在 Oracle 中创建分区的 table 和索引有哪些风险和缺点,尤其是在如此大且活跃的 table 上?有什么我应该知道的吗?
第二个:
如何在现有和未分区的 table 或索引上创建分区?
除了对数据进行分区所需的中断(见下文)之外,我看到的主要风险是,如果您决定使用本地索引对 table 和索引进行分区,您的性能对于不依赖分区键(日期)的查询来说不是很好。但是你可以在那种情况下使用全局索引,然后返回到类似的性能。
到目前为止,从未分区的 table 创建分区的最简单方法是使用 create table as select 和新名称以及所有分区存储详细信息,删除未分区的 table 并将新的 table 重命名为旧的 table 。显然,这需要仔细准备,并且可能会持续几分钟的中断:)
我在数据库 (100GB+) 中有大量未分区的 table,为了提高性能,我考虑对它们进行分区,或者可能只是索引。数据定期进入,并按日期选择,所以我认为按创建日期月份进行范围分区是个不错的选择。
我正在阅读 oracle table and index partitioning,它看起来很有前途。 但是我有两个问题,我找不到答案(我认为我的 google 技能正在下降)。
第一个是:
在 Oracle 中创建分区的 table 和索引有哪些风险和缺点,尤其是在如此大且活跃的 table 上?有什么我应该知道的吗?
第二个:
如何在现有和未分区的 table 或索引上创建分区?
除了对数据进行分区所需的中断(见下文)之外,我看到的主要风险是,如果您决定使用本地索引对 table 和索引进行分区,您的性能对于不依赖分区键(日期)的查询来说不是很好。但是你可以在那种情况下使用全局索引,然后返回到类似的性能。
到目前为止,从未分区的 table 创建分区的最简单方法是使用 create table as select 和新名称以及所有分区存储详细信息,删除未分区的 table 并将新的 table 重命名为旧的 table 。显然,这需要仔细准备,并且可能会持续几分钟的中断:)