【Oracle 世界一等公民视图】 认识 v$segment_statistics

【Oracle 世界一等公民视图】 认识 v$segment_statistics


    MOS 上发了SR、问 v$segment_statistics 是如何更新的?
    Oracle 答曰:v$segment_statisitcs自 9IR2 引入以来、仅用作 internal research【这回答、坑爹嘛】


    ㈠ 先看表结构:


[plain] view plain copy print ?
  1. sys@ORCL> desc v$segment_statistics  
  2.  Name                                                  Null?    Type  
  3.  ----------------------------------------------------- -------- ------------------------------------  
  4.  OWNER                                                          VARCHAR2(30)     #对象所有者  
  5.  OBJECT_NAME                                                    VARCHAR2(30)     #对象名称  
  6.  SUBOBJECT_NAME                                                 VARCHAR2(30)     #子对象名称  
  7.  TABLESPACE_NAME                                                VARCHAR2(30)     #对象所在表空间  
  8.  TS#                                                            NUMBER           #表空间标识  
  9.  OBJ#                                                           NUMBER           #字典对象标识  
  10.  DATAOBJ#                                                       NUMBER           #数据对象标识  
  11.  OBJECT_TYPE                                                    VARCHAR2(18)     #对象类型  
  12.  STATISTIC_NAME                                                 VARCHAR2(64)     #统计项名称  
  13.  STATISTIC#                                                     NUMBER           #统计项标识  
  14.  VALUE                                                          NUMBER           #统计项值、单位是 访问次数  


    ㈡ 接着谈适用场景
      
      可用于监测段级(segment_level)统计项、鉴定性能问题源于表或者索引
      我们就可以据此分析数据库中是否有部分对象的访问过于集中、等待过于频繁
      例如、对于ITL等待较高的对象、则可以考虑为其增加更多的事务槽
      

    
    
    ㈢ 然后瞧个例子
    
       使用 v$segment_statistics 找到最经常访问的表


[plain] view plain copy print ?
  1. sys@ORCL> ed  
  2. Wrote file afiedt.buf  
  3.   
  4.   1  SELECT t.owner,t.table_name,lr.value+pr.value AS total_reads  
  5.   2    FROM  
  6.   3    (SELECT owner,object_name,value FROM v$segment_statistics WHERE statistic_name='logical reads') lr,  
  7.   4    (SELECT owner,object_name,value FROM v$segment_statistics WHERE statistic_name='logical reads') pr, dba_tables t  
  8.   5   WHERE lr.owner=pr.owner AND  
  9.   6         lr.object_name=pr.object_name AND  
  10.   7         lr.owner=t.owner AND  
  11.   8         lr.object_name=t.table_name  
  12.   9* ORDER BY 3 desc  
  13. sys@ORCL> /  
  14.   
  15. OWNER                          TABLE_NAME                      TOTAL_READS  
  16. ------------------------------ ------------------------------ ------------  
  17. SYS                            WRI$_OPTSTAT_HISTGRM_HISTORY          14080  
  18. SYS                            WRI$_OPTSTAT_HISTHEAD_HISTORY          4736  
  19. SYSMAN                         MGMT_METRIC_COLLECTIONS                4000  
  20. SYS                            HIST_HEAD$                             3936  
  21. SYS                            COL_USAGE$                             3104  
  22. SYS                            FIXED_OBJ$                             2912  
  23. SYSMAN                         MGMT_SYSTEM_PERFORMANCE_LOG            2688  



你可能感兴趣的:(【Oracle 世界一等公民视图】 认识 v$segment_statistics)