低效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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RLM$SCHDNEGACTION 執行導致負載問題負載
- 執行計劃錯誤導致系統負載高負載
- DB2負載管理(WLM)(一)DB2負載
- DB2負載管理(WLM)(二)DB2負載
- DB2負載管理(WLM)(三)DB2負載
- awr-----一份經典的負載很高的awr報告負載
- 故障分析 | 大量短時程式導致 cpu 負載過高案例一則負載
- 執行計劃變化導致CPU負載高的問題分析負載
- Oracle 查詢DB的負載情況Oracle負載
- MySQL 因資料型別轉換導致執行計劃使用低效索引MySql資料型別索引
- db2 清空表導致表出現UnavailableDB2AI
- 找出導致db file scattered read等待事件發生的SQL及其執行計劃事件SQL
- 檢視低效的SQL語句SQL
- DB2 V9.5工作負載管理(二)DB2負載
- DB2 V9.5工作負載管理(五)DB2負載
- DB2 V9.5工作負載管理(六)DB2負載
- DB2 V9.5工作負載管理(七)DB2負載
- latch 相關效能問題診斷: latch: row cache objects等待事件導致CPU負載高Object事件負載
- sql中使用函式導致cost高SQL函式
- Production DB expdp 導致standby歸檔恢復時混亂
- 更改主機名後,導致db2啟動不了DB2
- 識別低效執行的SQL語句SQL
- PHP-FPM 導致負載過高的排查方法 善用PHP慢執行日誌slow logPHP負載
- 執行SQL語句導致mysqld的crashMySql
- DB Link因 driving_site導致的效能問題
- MySQL伺服器Swap滿了100%導致db很慢很卡MySql伺服器
- 使用db2 load from時導致DB的tablespace置成backup pending狀態DB2
- SQL Server中常見負載均衡方法(下)VQSQLServer負載
- SQL Server中常見負載均衡方法(上)LNSQLServer負載
- SQL Server資料庫實現負載均衡SQLServer資料庫負載
- 主動優化高負載SQL語句優化負載SQL
- 流量引導:網路世界的負載均衡解密負載解密
- Percona-Toolkit 之 pt-kill 低效SQLSQL
- Oracle SYSAUX 表空間使用率100% 導致的DB 故障OracleUX
- SQL Server Profiler(P)導致C盤空間不足SQLServer
- Talos網路卡負載最佳化:基於個性化一致性雜湊的負載均衡負載
- Spark SQL中Not in Subquery為何低效以及如何規避SparkSQL
- 【DB2學習】由於TSM損壞導致歸檔失敗DB2