网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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教程,数据库安全,数据库文摘
本月文章推荐
.oracle9i中list partitioning方法.
.Oracle Spatial 简介.
.ORACLE WEBDB Q 与 A.
.Oracle RMAN快速入门指南.
.Oracle数据库安全策略分析(一).
.Oracle数据库性能优化技术.
.Oracle中导入文本数据的方法.
.Oracle 新手必读,不要错过噢.
.vsftpd frequently asked questi.
.Oracle9i初始化参数中文说明14.
.Oracle10g SQL*PLUS 的一些特性.
.Oracle收购TimesTen 提高数据库软.
.oracle数据库备份与恢复.
.tivoli+rman实现自动将rman备份写.
.分析list_head结构&建立双向链表.
.TeamDBA发布数据库恢复和确认服务.
.Oracle弱智900问十.
.Oracle数据库常见问题答疑一.
.Oracle Database 10 g : 为 DBA .
.ORACLE数据库备份.

创建和使用分区的表

发表日期:2008-2-9



   在Oracle里假如碰到非凡大的表,可以使用分区的表来改变其应用程序的性能。
  
   以system身份登陆数据库,查看 v$option视图,假如其中Partition为TRUE,则支持分区功能;否则不支持。Partition有基于范围、哈希、综和三种类型。我们用的比较多的是按范围分区的表。
  
   我们以一个2001年开始使用的留言版做例子讲述分区表的创建和使用:
  
  1 、以system 身份创建独立的表空间(大小可以根据数据量的多少而定)
  
  create tablespace g_2000q4 datafile '/home/oradata/oradata/test/g_2000q4.dbf' size 50M default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 1);
  
  create tablespace g_2001q1 datafile '/home/oradata/oradata/test/g_2001q1.dbf' size 50M default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 1);
  
  create tablespace g_2001q2 datafile '/home/oradata/oradata/test/g_2001q2.dbf' size 50M default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 1);
  
  2 、用EXPORT工具把旧数据备份在guestbook.dmp中
  
  把原来的guestbook表改名
  
  alter table guestbook rename to guestbookold;
  
  以guestbook 身份创建分区的表
  
  create table guestbook(
   id number(16) primary key,
   username varchar2(64),
   sex varchar2(2),
   email varchar2(256),
   expression varchar2(128),
   content varchar2(4000),
   time date,
   ip varchar2(64)
  )
   partition by range (time)
   (partition g_2000q4 values less than (to_date('2001-01-01','yyyy-mm-dd'))
   tablespace g_2000q4
   storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0),
   partition g_2001q1 values less than (to_date('2001-04-01','yyyy-mm-dd'))
   tablespace g_2001q1
   storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0),
   partition g_2001q2 values less than (to_date('2001-07-01','yyyy-mm-dd'))
   tablespace g_2001q2
   storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0)
   );
  
  (说明:分区的名称可以和表空间的名称不一致。这里是每个季度做一个分区,当然也可以每个月做一个分区)
  
  3、IMPORT导入数据,参数ignore=y
  
  4、分区表的扩容:
  
  到了2001 年下半年,建立新的表空间:
  
  create tablespace g_2001q3 datafile '/home/oradata/oradata/test/g_2001q3.dbf' size 50m default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 1);
  
  为表添加新分区和表空间:
  
  alter table guestbook add partition g_2001q3
  values less than (to_date('2001-10-01','yyyy-mm-dd')
  tablespace g_2001q3
  storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0);
  
  5、删除不必要的分区
  
  将2000年的数据备份(备份方法见 6、EXPORT 分区),将2000年的分区删除。

  
  alter table guestbook drop partion g_2000q4;
  
  删除物理文件
  
  %rm /home/oradata/oradata/test/g_2000q4.dbf
  
  6、EXPORT 分区:
  
  % exp guestbook/guestbook_passWord tables=guestbook:g_2000q4 rows=Y file=g_2000q4.dmp
  
  7、IMPORT分区:
  
  例如在2001 年,用户要查看2000 年的数据,先创建表空间
  
  create tablespace g_2000q4 datafile '/home/oradata/oradata/test/g_2000q4.dbf' size 50m default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 1);
  
  为表添加新分区和表空间:
  
  alter table guestbook add partition g_2000q4
  values less than (to_date('2001-01-01','yyyy-mm-dd')
  tablespace g_2001q3
  storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0);
  
  导入数据
  
  %imp guestbook/guestbook_password file=g_2000q4.dmp tables=(guestbook:g_2000q4) ignore=y
  
  (说明:假如不指明导入的分区,imp会自动按分区定义的范围装载数据)
上一篇:Delphi 3.0中连接数据库的三种方式 人气:783
下一篇:使用OLE对象访问Oracle数据库 人气:621
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐