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

首頁 > 數據庫 > Oracle > 正文

[Oracle]一次數據庫性能問題的tuning

2024-08-29 13:50:20
字體:
來源:轉載
供稿:網友
基本情況:

    系統是一個基于web的業務系統,以online查詢為主,數據更新以批量為主,晚上執行。應該說系統還不算負載太大。5-1之后上班的時候客戶反映很慢,察看DB的cpu慢慢長到100%狀態。服務基本處于不可用狀態。i/o wait也挺高的。
    經檢查,前些天的批量竟然有達到20多小時才完成,導致次日批量都跑不起來。
   
    打開statspack收集信息
   
    從系統中發現本應該夜間執行的批量作業還在運行。停掉后,rollback做了4個小時!(因為一個transaction中只有一個復雜的、數據量巨大的insert語句)
   
    然后做statspack分析,
   
    系統中存在問題:等待事件較嚴重,緩存命中率較低,
   
    語句分析:

    1、一些大量執行update/delete語句竟然沒有建立索引,其實可以建立pk,根據pk處理。

    where中使用常量(引起parse)
   
    2、存在大量這樣的語句:

    SELECT fieldx FROM Tablesname where trim(ServiceNUM) = 'DDDDDD'
    - 在ServiceNUM字段上是唯一索引,因為trim就不能使用index(敗筆) --改!
    - 使用常量查詢,造成每次查詢都要parse,沒有必要的占用的CPU -- 改!
   
   
    3、在批量的存儲過程中,

    所有語句基本都是全表掃描! --- 和開發人員溝通,需要修改邏輯。改進之后效果還是蠻大的。
   
    另外發現一個問題:

    客戶需要的是n百萬用戶數據中的活動用戶萬數據,他們卻全部把n百萬數據從其他系統中收集到自己的系統中,在批量的時候又使用full table scan,性能自然不會好。系統從剛開始設計的時候就存在隱患。這個問題就需要從長計議了。
   
    修改后,CPU高峰時間基本穩定在30-40%之間。
    批量基本在2個小時內完成。
   
    其實是一個很簡單的系統,但是做到這種樣子,尤其是從設計到編碼都存在問題。呵呵,說真的,不是在優化語句的,而是從頭開始看設計。


上一篇:Oracle如何精確計算row的大小

下一篇:[Oracle]大數據類型的操作之CLOB

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 洞头县| 嘉鱼县| 吴堡县| 临潭县| 东乡| 五指山市| 义马市| 富民县| 离岛区| 尖扎县| 吴堡县| 潼南县| 全州县| 夏津县| 南宫市| 伽师县| 龙川县| 鄂托克旗| 博乐市| 金门县| 沙雅县| 西城区| 昆山市| 靖边县| 西和县| 瑞昌市| 枝江市| 石首市| 昌邑市| 南华县| 太白县| 民县| 西安市| 徐汇区| 分宜县| 永顺县| 龙里县| 禄丰县| 高要市| 桂林市| 桂林市|