动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.PL/SQL的一些语法.
.怎么样做到限时登录.
.说一说Oracle的优化器(Optimizer).
.Oracle里面使用临时表解决表冲突.
.手工创建oracle数据库.
.Oracle job 管理.
.怎样在LINUX下设置KPPP拨号上网.
.在ORalce 中,怎么判断两个时间段.
.ORACLE SQL性能优化系列 (七).
.Windows下Oracle数据库进程的启动.
.RedHat 日志文件.
.ORACLE数据库常见问题诊断方法.
.Oracle ORA-00903错误具体原因分.
.oracle的net configure assistan.
.Oracle 11g for linux X86的SILE.
.How to Install Orabm.
.Qmail如何设置一个简单的邮件列.
.Oracle电子商务套件11i10首次亮相.
.Oracle认证资料.
.RESETLOGS后没有备份情况下的数据.

关于oracle大表分区的一点点心得

发表日期:2008-2-9 |



  数据库大表的优化:采用蔟表(clustered tables)及蔟索引(Clustered Index)
  
  蔟表和蔟索引是Oracle所提供的一种技术,其基本思想是将几张具有相同数据项、并且经常性一起使用的表通过共享数据块(data block)的模式存放在一起。各表间的共同字段作为蔟键值(cluster key),数据库在访问数据时,首先找到蔟键值,以此同时获得若干张表的相关数据。蔟表所能带来的好处是可以减少I/O和减少存储空间,其中我更看重前者。采用表分区(partition)
  
  表分区技术是在超大型数据库(VLDB)中将大表及其索引通过分区(patition)的形式分割为若干较小、可治理的小块,并且每一分区可进一步划分为更小的子分区(sub partition)。而这种分区对于应用来说是透明的。通过对表进行分区,可以获得以下的好处:
  
  1)减少数据损坏的可能性。
  2)各分区可以独立备份和恢复,增强了数据库的可治理性。
  3)可以控制分区在硬盘上的分布,以均衡IO,改善了数据库的性能。
  
  蔟表与表分区技术的侧重点各有不同,前者侧重于改进关联表间查询的效率,而表分区侧重于大表的可治理性及局部查询的性能。而这两项对于我的系统来说都是极为重要。由于本人技术限制,目前尚不确定两者是否可以同时实现,有那位在这方面有经验的给点指导将不胜感激。 
  
  在两者无法同时实现的情况下,应依照需实现的功能有所取舍。综合两种模式的优缺点,我认为采用表分区技术较为适用于我们的应用。
  
  Oracle的表分区有以下几种类型:
  1)范围分区:将表按某一字段或若干个字段的取值范围分区。
  2)hash分区:将表按某一字段的值均匀地分布到若干个指定的分区。
  3)复合分区:结合了前面两种分区类型的优点,首先通过值范围将表进行分区,然后以hash模式将数据进一步均匀分配至物理存储位置。
  
  综合考虑各项因素,以第三种类型最为优越。(本人实在技术有限仅采用了第1种范围分区,因为比较简单,便于治理)
  
  优化的具体步骤:
  1.确定需要优化分区的表:
  
  经过对系统数据库表结构和字段,应用程序的分析,现在确定那些大表需要进行分区:
  
  如帐户交易明细表acct_detail.
  2.确定表分区的方法和分区键:
  分区类型:采用范围分区。
  分 区 键:
  按trans_date(交易时间)字段进行范围分区.
  
  3.确定分区键的分区范围,及打算分多少分区:
  如:帐户交易明细表acct_detail.
  
  根据字段(trans_date)分成一下分区:
  1).分区1:09/01/2003  
  2).分区2:10/01/2003  
  3).分区3:11/01/2003  
  4).分区4:12/01/2003  
  5).分区5:01/01/2004 
  6).分区6:02/01/2004 
    该表明显需要在以后增加分区。
  4.建立分区表空间和分区索引空间
   1).建立表的各个分区的表空间: 
    1.分区1:crm_detail_200309
    CREATE TABLESPACE crm_detail_200309 DATAFILE 
    ‘/u1/oradata/orcl/crm_detail_20030901.dbf’ 
    SIZE 2000M EXTENT MANAGEMENT LOCAL UNIFORM size 16M;
    其它月份以后同以上(我在此采用oracle的表空间本地治理的方法)。
  
   2). 建立分区索引表空间
    1.分区1:index_detail_200309
    CREATE TABLESPACE index_detail_200309 DATAFILE 
    ‘/u3/oradata/orcl/index_detail_20030901.dbf’ 
    SIZE 2000M EXTENT MANAGEMENT LOCAL UNIFORM size 16M;
  5.建立基于分区的表:
    create table table name
    (
    ........
    
    enable row movment        --此语句是能修改行分区键值,也就是如不添加该句不能修改记录的分区键值,不能使记录分区迁移
    PARTITION  BY  RANGE (TRANS_DATE)
    (
      PARTITION   crm_detail_200309 VALUES LESS THAN 
  (TO_DATE (‘09/01/2003’,’mm/dd/yyyy’ 
  TABLESPACE  crm_detail_200309,
      其他分区.....
     ;
  6.建立基于分区的索引:
   create index  index_name on table_name (分区键+…)
    global                 --这里是全局分区索引,也可以建本地索引
    PARTITION  BY  RANGE (TRANS_DATE)
    (
     PARTITION   index_detail_200309 VALUES LESS THAN 
     (TO_DATE ('09/01/2003','mm/dd/yyyy' ) 
     TABLESPACE  index_detail_200309,
     其他索引分区...
    ;
    
  对表的分区就这样完成了,第一次主要确定表分区的分区策约是最重要的,可我觉得对表分区难在以后对表分区的治理上面,因为随着数据量的增加,表分区必然存在删除,扩容,增加等。
在这些过程中还牵涉到全局等索引,因为对分区表进行ddl操作为破坏全局索引,故全局索引必须在ddl后要重rebuild.
  
  ------------------------签----名----
  $-)
    movb  $0x88,%ah
    int  $0x15
    movw  %ax,(02)
    movw  $SYSSEG, %ax
上一篇:一个小巧但好用的数据库压缩算法 人气:954
下一篇:构建实用程序验证代码质量的内部详情 人气:472
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 HDWiki v4.0.1 bulid 081007 UTF
2008-10-7 迅易评选投票管理系统 v10.0
2008-10-7 HDWiki v4.0.1 bulid 081007 GBK
2008-10-7 Bitrac单用户博客 v1.14 bulid 0
2008-10-7 OpenX(广告管理系统) v2.6.2 多国
2008-10-7 乐铺网店系统免费普及版 v3.41
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成