WEB开发网
开发学院数据库Oracle 优化数据库大幅度提高Oracle的性能 阅读

优化数据库大幅度提高Oracle的性能

 2007-05-11 12:23:06 来源:WEB开发网   
核心提示: (3)内存2G,SGA可以考虑分配1.2G,优化数据库大幅度提高Oracle的性能(2),共享池300M到500M,剩下的给数据块缓冲区,有主键)首先在SQLPLUS中打开自动查询执行计划功能,(第一次要执行RDBMSADMINutlxplan.sql来创建PLAN_TABLE这个表)SQ

(3)内存2G,SGA可以考虑分配1.2G,共享池300M到500M,剩下的给数据块缓冲区。

(4)内存2G以上:共享池300M到500M就足够啦,再多也没有太大帮助;(Biti_rainy有专述)数据缓冲区是尽可能的大,但是一定要注意两个问题:一是要给操作系统和其他应用留够内存,二是对于32位的操作系统,Oracle的SGA有1.75G的限制。有的32位操作系统上可以突破这个限制,方法还请看Biti的大作吧。

二.分析表和索引,更改优化模式

Oracle默认优化模式是CHOOSE,在这种情况下,如果表没有经过分析,经常导致查询使用全表扫描,而不使用索引。这通常导致磁盘I/O太多,而导致查询很慢。如果没有使用执行计划稳定性,则应该把表和索引都分析一下,这样可能直接会使查询速度大幅提升。分析表命令可以用ANALYZE TABLE 分析索引可以用ANALYZE INDEX命令。对于少于100万的表,可以考虑分析整个表,对于很大的表,可以按百分比来分析,但是百分比不能过低,否则生成的统计信息可能不准确。可以通过DBA_TABLES的LAST_ANALYZED列来查看表是否经过分析或分析时间,索引可以通过DBA_INDEXES的LAST_ANALYZED列。

下面通过例子来说明分析前后的速度对比。(表CASE_GA_AJZLZ大约有35万数据,有主键)首先在SQLPLUS中打开自动查询执行计划功能。(第一次要执行RDBMSADMINutlxplan.sql来创建PLAN_TABLE这个表)  SQL> SET AUTOTRACE ON
  SQL>SET TIMING ON

通过SET AUTOTRACE ON 来查看语句的执行计划,通过SET TIMING ON 来查看语句运行时间。  SQL> select count(*) from CASE_GA_AJZLZ;
  COUNT(*)
  ----------
  346639
  
  已用时间: 00: 00: 21.38
  
  Execution Plan
    0 SELECT STATEMENT Optimizer=CHOOSE
  1 0 SORT (AGGREGATE)
  2 1 TABLE ACCESS (FULL) OF 'CASE_GA_AJZLZ'
  ……………………

上一页  1 2 3 4  下一页

Tags:优化 数据库 大幅度

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接