累計的力量,delete全表掃描導致程式執行時間過長。
昨天晚上熬夜加班到3點多,主要時間耗在一個做賬業務上,這個業務是三個月前開始的,前幾次做都還是比較快的不到一個小時,可是昨天晚上竟然花費了4個多小時。我手頭工作太多,當時沒顧得上找原因。今天早上分析了一下那個時段的AWR,原來禍首是個DELETE語句。
DELETE ZC67 WHERE BAZ203 = :B2 AND BAC100='0' AND AAE140 = :B1 ;
執行計劃
----------------------------------------------------------
Plan hash value: 318370648
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | DELETE STATEMENT | | 1 | 19 | 2447 (2)| 00:00:30 |
| 1 | DELETE | T_ZC67 | | | | |
|* 2 | TABLE ACCESS FULL| T_ZC67 | 1 | 19 | 2447 (2)| 00:00:30 |
-----------------------------------------------------------------------------
統計資訊
----------------------------------------------------------
4 recursive calls
0 db block gets
10989 consistent gets
這個語句迴圈的呼叫,執行了接近6萬次。
1.GIF
整個包的CPU時間是13389,可這個語句就執行了12774秒。(這個語句是包呼叫的)。
解決辦法是對BAZ203增加索引,這個欄位是個序列產生的,每條記錄都唯一。區分度非常好。
之所以前幾次比較快是由於資料量還不大,隨著資料量變大,執行時間長也就在所難免了。
[ 本帖最後由 wei-xh 於 2010-7-1 12:00 編輯 ]
DELETE ZC67 WHERE BAZ203 = :B2 AND BAC100='0' AND AAE140 = :B1 ;
執行計劃
----------------------------------------------------------
Plan hash value: 318370648
-----------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------
| 0 | DELETE STATEMENT | | 1 | 19 | 2447 (2)| 00:00:30 |
| 1 | DELETE | T_ZC67 | | | | |
|* 2 | TABLE ACCESS FULL| T_ZC67 | 1 | 19 | 2447 (2)| 00:00:30 |
-----------------------------------------------------------------------------
統計資訊
----------------------------------------------------------
4 recursive calls
0 db block gets
10989 consistent gets
這個語句迴圈的呼叫,執行了接近6萬次。
1.GIF
整個包的CPU時間是13389,可這個語句就執行了12774秒。(這個語句是包呼叫的)。
解決辦法是對BAZ203增加索引,這個欄位是個序列產生的,每條記錄都唯一。區分度非常好。
之所以前幾次比較快是由於資料量還不大,隨著資料量變大,執行時間長也就在所難免了。
[ 本帖最後由 wei-xh 於 2010-7-1 12:00 編輯 ]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-666809/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 全表掃描和全索引掃描索引
- oracle是如何進行全表掃描的Oracle
- MySQL中的全表掃描和索引樹掃描MySql索引
- 全表掃描和全索引掃描繼續(PG-TiDB)索引TiDB
- Stopwatch 計算程式執行時間
- 如何減少 Hyperf 框架的掃描時間框架
- dbms_lob儲存過程導致臨時表空間100%儲存過程
- 多執行緒掃描資料夾耗時方法分析執行緒
- 24_Oracle資料庫全表掃描詳解(四)_全表掃描生產最佳化案例三則Oracle資料庫
- python程式計算執行時間差Python
- [20210220]全索引掃描快速索引掃描的邏輯讀.txt索引
- [20210219]全表掃描邏輯讀問題.txt
- ORACLE RAC叢集大範圍delete大表與insert&update同時執行導致活動會話數飆升Oracledelete會話
- 大事務導致資料庫恢復時間長資料庫
- PostgreSQL DBA(55) - MVCC#8(對全表掃描的影響)SQLMVCC#
- Java專案計算程式執行時間方法Java
- JavaScript 計算程式碼執行花費時間JavaScript
- linux系統時間程式設計(9) 計算程式片段執行時間clock函式Linux程式設計函式
- 索引掃描可能不如全表掃描的場景的理解__純粹資料量而言,不涉及CLUSTERING_FACTOR索引
- PAT-B 1026 程式執行時間【時間】
- 通過Python掃描程式碼關鍵字並進行預警Python
- 關係型資料庫全表掃描分片詳解資料庫
- 23_Oracle資料庫全表掃描詳解(三)Oracle資料庫
- 22_Oracle資料庫全表掃描詳解(二)Oracle資料庫
- 21_Oracle資料庫全表掃描詳解(一)Oracle資料庫
- Thinkphp 3.2.3 parseWhere設計缺陷導致update/delete注入 分析PHPdelete
- [20190815]索引快速全掃描的成本.txt索引
- 怎麼解決因全表掃描帶來的 Buffer Pool 汙染
- Go runtime 排程器精講(八):執行時間過長的搶佔Go
- 掃描行為分析
- 動態建立 @ViewChild 導致執行時錯誤的原因分析View
- 大事務導致的OGG抽取程式每天7:39定時延時,執行極其緩慢
- Linux 檢視程式啟動時間、執行時間Linux
- 相信時間的力量:三個行動開啟個人成長飛輪
- 1026. 程式執行時間(15)
- 關於laravel計算程式執行時間的優雅寫法Laravel
- win10怎麼關閉安全掃描 win10正在執行安全掃描如何關閉Win10
- Nmap繞過防火牆掃描防火牆
- Linux雜談:程式鎖核+實時執行緒導致的讀寫鎖死迴圈Linux執行緒