造成高CPU消耗的原因

2021-08-21 17:25:23 字數 671 閱讀 5930

1.索引的缺失

根據執行計畫以及追蹤,確定缺少的索引,新增索引

2.統計資訊過時

統計資訊過時,執行計畫就會不是最優的,可能產生大量的表掃瞄,需要更新統計資訊

update statistics table_or_indexed_view_name

3.where子句中使用函式

where 子句中使用函式會使索引失效,增加cpu消耗

select * from test where cast(restart as date) = '2018-07-24';

如果restart欄位上有索引,那麼上面的語句將不會走索引

4.where 子句中出現資料型別的轉換

create table test1(id int)

create table test2(num varchar(10))

select *

from test1 a

join test2 b

on a.id = b.id

5.where 子句中有操作符轉換

select * from test where id +1 = 2

CPU 資源消耗原因和解決方案

1 物件建立 物件的建立會分配記憶體 調整屬性 甚至還有讀取檔案等操作,比較消耗 cpu 資源。盡量用輕量的物件代替重量的物件,可以對效能有所優化。比如 calayer 比 uiview 要輕量許多,那麼不需要響應觸控事件的控制項,用 calayer 顯示會更加合適。如果物件不涉及 ui 操作,則盡...

排查Java高CPU占用原因

top命令發現某個程序占用了100 的cpu 通過ps命令,進一步確定哪個程序出了問題 再檢視執行緒占用cpu的列表 找到占用cpu最高的執行緒,檢視tid,將其轉換為16進製制格式 printf x n tid 而後檢視堆疊資訊 jstack pid grep 16進製制tid a 60這裡報錯是...

獲得消耗cpu較高的topsql

一 select a.snap id,a.dbid,a.instance number,db time,to char trunc db time lag db time,1,db time over partition by stat name,instance number order by s...