低效sql導致DB負載很高
今天,想起之前在資料庫上新上了一個schema,當時說負載可能比較大,正好有空了,所以,上去看看(應該有一些監控負載手段比較好)。
看了一下系統負載,確實高了一些,CPU比較繁忙,io等待有一些,但不多。
然後登陸db,檢視當前當前的一些sql,發現新上的schema有十幾個session都是同一條sql。
仔細看這條sql,很簡單,卻用了2個子查詢。想要得到執行目前這條sql最後的結果,完全不用子查詢,還有一個沒有必要的全表排序。所以看了這條sql,我也不明白到底要查什麼,才會這樣寫sql。這個目前這個表還不大,30M+,但CPU頂不住這樣頻繁的排序。
然後負載又升高了,基本上每個CPU達到90%,因為之前早一些的時候,應該還沒到高峰時期。vmstat在running上堵了不少。這個時候登陸系統敲命令都能明顯感覺到“一卡一卡”地。
後來看了下awr報表,基本就是這條sql的問題。
補充,後來詢問得知寫那條sql的老兄已經離職了,沒有人再能解釋為什麼會這麼寫,sigh~~
遺留問題:
1 最好能想辦法監控負載
2 sql的好壞會極大地影響db效能,db可以調整引數,但是從sql上著手,更本質一些。之前也經常遇到說速度慢之類的問題,基本就是sql太爛。一開始的表設計也很重要,目前我還沒看過相關內容,先記下。
3 awr報表要系統的看一下說明。平時多看看awr。考慮每天自動生成awr。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23650854/viewspace-682707/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- db2 清空表導致表出現UnavailableDB2AI
- 故障分析 | 大量短時程式導致 cpu 負載過高案例一則負載
- awr-----一份經典的負載很高的awr報告負載
- MySQL 因資料型別轉換導致執行計劃使用低效索引MySql資料型別索引
- RAC下主機修改時區導致db無法open
- Percona-Toolkit 之 pt-kill 低效SQLSQL
- Oracle SYSAUX 表空間使用率100% 導致的DB 故障OracleUX
- SQL Server中常見負載均衡方法(下)VQSQLServer負載
- SQL Server中常見負載均衡方法(上)LNSQLServer負載
- SQL Server Profiler(P)導致C盤空間不足SQLServer
- Spark SQL中Not in Subquery為何低效以及如何規避SparkSQL
- 執行SQL查詢導致磁碟耗盡故障演示SQL
- EfCore3的OwnedType會導致Sql效率問題SQL
- 一條主鍵索引SQL導致的CPU被打滿索引SQL
- DB2 SQL改寫DB2SQL
- 流量引導:網路世界的負載均衡解密負載解密
- Talos網路卡負載最佳化:基於個性化一致性雜湊的負載均衡負載
- 幾種常見的NO SQL DBSQL
- Azure Cosmos DB (二) SQL API 操作SQLAPI
- DB2_更新SQL欄位DB2SQL
- logback配置不當導致頻繁類載入
- 幽默:程式設計師耍小聰明導致認知負擔 - tef程式設計師
- 一致性Hash在負載均衡中的應用負載
- 為什麼電池正負極短接會導致電池燒燬
- gRPC負載均衡(自定義負載均衡策略)RPC負載
- gRPC負載均衡(客戶端負載均衡)RPC負載客戶端
- SQL Anywhere db檔案損壞修復 DB檔案修復 DB資料庫修復SQL資料庫
- 負載均衡負載
- 一致性雜湊負載均衡演算法的探討負載演算法
- cache與DB一致性-刪除
- 【DB筆試面試352】在Oracle資料庫中,哪些操作會導致索引失效?--UNUSABLE INDEXES筆試面試Oracle資料庫索引Index
- 可能導致遊戲下載量降低的7個原因遊戲
- sql最佳化-錯誤強制型別轉換導致索引失效SQL型別索引
- 記一次,因表變數導致SQL執行效率變慢變數SQL
- 如何寫出更快的 SQL (db2)SQLDB2
- 筆記:DB常用sql列印+事務使用筆記SQL
- 如何更換Azure SQL DB blob storage credentialsSQL
- DB2 SQL error: SQLCODE: -302, SQLSTATE: 22001DB2SQLError
- ORACLE dblink遠端DB表truncat導致本地proc執行報錯ORA-12012&ORA-06550&PLS-00907Oracle