oracle数据库:Oracle数据库10g中的分区功能来源: 发布时间:星期二, 2009年5月5日 浏览:0次 评论:0
="t18">
Oracle 分区功能可以提高许多应用可治理性、性能和可用性通过分区功能可以将表、索引和索引组织表进步细分为段从而能够更精确地治理和访问这些数据库对象Oracle 提供了种类繁多分区方案以满足每种业务要求
而且在 SQL 语句中分区是完全透明所以该功能几乎可应用于任何应用
分区功能优势
分区功能通过改善可治理性、性能和可用性从而为各式应用带来了极大好处通常分区可以使某些查询以及维护操作性能大大提高此外,分区还可以极大简化常见治理任务通过分区,数据库设计人员和治理员能够解决前沿应用带来些难题分区是构建千兆字节数据系统或超高可用性系统要害工具
分区功能基本知识
分区功能能够将表、索引或索引组织表进步细分为段这些数据库对象段叫做分区每个分区有自己名称还可以选择自己存储特性从数据库治理员角度来看个分区后对象具有多个段这些段既可进行集体治理也可单独治理这就使数据库治理员在治理分区后对象时有相当大灵活性但是从应用角度来看分区后表和非分区表完全相同使用 SQL DML 命令访问分区后表时无需任何修改
表分区是通过“分区键”来实现分区键指是些列这些列决定了某行所在分区Oracle 数据库 10g 提供了 6项技术用于对表进行分区:
范围分区
每个分区都由个分区键值范围指定(对于个以日期列作为分区键表“2005 年 1 月”分区包含分区键值为从“2005 年 1 月 1 日”到“2005 年 1 月 31 日”行)
列表分区
每个分区都由个分区键值列表指定(对于个地区列作为分区键表“北美”分区可能包含值“加拿大”“美国”和“墨西哥”)
散列分区
将散列算法用于分区键来确定指定行所在分区
组合范围散列分区
范围和散列分区技术组合通过该组合首先对表进行范围分区然后针对每个单独范围分区再使用散列分区技术进步细分索引组织表只能进行范围分区
组合范围列表分区
范围和列表分区技术组合通过该组合首先对表进行范围分区然后针对每个单独范围分区再使用列表分区技术进步细分索引组织表可以按范围、列表或散列进行分区
Oracle 数据库 10g 还提供了 3种类型分区索引:
本地索引
本地索引是其分区方式和其所在基础表分区方式模样索引本地索引每个分区仅对应于其所在基础表个分区
全局分区索引
全局分区索引是使用区别于其所在表分区键进行分区索引其所在表可以是分区表或非分区表全局分区索引可以使用范围或散列分区进行分区例如某个表可以按月份进行范围分区因此具有十 2个分区而该表上索引则可以使用区别分区键进行范围分区从而具有区别分区数量 全局非分区索引
全局非分区索引基本上和非分区表索引样索引结构是不分区
Oracle 提供了系列丰富技术可用于对表、索引和索引组织表进行分区因此可以针对任何业务环境中任何应用进行最佳分区 Oracle 还提供套完整 SQL 命令用于治理分区表其中包括添加新分区、删除分区、分拆分区以及合并分区命令
用分区功能提高可治理性
通过 Oracle 分区功能可将表和索引分成更多、更小可治理单元从而使数据库治理员能以“化整为零个个击破”方式治理数据
使用分区功能维护操作可集中于表特定部分例如数据库治理员可以只对表部分做备份而不必对整个表做备份对整个数据库对象维护操作可以在每个分区基础上进行从而将维护工作分解成更轻易治理小块
利用分区功能提高可治理性个典型使用方法是支持数据仓库中‘滚动视窗’加载进程假设数据库治理员每周向表中加载新数据可以对该表进行范围分区使每个分区包含周数据这样加载进程只是简单地添加新分区添加个分区操作比修改整个表效率高很多 DBA 不需要修改任何其他分区
用分区功能提高性能
由于限制了所检查或操作数据数量同时支持并行任务执行Oracle 分区功能实现了性能上增益这些特性包括:
分区修整
分区修整是用分区功能提高性能最简单最有价值手段分区修整经常能够将查询性能提高几个数量级例如假设某个应用包含个存储订单历史记录 Orders 表并且此表已按周分区查询周订单只需访问该订单表个分区假如该订单表包含两年历史记录这个查询只需要访问个分区而不是百零 4个该查询执行速度分区修整而有可能快百倍分区修整能和所有其他 Oracle 性能特性协作Oracle 能将分区修整功能和任何索引技术、联接技术或并行访问思路方法结合使用
分区智能联接
分区功能可以通过称为分区智能联接技术提高多表联接性能当两个表要联接在起而且每个表都用联接键来分区时就可以使用分区智能联接分区智能联接将大型联接分解成较小发生在各个分区间联接从而用较少时间完成全部联接这就给串行和并行执行都能带来显著性能改善 用分区功能提高可用性 分区数据库对象具有分区独立性该分区独立性特点可能是高可用性战略个重要部分例如假如分区表个分区不能用但该表所有其他分区仍然保持在线并可用那么这个应用可以继续针对该分区表执行查询和事务处理只要不是访问不可用分区数据库操作仍然能够成功运行 数据库治理员可以指定各分区存放在区别表空间里从而让治理员隔离其它表分区针对单个分区进行备份和恢复操作还有分区功能可以减少计划停机时间由于分区功能改善了性能使数据库治理员能用相对较少时间完成大型数据库对象维护工作 未来发展方向 自从引入分区技术以来Oracle 公司在每次推出重要版本时都会增加新分区思路方法Oracle8 引入了范围分区功能Oracle8i 引入了散列和组合范围散列分区功能Oracle9i 引入了列表分区功能在最新版本 Oracle 数据库 10g 中则增强了用于索引组织表和全局分区索引分区策略并且扩展了其用于所有分区维护操作并发索引维护功能Oracle 公司致力于不断完善分区技术确保满足所有业务需求 结论 具有 Oracle 分区功能 Oracle 数据库 10g 可以显著增强几乎任何数据库应用可治理性、性能和可用性分区功能可用于前沿应用分区功能确实能够成为保障这些应用成功要害技术成分同时分区功能也可用于较为普通数据库应用来简化这些应用治理工作降低治理成本 0
相关文章
读者评论发表评论 |
|