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...