国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

ORACLE性能診斷―學習statspack筆記(二)

2024-08-29 13:39:17
字體:
來源:轉載
供稿:網友

  Oracle性能診斷涉及對象
  
  A.   服務器、網絡以及磁盤(外部的環境)
  B.   實例(SGA,后臺進程)
  C.   對象(表,索引,段……)
  D.   SQL
  E.   設計(指的是應用的設計,這部分一般說來是很難改變了)
  
  ORACLE性能診斷要遵循上面的順序,先察看服務器是否存在問題,主要從CPU,RAM,DISK配置是否存在問題,檢查操作系統的核心參數的設置等等;假如是跨地域的進行共享的多個ORACLE,網絡通信性能也是非常的要害的,ORACLE利用的是TNS(Transparent Network Substrate 透明網絡層)提供數據庫之間的分布傳輸;另外影響ORACLE相應時間的最大的單獨組成部分是磁盤I/O,能夠減少磁盤I/O的任何事情都會對ORACLE的性能產生正面的影響,比如改變ORACLE初始化參數,調整相應的SQL等;對于ORACLE的實例調整應該注重的問題是,過載的ORACLE的SGA會導致嚴重的性能問題,對于ORACLE實例的調整主要包括:初始化參數、數據緩沖存儲(DEFAULT、KEEP、RECYCLE)和SGA中共享池和庫緩存等;還有就是ORACLE對象的調整,包括存儲參數等等;最后是SQL語句的調整。
  
  STATSPACK概述
  
  STATSPACK來源在ORACLE最早版本就存在的UTLBSTAT和UTLESTAT工具。開始的BSTAT-ESTAT工具就可以直接從ORACLE的內存結構中獲取信息。
  
  STATSPACK通過獲取數據庫當前狀態的快照來進行工作。大部分的情況,我們會規劃一個以小時為單位來收集數據的JOB,并在需要的時候請求附加快照。當我們獲取快照時,STATSPACK會從SGA內部的RAM內存結構中采樣,并記錄到相應的STATSPACK表中,注重的是,大多數情況下,SGA中的V$視圖與相應的的STATSPACK表之間存在直接的對應關系,比如:
  
  V$SYSSTAT --------->STATS$SYSSTAT
  
  SQL> DESC V$SYSSTAT
  
  Name                   Null?  Type
  
  ----------------------------------------- -------- ----------------------------
  STATISTIC#                     NUMBER
  NAME                        VARCHAR2(64)
  CLASS                       NUMBER
  VALUE                       NUMBER
  
  SQL> DESC STATS$SYSSTAT
  
  Name                   Null?  Type
  ----------------------------------------- -------- ----------------------------
  SNAP_ID                  NOT NULL NUMBER(6)
  DBID                   NOT NULL NUMBER
  INSTANCE_NUMBER              NOT NULL NUMBER
  STATISTIC#                NOT NULL NUMBER
  NAME                   NOT NULL VARCHAR2(64)
  VALUE                       NUMBER
  
  在理解STATSPACK工具的時候,很要害的是要明白通過STATSPACK快照收集的信息是累計值,從V$視圖中收集到起始時間的數據庫信息,然后進行持續累加,知道實例中止,我想,這也許就應該是STATSPACK不能產生兩張跨越SHUTDOWN的快照的報告的原因吧。
  
  對應STATSPACK存在一系列的STATSPACK表,不同的ORACLE版本會有一定的差異。這些表大體上分為控制表、參數表、事件表、事務處理表、并行服務器表、概要表、系統表等等
  
  下面是我列出的ORACLE9I的STATSPACKE表:
  
  SQL> select table_name from dba_tables where table_name like 'STATS$%';
  
  TABLE_NAME
  ------------------------------
  STATS$DATABASE_INSTANCE
  STATS$LEVEL_DESCRipTION
  STATS$SNAPSHOT
  STATS$DB_CACHE_ADVICE
  STATS$FILESTATXS
  STATS$TEMPSTATXS
  STATS$LATCH
  STATS$LATCH_CHILDREN
  STATS$LATCH_PARENT
  STATS$LATCH_MISSES_SUMMARY
  STATS$LIBRARYCACHE
  TABLE_NAME
  ------------------------------
  
  STATS$BUFFER_POOL_STATISTICS
  STATS$ROLLSTAT
  STATS$ROWCACHE_SUMMARY
  STATS$SGA
  STATS$SGASTAT
  STATS$SYSSTAT
  STATS$SESSTAT
  STATS$SYSTEM_EVENT
  STATS$session_EVENT
  STATS$BG_EVENT_SUMMARY
  STATS$WAITSTAT
  TABLE_NAME
  ------------------------------
  STATS$ENQUEUE_STAT
  STATS$SQL_SUMMARY
  STATS$SQLTEXT
  STATS$SQL_STATISTICS
  STATS$RESOURCE_LIMIT
  STATS$DLM_MISC
  STATS$UNDOSTAT
  STATS$SQL_PLAN_USAGE
  STATS$SQL_PLAN
  STATS$SEG_STAT
  STATS$SEG_STAT_OBJ
  ABLE_NAME
  
  ------------------------------
  STATS$PGASTAT
  STATS$IDLE_EVENT
  STATS$PARAMETER
  STATS$INSTANCE_RECOVERY
  STATS$STATSPACK_PARAMETER
  STATS$SHARED_POOL_ADVICE
  STATS$SQL_WORKAREA_HISTOGRAM
  STATS$PGA_TARGET_ADVICE
  
  41 rows selected.
  
  其中STATSPACK表的主要錨定點是STATS$DATABASE_INSTANCE,具體的表的介紹我打算放到后面的文章進行討論。

  
  可以說,以前我們的Oracle性能調整主要是一種REACTIVE TUNNING(反應式調整),通過STATSPACK工具,我們可以進行長期趨勢分析、性能問題事后分析、資源規劃以及猜測建模等,我們完全可以采用一種PROACTIVE TUNNING(前瞻式調整)。并且從ORACLE9I開始,ORACLE可以動態的改變ORACLE實例的內存配置,ORACLE也正朝著動態數據庫配置邁進。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭苏县| 江阴市| 凤冈县| 岑溪市| 德昌县| 城口县| 海原县| 遂溪县| 南涧| 山丹县| 丹阳市| 拜泉县| 平阳县| 宝鸡市| 循化| 怀来县| 靖宇县| 香港| 咸丰县| 双牌县| 阜平县| 五指山市| 宣恩县| 金寨县| 合水县| 长顺县| 界首市| 焉耆| 凤山县| 沐川县| 资阳市| 大同市| 嘉鱼县| 阿拉善右旗| 温宿县| 大渡口区| 临海市| 无锡市| 合山市| 绥中县| 阆中市|