【雲趣科技】Oracle優化案例-教你線上搞定top cpu的sql(十三)

雲趣科技發表於2020-10-30

今天監控軟體,監控告警閾值load 大於10,登陸

SQL如下,太好用了

SELECT A.SQL_ID, A.SESS_COUNT, A.CPU_LOAD, B.SQL_TEXT
  FROM (SELECT SQL_ID,
               COUNT(*) SESS_COUNT,
               ROUND(COUNT(*) / SUM(COUNT(*)) OVER(), 2) CPU_LOAD
          FROM V$ACTIVE_SESSION_HISTORY
         WHERE SAMPLE_TIME > SYSDATE - 1 / (24 * 6)
           AND SESSION_TYPE <> 'BACKGROUD'
           AND SESSION_STATE = 'ON CPU'
         GROUP BY SQL_ID
         ORDER BY COUNT(*) DESC) A,
       V$SQLAREA B
 WHERE A.SQL_ID = B.SQL_ID;
  
執行次數
SELECT SQL_ID, SQL_TEXT,FIRST_LOAD_TIME, EXECUTIONS
 FROM V$SQLAREA
  WHERE SQL_id='2zajkda8mzvka';

SELECT COUNT(*) TOTAL_COUNT, GROUP_ID
  FROM IMC_GROUP_USER
 WHERE JOINED = 1
   AND GROUP_ID IN (:1, :2, :3)
 GROUP BY GROUP_ID

group_id列分佈 太不均衡了,代入不同值,有時候走全表,有時候走index range scan,

CREATE INDEX IM_CORE_BASE.I_IMC_GROUP_USER_gid_joined ON IM_CORE_BASE.IMC_GROUP_USER(GROUP_ID,JOINED) TABLESPACE 
IM_CORE_BASE ONLINE;



代入不同值邏輯讀分別從11127降到9 ,48 降到3, 系統 load average 降到2.83

再查ayht結尾的sql id,再就查詢不到了,說名已經降低了

|  作者簡介

姚崇·雲趣科技高階資料庫技術專家

精通Oracle、MySQL等多種資料庫內部機制、擅長資料庫效能調優、故障診斷、資料遷移等資料庫生命週期內的資料服務

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978893/viewspace-2731296/,如需轉載,請註明出處,否則將追究法律責任。

相關文章