数据库复习日志 oracle 10g 数据库性能优化的调整 1

oracle 10g 数据库性能优化的调整
1.内存优化
 1.1 数据缓冲调整
  查看数据库内存参数
  select name,value from v$parameter where name in  ('db_cache_size','db_block_size','shared_pool_size','sort_area_size');
  查看数据缓冲区数据存储状况(物理读的数据越接近于0,说明越多在缓冲区读出)
  select name,value from v$sysstat
  where name in ('db block gets','consistent gets','physical reads');
1 db block gets 7071300
2 consistent gets 146208357
3 physical reads 23213790

 1.2 共享池调整
 如果运行较多的SQL PL/SQL则较多用到共享池。 由shared_pool_size 参数决定的
  select to_number(v$parameter.value) value,
   v$sgastat.bytes,
   (v$sgastat.bytes/v$parameter.value)*100  as "占比"
  from v$sgastat,v$parameter
  where v$sgastat.name='free_memory' and
   v$parameter.name='shared_pool_size';
 1.3 日志缓冲调整
  如果内存资源十分大时,可以增加日志缓冲区
  select name,sum(gets),sum(misses)
  from v$latch
  where name like 'redo%'
  group by name;
  失败表示在进入日志缓冲区时存在等待。
 1.4 排序区调整
  用到以下语句的
  CREATE INDEX
  SELECT ...... ORDER BY
  SELECT ...... DISTINCT
  SELECT ...... GROUP BY
  SELECT ...... UNION
  参数SORT_AREA_SIZE用于设置排序区的大小
  select name,value from v$sysstat where name like '%sort%'
  然后算出失败率=SORT(DISKS)/SORT(MEMORY) *100% 这个应该5%以内。如果不是的话 调整SORT_AREA_SIZE

 

2.磁盘I/O优化与调整
  运用以下语句在数据库读写最繁忙的时候查询磁盘的读写情况
  select substr(a.file#,1,2) ,
   a.status,
   a.bytes,
   b.phyrds,
   b.phywrts,
   substr(a.name,1,50)
  from v$datafile a,v$filestat b
  where a.file#=b.file#
  调整后 I/O的竞争应该趋于平衡。


3.CPU调整问题
  
4.SQL语句优化问题
 4.1 分析SQL语句的执行过程
 4.2 将常用的实体驻留内存
 4.3 创建索引
 4.4 创建聚簇
 4.5 创建哈希索引
 4.6SQL优化器
5.数据库参数的动态统计
 
6.小结

你可能感兴趣的:(oracle,sql,数据库,优化,性能优化,磁盘)