深入理解 Oracle 分区(2):分区方案中常见问题探讨
2013-04-22 12:32
260 查看
分区方案设计和实施是一门追求综合平衡、充满辩证统一的哲学、
也是经验和技术不断积累的艺术
然而、实际项目中、却漏洞频出、导致海量数据顷刻坍塌
㈠ 目标方面的误区
① 问题分析
在很多分区设计方案、其指导思想往往只考虑部分目标
特别是过分在意设计对性能的需求
而对分区在数据生命周期、数据备份恢复、高可用性等方面置若罔闻
② 正确策略
全面考量、综合平衡各个目标
建议指定目标优先级
㈡ 表分区方面的误区
① 问题分析
在实际项目中、很多分区方案只采用了Oracle Range 分区策略
对其他Oracle 分区技术运用较少
② 正确策略
进行分区表设计的正确策略应是充分了解Oracle各种分区技术的特点之后、
再结合具体应用需求进行针对性设计
比如:
对需要进行历史数据迁移的表、应尽量采用Range、List、Interval等、如话费清单数据
对不存在历史数据迁移需求的表、如用户资料信息、则可考虑采用HASH分区技术
㈢ 没有充分考虑应用设计和开发的误区
① 问题分析
分区方案设计时、没有对应用软件设计和开发进行充分调研、
特别是没有对重点SQL语句进行深入分析、导致这些操作无法使用分区技术
② 正确策略
应用需求分析是任何设计开发工作的基础
对应用软件设计和开发进行调研分析、特别是重点SQL进行深入分析
㈣ 分区表空间设计方面的误区
① 问题分析
在Oracle分区设计可指定每个分区的存储属性、特别是可在分区级进行表空间设计
但是很多项目中、在此方面存在较大的随意性、缺乏精细考虑和设计
这样将导致无法在表空间级进行与业务相关的数据管理工作
比如、在历史数据清理、数据发布等应用中、无法使用表空间迁移、并且无法结合分区交换、合并等技术
另外、在备份与恢复中、这样的分区也无法在表空间级进行按月的备份和恢复
② 正确策略
Oracle的分区表空间设计为大批量数据处理提供了良好的技术基础
只有充分理解表空间级的Oracle相关技术、才能在分区方案设计中权衡
总之、别把鸡蛋都往一个篮子里面放
㈤ 大批量数据处理中的误区
① 问题分析
在很多项目、设计和开发人员仍然在采用最原始的DML进行大批量数据处理、
不仅运行效率低下、而且会产生大量UNDO REDO、为备份恢复、资源管理增加负担
② 正确策略
大批量数据处理一定要想到分区技术
例如、通过表空间迁移和分区表技术(truncate、drop、add、exchange、merge、split等)的综合使用、
高效实现海量数据仓库加载的技术方案
㈥ 索引分区方面的误区
① 问题分析
在很多方案设计中、很少甚至没有对索引进行分区设计
或者、只是简单将所有分区索引设计成Local分区索引
② 正确策略
分区索引虽然难、但非常重要、切记随意设计!
比如:针对存在历史数据清理和归档需求的表、可设计成高可用性和可维护性较好的Local索引
而对不存在历史数据清理和归档的表、可设计成性能更好的Global Prefix索引
也是经验和技术不断积累的艺术
然而、实际项目中、却漏洞频出、导致海量数据顷刻坍塌
㈠ 目标方面的误区
① 问题分析
在很多分区设计方案、其指导思想往往只考虑部分目标
特别是过分在意设计对性能的需求
而对分区在数据生命周期、数据备份恢复、高可用性等方面置若罔闻
② 正确策略
全面考量、综合平衡各个目标
建议指定目标优先级
㈡ 表分区方面的误区
① 问题分析
在实际项目中、很多分区方案只采用了Oracle Range 分区策略
对其他Oracle 分区技术运用较少
② 正确策略
进行分区表设计的正确策略应是充分了解Oracle各种分区技术的特点之后、
再结合具体应用需求进行针对性设计
比如:
对需要进行历史数据迁移的表、应尽量采用Range、List、Interval等、如话费清单数据
对不存在历史数据迁移需求的表、如用户资料信息、则可考虑采用HASH分区技术
㈢ 没有充分考虑应用设计和开发的误区
① 问题分析
分区方案设计时、没有对应用软件设计和开发进行充分调研、
特别是没有对重点SQL语句进行深入分析、导致这些操作无法使用分区技术
② 正确策略
应用需求分析是任何设计开发工作的基础
对应用软件设计和开发进行调研分析、特别是重点SQL进行深入分析
㈣ 分区表空间设计方面的误区
① 问题分析
在Oracle分区设计可指定每个分区的存储属性、特别是可在分区级进行表空间设计
但是很多项目中、在此方面存在较大的随意性、缺乏精细考虑和设计
这样将导致无法在表空间级进行与业务相关的数据管理工作
比如、在历史数据清理、数据发布等应用中、无法使用表空间迁移、并且无法结合分区交换、合并等技术
另外、在备份与恢复中、这样的分区也无法在表空间级进行按月的备份和恢复
② 正确策略
Oracle的分区表空间设计为大批量数据处理提供了良好的技术基础
只有充分理解表空间级的Oracle相关技术、才能在分区方案设计中权衡
总之、别把鸡蛋都往一个篮子里面放
㈤ 大批量数据处理中的误区
① 问题分析
在很多项目、设计和开发人员仍然在采用最原始的DML进行大批量数据处理、
不仅运行效率低下、而且会产生大量UNDO REDO、为备份恢复、资源管理增加负担
② 正确策略
大批量数据处理一定要想到分区技术
例如、通过表空间迁移和分区表技术(truncate、drop、add、exchange、merge、split等)的综合使用、
高效实现海量数据仓库加载的技术方案
㈥ 索引分区方面的误区
① 问题分析
在很多方案设计中、很少甚至没有对索引进行分区设计
或者、只是简单将所有分区索引设计成Local分区索引
② 正确策略
分区索引虽然难、但非常重要、切记随意设计!
比如:针对存在历史数据清理和归档需求的表、可设计成高可用性和可维护性较好的Local索引
而对不存在历史数据清理和归档的表、可设计成性能更好的Global Prefix索引
相关文章推荐
- 深入探讨oracle字符编码问题,关于NLS_LANG
- 详解Vuex常见问题、深入理解Vuex
- Java虚拟机常见的问题总结(基于深入理解Java虚拟机)
- oracle常见问题处理方案
- 操作系统学习常见疑惑问与答[编码实践部分]—问题1:org指令深入理解
- 深入理解Spring Redis的使用 (五)、常见问题汇总
- 深入理解 Oracle 分区(3):分区表和分区索引概述
- 深入理解Spring Redis的使用 (五)、常见问题汇总
- 深入理解 Oracle 分区(1):如何实施和评估分区
- 【初学者常见问题】深入理解“==”和equals()
- 【Box2D】深入探讨Box2D中ghost collision问题解决方案
- 深入探讨:oracle中方案的概念以及方案与数据库的关系
- 深入理解 Oracle 分区(3):分区表和分区索引概述
- 深入理解Spring Redis的使用 (五)、常见问题汇总
- 分区、内存-深入理解Oracle表(5):三大表连接方式详解之Hash Join的定义,原-by小雨
- Oracle启动模式及其常见问题探讨
- 使用Oracle 11g分区自动扩展的功能的一个小问题
- 深入理解C语言----标准I/O小结(缓冲区,I/O函数及其他相关问题)
- ORACLE常见问题1000问(之十二)