当前位置: 首页 > 图文教程 > 数据库 > Oracle > 合理设置数据库以提高查询统计速度

Oracle
Oracle常用dump命令,记录一下备查。
Oracle存储过程之数据库中获取数据实例
Oracle存储过程入门学习基本语法
java.sql.SQLException: 内部错误: Unable to construct a Datum from the specified input
Oracle 函数大全[字符串函数,数学函数,日期函数]
Oracle 自增(auto increment) 或 标识字段的建立方法
oracle 存储过程加密的方法
Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁
Oracle 忘记密码的找回方法
Oracle 数据库导出(exp)导入(imp)说明
oracle 常见等待事件及处理方法
Oracle9i 动态SGA,PGA特性探索
PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法
ORACLE 数据库RMAN备份恢复
用Mimer Validator检查SQL查询
oracle执行cmd的实现方法
ORACLE 正则解决初使化数据格式不一致
Oracle 触发器的使用小结
oracle 时间格式的调整
Oracle 10g的DBA无法登录解决方案

Oracle 中的 合理设置数据库以提高查询统计速度


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-31   浏览: 99 ::
收藏到网摘: n/a

    大型数据库系统中往往要用到查询统计,但是对于数据量大的系统,用户在进行复杂的查询统计时往往感到速度很慢,不能满足应用要求,这就要求我们在设计数据库系统时进行合理设置,提高查询统计的速度。本文结合笔者的项目开发经验,阐述具体的设置方法。
    以oracle7.33数据库系统为例,我们在开发大型oracle数据库系统时结合项目的特点,本着安全、高效的原则对数据库进行了一些物理设计,从而大大提高了数据库的查询统计速度。总结为如下几点:
1)扩大数据表空间到500M,用于存放本系统的数据;
2)段盘区的初始大小为10K,增长大小为10K,增长幅度为1;
3)用户临时空间增大40M;
4)系统临时表空间和回滚段表空间增大40M,并且新建4个回滚段;
5)需要经常联结查询,而且数据量又大的库存表、名录表、收发料表放在一簇内;
6)提供定时备份,备份文件放在另外的机器上。
设置数据表空间的SQL语句如下:
  1
700)this.width = 700;if(this.height > 700) this.height = 700;" border=0>
    
增加系统临时表空间和回滚段表空间的SQL语句如下:

  2
700)this.width = 700;if(this.height > 700) this.height = 700;" border=0>   
将数据空间设置在指定的数据文件的SQL语句如下:
  3
700)this.width = 700;if(this.height > 700) this.height = 700;" border=0>
   
设置五个回滚段的SQL语句如下:
 
  4
700)this.width = 700;if(this.height > 700) this.height = 700;" border=0>

 
将数据量大的库存表等放在一簇内的SQL语句如下:
  5
700)this.width = 700;if(this.height > 700) this.height = 700;" border=0> 

   系统的基础数据库存表、名录表大约有数据80M;一个单位一般每年收发300次,收发料单大约有数据50M;系统冗余数据100M,系统辅助数据10M;因此,系统总共需要空间大约是240M,现在系统开辟数据空间500M,完全满足存储要求。由于系统使用了冗余数据,在查询常用数据时,避免了多表联结查询的情况,这样,虽然使用了更多的存储空间,但查询效率大幅度提高;同时,系统将需要经常联结查询的数据放在一簇,即将存放这些数据的空间在物理上相邻,这样也使查询速度大大提高。
    另外在oracle7.33数据库的Database目录下有一个Initorcl.ora文件,改变其中的设置也可以提高查询统计速度。该文件的内容如下:
6
700)this.width = 700;if(this.height > 700) this.height = 700;" border=0>
7
700)this.width = 700;if(this.height > 700) this.height = 700;" border=0>
8
700)this.width = 700;if(this.height > 700) this.height = 700;" border=0>