馬司系統調優
今天軟開部的CTE約我幫他看看,上次那系統快掛的問題,叫我調優,其實我心裡也很沒底,不過想想這兩年多的學習,也應該可以解決這問題。(之前一直指出上次兩個ORA-00600和ORA-07445錯誤,在系統中連續出現這種錯誤,並從alert_XXX.log中統計下ORA-00600錯誤個數達2807次,並伴隨ORA-07445的個數為1238次,因此係統無人維護造成。兩個錯誤的間隔時間很短,而且都是由SQL語句所引起。由於一直出現有這個錯誤,基本上可以認為問題就是SQL語句。)
查出消耗資源最多的 SQL:
select sql_text,
hash_value,
executions,
buffer_gets,
disk_reads,
parse_calls
from v$sqlarea
where buffer_gets > 10000000
or disk_reads > 1000000
order by buffer_gets + 100 * disk_reads desc;
取出的SQL一個一個解決,基本是讓走規則方法,強制使用/*+RULE*/ /*+HASH()*/和使用INDEX來。
發現意思的是若用RULE,會出來是索引掙資源的情況,一個表多個索引同時在用,會變慢很多。
select /*+rule */ 1,
a.*,
b.vessel_name_cn,
b.voyages,
to_number(fuc_work_cntr_outnum(A.cntr_no, 2) kem,
fuc_work_cntr_outnum(A.cntr_no, 3) zmd,
round(sysdate - DYN_TIME) dcts,
C.Work_Status,
D.CLASS_VALUES_NAME,
(SELECT remark
FROM T_OPE_VSCH_CNTR c
WHERE c.VSCHEDULE_ID = a.VSCHEDULE_ID
AND c.CNTR_NO = a.CNTR_NO
AND ROWNUM <= 1) AS BZ
from t_basic_field a,
t_ope_fore_VSCH b,
(select Cntr_No, work_status
from t_ope_strobe_record
where work_status = '0') C,
(select CLASS_VALUES_ID, CLASS_VALUES_NAME
from t_pub_class_values
where class_id = 15) D
where a.vschedule_id = b.vschedule_id(+)
and A.cntr_no is not null
and a.LOCATION_STATUS = '1'
and A.Cntr_No = C.Cntr_No(+)
and A.CON_STATUS = D.CLASS_VALUES_ID(+)
order by dcts desc, kem desc
本身語句也是多方巢狀造成。
和擷取時間問題上,如
select /*+ RULE */ count(*) A
from T_OPE_STROBE_RECORD
where IMP_EXP_TYPE = '3'
and trunc(IMP_EXP_TIME) = trunc(sysdate)
因要走RULE要進行表分析。
ORACLE9I沒有自動分析功能,編寫一個SQL,定期執行下。
set pages 999999
set linesize 120;
set heading off
set echo off
set feedback off
spool /oracle/alog/hotbak/bin/sqltemp.sql;
select 'analyze table '||owner||'.'||table_name||' estimate statistics sample 5000 rows;'from dba_tables where owner in('XXXX');
select 'analyze index '||owner||'.'||index_name||' compute statistics;' from dba_indexes where owner in('XXXX');
spool off;
set echo on
set feedback on
spool /oracle/alog/hotbak/log/analyze.log;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') fromtime from dual;
@/oracle/alog/hotbak/bin/sqltemp.sql;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') totime from dual;
spool off
exit;
經過一天修改,客戶反應速度大大的加快,並無在報ORA-0600和ORA-07445錯誤,定期再跟蹤。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15242702/viewspace-666769/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux系統調優Linux
- 【sql調優】系統資訊統計SQL
- Linux系統調優介紹Linux
- Linux系統效能調優技巧Linux
- 生產系統pl/sql調優案例SQL
- 【調優篇基本原理】系統統計資訊
- 通過shell繫結系統程式調優
- Linux系統效能調優之效能分析Linux
- Android系統效能調優工具介紹Android
- linux系統引數調優全解析Linux
- Linux優化之IO子系統監控與調優Linux優化
- Openssh-7.9p1升級+系統調優
- linux系統關於kernel.sem調優Linux
- 生產系統調優之_敢於質疑
- Linux雲端計算架構-系統調優【CPU、IO、網路、核心引數調優】Linux架構
- Linux系統優化部分核心引數調優中文註釋Linux優化
- 生產系統調優之_毫秒級的改進
- 非常經典的UNIX系統調優的文章(轉)
- AIX 作業系統調優 效能指標祥解AI作業系統指標
- 在Linux中,如何進行系統效能調優?Linux
- 系統效能調優:提升 CPU 快取的命中率快取
- (3)Linux效能調優之Linux檔案系統Linux
- MOSES翻譯系統的訓練,調優和使用
- [轉載]Oracle資料庫應用系統調優方法Oracle資料庫
- 如何利用 JuiceFS 的效能工具做檔案系統分析和調優UI
- 【效能測試策略】系統調優由易到難的順序
- Oracle 11g系統調優之dbms_sqltune包的使用OracleSQL
- 系統自動化調優時代來臨,DBA真的要失業了?
- 超級巡警掛馬檢測系統
- Spark 效能調優--資源調優Spark
- JVM調優總結-調優方法JVM
- Spark 效能調優--Shuffle調優 SortShuffleManagerSpark
- iOS 調節系統音量iOS
- bug管理系統調研
- 【Spark篇】---Spark調優之程式碼調優,資料本地化調優,記憶體調優,SparkShuffle調優,Executor的堆外記憶體調優Spark記憶體
- Linux系統配置(系統優化)Linux優化
- 調優 | Apache Hudi應用調優指南Apache
- JVM調優總結(十)-調優方法JVM