Oracle对现有的表建立表分区,可能会有什么风险,特别是程序端。
展开全部
表分区的优点不多说了,1、改善查询性能;2、增强可用性;3、维护方便;4、均衡I/O。
这里主要说下影响:
1、已经存在的表不能直接转化为分区表,需要重建,重建涉及分区表结构的重建和索引、约束的重建,如果存在主从表外键关系或者有触发器,重建需要做比较详细的规划测试;
2、需要根据情况增加部分分区索引,以提高分区内的性能;
3、表分区以后,对插入操作会有一定的影响;
4、表分区后,对现有应用基本没有影响,仍然可以继续使用。但是为了提高系统性能,应当针对表分区做适当优化,这个工作需要DBA和开发人员共同完成。DBA需要根据应用的查询需求调整分区表的索引等结构,应用也需要根据分区表调整查询方式,使性能达到最优。
5、后续的运维,如果根据时间分区,以后工作中可能需要定期手工增加分区或者至少需要定期监控分区是否自动建立,时间久远的分区可能需要隔离迁移转历史库;如果根据单位进行分区,当单位发生增加合并拆分,分区的变更也是一项需要考虑的工作。
能想到的就这些,仅供参考
这里主要说下影响:
1、已经存在的表不能直接转化为分区表,需要重建,重建涉及分区表结构的重建和索引、约束的重建,如果存在主从表外键关系或者有触发器,重建需要做比较详细的规划测试;
2、需要根据情况增加部分分区索引,以提高分区内的性能;
3、表分区以后,对插入操作会有一定的影响;
4、表分区后,对现有应用基本没有影响,仍然可以继续使用。但是为了提高系统性能,应当针对表分区做适当优化,这个工作需要DBA和开发人员共同完成。DBA需要根据应用的查询需求调整分区表的索引等结构,应用也需要根据分区表调整查询方式,使性能达到最优。
5、后续的运维,如果根据时间分区,以后工作中可能需要定期手工增加分区或者至少需要定期监控分区是否自动建立,时间久远的分区可能需要隔离迁移转历史库;如果根据单位进行分区,当单位发生增加合并拆分,分区的变更也是一项需要考虑的工作。
能想到的就这些,仅供参考
更多追问追答
追问
那这对我的代码有什么需要改动的吗?或者说不改动可能会出现什么风险呢,目前我是没发现有什么影响的,会不会出现程序中某些查询是写死的,分区之后会出现一些状况呢。
追答
对使用没有影响。最好对查询做优化,毕竟分区就是因为数据量太大了,查询效率低是速度慢的直接原因。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询