创建表空间语句

来源:互联网 发布:可以买药送药的软件 编辑:程序博客网 时间:2024/05/17 15:35
/*分为四步 *//*第1步:创建临时表空间  */create temporary tablespace user_temp  tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m  autoextend on  next 50m maxsize 20480m  extent management local;   /*第2步:创建数据表空间  */create tablespace user_data  logging  datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' size 50m  autoextend on  next 50m maxsize 20480m  extent management local;   /*第3步:创建用户并指定表空间  */create user username identified by password  default tablespace user_data  temporary tablespace user_temp;   /*第4步:给用户授予权限  */grant connect,resource,dba to username;
注:1、临时表空间的作用:

    临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。

    当临时表空间不足时,表现为运算速度异常的慢,并且临时表空间迅速增长到最大空间(扩展的极限),并且一般不会自动清理了。

2、临时表空间暴涨原因:迅速增长的原因:

    一般原因是sql算法不正确,可能导致出现了迪卡尔积。

    另外一个原因是视图的创建问题。Oracle数据库中多张表联合查询时,极限的表单数量为4张,一般将以为3张!有时需要大于4张表联 合查询 时,怎么办呢?可以建立子视图:

 如view1(联合table0,table1,table2),view2(联合table0,table3,table4),view3(联合table0,table5,table6)

然后将view1、view2、view3联合成view4。这样可以解决临时表空间迅速增长的问题!

3、临时表空间异常增涨后的处理

    临时表空间异常暴涨后,极大的占用了磁盘空间,同时会影响普通查询的速度,以下方法可以达到清理临时表空间数据文件temp.dbf的大小

方法一、在系统不繁忙的时候,执行命令缩减临时表空间数据文件的尺寸

     alter database tempfile 'D:\ORACLE\PRODUCT\10.1.\ORADATA\ORCL\TEMP01.DBF' resize 10M;    方法二、

     a、创建中转临时表空间

        create temporary tablespace temp2 tempfile 'd:\oracle\product\10.2.0\oradata\ncpec\temp02.dbf' size 512m reuse autoextend on next 640k maxsize unlimited   

      

     b、改变缺省临时表空间为刚刚创建的新临时表空间temp2           alter database default temporary tablespace temp2;

     c、删除原有的临时表空间以及数据文件

      drop tablespace temp including contents and datafiles;       

     d、重新创建临时表空间

      create temporary tablespace temp tempfile 'd:\oracle\product\10.2.0\oradata\ncpec\temp01.dbf' size 512m reuse autoextend on next 640k maxsize unlimited;   

     e、重置缺省临时表空间为新建的temp表空间                   alter  database  default  temporary  tablespace  temp;

       f、删除中转用临时表空间

            drop  tablespace  temp2  including  contents  and  datafiles;

  4、临时表空间使用注意:      a、临时表空间是用于在进行排序操作(如大型查询,创建索引和联合查询期间存储临时数据),每个用户都可以有一个临时表空间      b、对于大型操作频繁,(大型查询,大型分类查询,大型统计分析等),应指定单独的临时表空间,以方便管理      c、分配用户单独临时表空间,一般是针对大型产品数据库,OLTP数据库,数据库仓库。对于小型产品不需要单独制定临时表空间,使用默认临时表空间 注:如果临时表空间异常增涨很快,则要考虑是否应用的sql语句产生了笛卡儿积,可以通过stactpack 进行分析查出问题所在,从而保证数据库的正常运行

0 0
原创粉丝点击