• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
oraclestatspack实例
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
oraclestatspack实例
软件发布 oraclestatspack实例
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 认证考试 >> Oracle认证 >> Oracle指导 >> oraclestatspack实例

oraclestatspack实例

添加时间: 2008-4-27 20:07:08  作者: Oracle指导  阅读次数:32   来源: http://www.d9soft.com

       

——查找稀疏表(自由表失去平衡!)
  select
  substr(dt.table_name,1,10) c3,
  ds.extents c5,
  ds.bytes/1048576 c4,
  dt.next_extent/1048576 c8,
  (dt.empty_blocks*4096)/1048576 c7,
  (ds.bytes*4096)/1048576 c6,
  (avg_row_len*num_rows)/(db.blocks*4096) c10
  from sys.dba_segments ds ,
  sys.dba_tables dt
  where

  ——调整oracle数据库实例

  接下来我们要调整oracle数据库实例,以及查看所有影响性能的 参数,配置和设定用STATAPACK检测实例潜在的性能问题

  1.oracle实例概述

  2.调整oracle 数据缓冲区

  3.调整共享池概述

  4.调整库高速缓存

  5.调整oracle排序

  6.调整回滚段

  7.oracle 9i RAM 内存调整

  通常的角度看 oracle实例包括了两个组件: 系统全局区(SGA) 以及 oracle后台进程我们通常通过调整oracle参数来控制SGA和后台进程当oracle启动时,oracle就会使用malloc()命令去建立一个RAM内存区域,这个SGA通常也称为oracle区域oracle。DBA 可以控制SGA的规模,正确的SGA 管理 可以极大的影响性能。尽管初始化参数成百上千,但是只有很少的oracle9i参数对调整非常重要:
  buffer_pool_keep 这个数据缓冲池用于存储执行全表扫描的小表
  buffer_pool_recycle 这个池用来保存进行全表扫描的非常大的表的表块
  db_cache_size 这个参数会决定ORACLE SGA 中数据库块缓冲区的数量,它是oracle内存的最重要的参数
  db_block_size 数据库块大小能够对性能产生(作为一个一般的规则,块尺寸越大,物理IO就越少,整体性能就越快)
  db_file_multiblock_read_count 这个参数用于全表搜索或者大表范围扫描的时候,进行多块读入
  large_pool_szie 这是一个使用多线程服务器的时候,保留用于SGA使用的共享池中的特殊区域.最大池也用于并行查询RAM进程
  log_buffer 这个参数会决定为oracle重作日志缓冲区分配的内存数量.如果具有大量的更新活动,就应该给log_buffer分配更多的空间
   shared_pool_size 这个参数会定义系统中所有用户的共享池,包括SQL区域和数据字典高速缓存.

  ——有三个oracle参数可以影响数据缓冲区的大小

  db_cache_size
  buffer_pool_keep
  buffer_pool_recycle

  oracle建议缓冲区的命中率要超过90% DBA可以通过给初始化参数增加数据块数量来控制数据缓冲区命中率

  ——使用statspack监视缓冲池的使用
  ——缓冲池命中率和statpack

  select * from stats$buffer_pool_statistics

  SGA_MAX_SIZE=6000M
  DB_BLOCK_SIZE=16384
  DB_CACHE_SIZE=5000M
  BUFFER_POOL_KEEP=(1400,3)
  BUFFER_POOL_RECYCLE=(900,3)

  ——在oracle8 可以使用

  ALTER TABLE CUSTOMER STORAGE(buffer_pool KEEP);


  ALTER TABLE USER.TABLE_NAME STORAGE(buffer_pool keep);

  ——高级KEEP池候选识别

  除了进行全表扫描的小表之外,keep缓冲池还非常适合放置频繁使用的数据段的数据块

  ——识别热点对象

  select object_type mytype,
  object_name myname ,
  blocks,
  count(1) buffers,
  avg(tch) avg_touches
  from
  sys.x$bh a,
  dba_objects b,
  dba_segments s
  where
  a.obj=b.object_id
  and
  b.object_name=s.segment_name
  and
  b.owner not in('SYS','SYSTEM')
  GROUP BY object_name,object_type,
  blocks,obj
  having avg(tch)>5
  and count(1)>20;

  识别出热点对象后,可以决定将对象隔离放入keep池中。作为一般的规则,应该有足够的RAM存储可以用于整个表或者索引。例如,如果希望为keep池增加页表,就需要给init.ora的buffer_pool_keep 参数增加104个数据块

  ——调整 recycle 池

  在recycle池放置对象的目标是将全表搜索频率的大表进行分离,为了找到进行全表搜索的大表,我们必须求助于从 access.sql中获得的全表搜索报告:

  access_recycle_syntax.sql

  select
  'alter table '||p.owner||'.'||p.name||' storage (buffer_pool recyle);'
  from
  dba_tables t,
  dba_segments s,
  sqltemp s,
  (select distinct statement_id stid, object_owner owner, object_name name
  from plan_table
  where operation='TABLE ACCESS' and options='FULL') p
  where
  s.addr||':'||TO_CHAR(s.hashval)=p.stid
  and
  t.table_name=p.name
  and
  t.owner=p.owner
  and t.buffer_pool<>'RECYCLE'
  having s.blocks>1000
  group by
  p.owner,p.name,t.num_rows,s.blocks
  order by
  sum(s.executions) desc;

  ——给表分配recycle池

  alter table user.table_name storage(buffer_pool recycle);

  注意:在将任何表加入到RECYCLE池之前,DBA都应该抽取sql源代码,并且验证这个查询是否获取超过了表中行的40%

  ——高级recycle池调整

  下列查询使用了x$bh.tch来识别具有一次缓冲区接触计数,但是总量超过了整个缓存的5%的数据缓存中的对象,这些数据段是潜在的在recycle缓冲池中放置的候选对象,因为他们可能会让不会重用的数据块占用大量的缓存空间

  select object_type mytype,
  object_name myname,
  blocks,
  count(1) buffers,
  100*(count(1)/totsize) pct_cache
  from
  sys.x$bh a,
  dba_objects b,
  dba_segments s,
  ()

  ——取消跟踪功能

  alter system set trace_enabled=false;

  ——STATISTICS_LEVEL

  The STATISTICS_LEVEL parameter was introduced in Oracle9i Release 2 (9.2) to control all major statistics collections or advisories in the database. The level of the setting affects the number of statistics and advisories that are enabled:

  BASIC: No advisories or statistics are collected.

  TYPICAL: The following advisories or statistics are collected:

  Buffer cache advisory
  MTTR advisory
  Shared Pool sizing advisory
  Segment level statistics
  PGA target advisory
  Timed statistics
  ALL: All of TYPICAL, plus the following:
  Timed operating system statistics
  Row source execution statistics
  The parameter is dynamic and can be altered using:

  ALTER SYSTEM SET statistics_level=basic;
  ALTER SYSTEM SET statistics_level=typical;
  ALTER SYSTEM SET statistics_level=all;
  Current settings for parameters can be shown using:

  SHOW PARAMETER statistics_level
  SHOW PARAMETER timed_statistics
  Oracle can only manage statistic collections and advisories whose parameter   setting is undefined in the spfile.
  By default the TIMED_STATISTICS parameter is set to TRUE so this must be reset   for it to be controled by the statistics level,
  along with any other conflicting parameters:

  ALTER SYSTEM RESET timed_statistics scope=spfile sid='*';
  This setting will not take effect until the database is restarted.

  At this point the affect of the statistics level can be shown using the following query:

  COLUMN statistics_name FORMAT A30 HEADING "Statistics Name"
  COLUMN session_status FORMAT A10 HEADING "Session|Status"
  COLUMN system_status FORMAT A10 HEADING "System|Status"
  COLUMN activation_level FORMAT A10 HEADING "Activation|Level"
  COLUMN session_settable FORMAT A10 HEADING "Session|Settable"

  SELECT statistics_name,
      session_status,
      system_status,
      activation_level,
      session_settable
  FROM  v$statistics_level
  ORDER BY statistics_name;
  A comparison between the levels can be shown as follows:

  SQL> ALTER SYSTEM SET statistics_level=basic;

  System altered.

  SQL> SELECT statistics_name,
  2      session_status,
  3      system_status,
  4      activation_level,
  5      session_settable
  6 FROM   v$statistics_level
  7 ORDER BY statistics_name;

              Session   System    Activation   Session
Statistics Name       Status   Status    Level     Settable
-----------------------  ----------- ---------- -------------- ------------
Buffer Cache Advice     DISABLED  DISABLED    TYPICAL     NO
MTTR Advice         DISABLED  DISABLED    TYPICAL     NO
PGA Advice         DISABLED  DISABLED    TYPICAL     NO
Plan Execution Statistics  DISABLED  DISABLED    ALL       YES
Segment Level Statistics  DISABLED  DISABLED    TYPICAL     NO
Shared Pool Advice     DISABLED  DISABLED    TYPICAL     NO
Timed OS Statistics     DISABLED  DISABLED    ALL       YES
Timed Statistics      DISABLED  DISABLED    TYPICAL     YES

8 rows selected.

  SQL> ALTER SYSTEM SET statistics_level=typical;

  System altered.

  SQL> SELECT statistics_name,
  2      session_status,
  3      system_status,
  4      activation_level,
  5      session_settable
  6 FROM   v$statistics_level
  7 ORDER BY statistics_name;

             Session   System    Activation   Session
Statistics Name      Status    Status    Level     Settable
----------------------- ----------- ---------- ------------- -------------
Buffer Cache Advice    ENABLED   ENABLED   TYPICAL      NO
MTTR Advice        ENABLED   ENABLED   TYPICAL      NO
PGA Advice         ENABLED   ENABLED   TYPICAL      NO
Plan Execution Statistics DISABLED  DISABLED  ALL        YES
Segment Level Statistics  ENABLED   ENABLED   TYPICAL      NO
Shared Pool Advice     ENABLED   ENABLED   TYPICAL      NO
Timed OS Statistics    DISABLED  DISABLED  ALL        YES
Timed Statistics      ENABLED   ENABLED   TYPICAL      YES

8 rows selected.

  SQL> ALTER SYSTEM SET statistics_level=all;

  System altered.

  SQL> SELECT statistics_name,
  2      session_status,
  3      system_status,
  4      activation_level,
  5      session_settable
  6 FROM   v$statistics_level
  7 ORDER BY statistics_name;

              Session   System   Activation  Session
Statistics Name       Status   Status   Level     Settable
----------------------- ----------- ---------- ------------ --------------
Buffer Cache Advice     ENABLED   ENABLED   TYPICAL     NO
MTTR Advice         ENABLED   ENABLED   TYPICAL     NO
PGA Advice         ENABLED   ENABLED   TYPICAL     NO
Plan Execution Statistics  ENABLED   ENABLED   ALL       YES
Segment Level Statistics  ENABLED   ENABLED   TYPICAL     NO
Shared Pool Advice     ENABLED   ENABLED   TYPICAL     NO
Timed OS Statistics     ENABLED   ENABLED   ALL       YES
Timed Statistics      ENABLED   ENABLED   TYPICAL     YES

  8 rows selected.

  SQL>
  Hope this helps. Regards Tim


 
——内存调整
  select * from v$sga;

  ——调整前SGA

  NAME          VALUE
--------------------   ----------
Fixed Size         452184
Variable Size       402653184
Database Buffers      251658240
Redo Buffers        667648

  select * from v$sgastat;

 POOL       NAME         BYTES
----------- -------------------------- ----------
        fixed_sga        452184
        buffer_cache      251658240
        log_buffer       656384
shared pool   errors         8940
shared pool   enqueue         171860
shared pool   KGK heap        3756
shared pool   KQR M PO        1393788
shared pool   KQR S PO        177272
shared pool   KQR S SO        5120
shared pool   sessions        410040
shared pool   sql area        61446860

 POOL       NAME         BYTES
----------- -------------------------- ----------
shared pool   1M buffer        2098176
shared pool   KGLS heap        2613480
shared pool   PX subheap       19684
shared pool   parameters       39012
shared pool   free memory       125812664
shared pool   PL/SQL DIANA      3445584
shared pool   FileOpenBlock      695504
shared pool   PL/SQL MPCODE      637644
shared pool   PL/SQL PPCODE      48400
shared pool   PL/SQL SOURCE      14344
shared pool   library cache      19376952

 POOL       NAME         BYTES
----------- -------------------------- ----------
shared pool   miscellaneous      8639216
shared pool   PLS non-lib hp     2068
shared pool   joxs heap init     4220
shared pool   table definiti     2632
shared pool   trigger defini     1128
shared pool   trigger inform     528
shared pool   trigger source     624
shared pool   Checkpoint queue    564608
shared pool   VIRTUAL CIRCUITS    265160
shared pool   dictionary cache    1614976
shared pool   KSXR receive buffers  1032500

 POOL       NAME          BYTES
----------- --------------------------  ----------
shared pool   character set object    432136
shared pool   FileIdentificatonBlock   319452
shared pool   message pool freequeue   833032
shared pool   KSXR pending messages que 840636
shared pool   event statistics per sess 1908760
shared pool   fixed allocation callback 268
large pool   free memory        83886080
java pool    free memory 83886080

41 rows selected.

  ——UGA的大小,UGA主要包含一下部分的内存设置

  show parameters area_size;

   NAME               TYPE        VALUE
------------------------------------ ----------- ------------------------------
bitmap_merge_area_size         integer      1048576
create_bitmap_area_size        integer      8388608
hash_area_size             integer      1048576
sort_area_size             integer      524288
workarea_size_policy          string      AUTO

  ——计算数据缓冲区命中率

  select value from v$sysstat where name='physical reads' 4383475

  select * from v$sysstat where name='physical reads direct' 3834798

  select * from v$sysstat where name='physical reads direct (lob)' 374616

  select * from v$sysstat where name like 'consistent gets' 1198738167

  select * from v$sysstat where name like 'db block gets' 53472785


  x=physical reads direct+physical reads direct (lob)


  100-(physical reads-x)/(consistent gets+db block gets-x)*100


  100-(4383475-3834798-374616)/(1198738167+53472785-3834798-374616)*100

  ——共享池的命中率

  select sum(pinhits)/sum(pins)*100 "hit radio" from v$librarycache;

  ——关于排序部分

  select name,value from v$sysstat where name like '%sort%';

  select sorts(disk)/(sorts (memory)+sorts(disk)) from dual

  select 0/(17038425+0) from dual

  ——关于log_buffer

  select name,value from v$sysstat
  where name in('redo entries','redo buffer allocation retries');

  redo buffer allocation retries/redo entries >1% 考虑增加log_buffer


  ——其他视图   

  v$db_cache_advice、v$pga_target_advice、v$java_pool_advice 和 v$db_shared_pool_advice

 

上下文章:

 

上一篇文章: Oracle认证考试详细介绍 下一篇文章: statspackreport分析

相关文章:

  • SQL索引优化方法(实例代码)
  • vb.net中应用 ArrayList 实例
  • NET 拖动无边框窗体编程实例
  • 编程实例 使用C#的BitmapData
  • 实例讲解Web数据库安全防护

相关软件:

  • CorelDraw12入门与实例
  • 实例学用CorelDraw9 1.8
  • C++语言程序设计及应用实例 PDF电子书
  • 网页制作三剑客经典实例158例 + PDG阅读器 V1.0b3 绿色版
  • CorelDraw12 入门与实例 (图文教程 菜鸟先飞系列教材)
  • Java 2 入门与实例教程(PDG)

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

Oracle认证分类导航

  • Oracle动态
  • Oracle指导
  • Oracle题库

本类经典文章推荐

  • Oracle中关于逻辑备份与恢复
  • Oracle开发人员JAVA存储过程
  • 为数据库的表自动生成行号
  • Oracle中的OOP概念
  • 用java从oracle取数
  • 冷备份移植到另一台Solaris机器上
  • 如何将excel数据导入oracle中
  • Oracle10.2g安装记录
  • 数据库监控工具ForOraclev1.2
  • oracle双机群集系统

Oracle指导阅读排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • 案例学习Oracle错误:ORA-00060
  • 案例学习Oracle错误:ORA-00604
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • Oracle企业管理器(OEM 2.1)使用...
  • ORACLE数据库简介
  • 案例学习Oracle错误:ORA-00904

Oracle认证阅读总排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle常用的OCI函数上
  • 在ORACLE的存储过程中如何做简单的...
  • 案例学习Oracle错误:ORA-00060
  • 案例学习Oracle错误:ORA-00604
  • Tomcat+SQLServer连接池配置
  • 如何将excel数据导入oracle中
  • Oracle企业管理器(OEM 2.1)使用...
  • AIX下自动启动Oracle数据库与监听...

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有