個人筆記 分析程式變慢原因

2021-08-21 19:04:42 字數 1505 閱讀 3578

原因:

聯查了有大表

改進:1 聯查欄位加索引

2 排序欄位加索引

3 加統計表

4 冷熱資料

5 in改為exists

2018 7 /26

發現變慢原因:

1 聯查表是大表,大表不能用in,只能用exists

2 提前從in 裡面篩選出在主表bu'm不滿足條件的資料

inq裡面  

如果有個從表很大並且 需要篩選  又和主表有關聯關係,並且不想讀取從表資訊。

源**:li包含了所有

ll = coupon.select(y => y.cid).tolist();

var model =act.where(o => ll.contains(o.id)&&type=2);

因為 coupon超級大,執行超級慢

改**:

ll = coupon.where(act.any(o => o.type=2).select(y => y.cid).tolist();

var model = act.where(o => ll.contains(o.id));

把條件提前加入篩選集合裡面,執行很快

加索引,主要是where 或者orderby自己認為標準: 

1 聯查大表的字段,大表的字段加索引

2 排序的字段

3sum的字段

3 不是所有條件欄位加索引

時間篩選不能直接用大於小於,用函式來寫

select      [id]

,[order_no]

,[trade_no]

from [orders] where add_time'2018-07-15 15:32:13'

執行時間

改為

select      [id]

,[order_no]

,[trade_no]

from [orders] where

datediff(dd,add_time,'2018-07-31') >= 0 and datediff(dd, '2018-07-01', add_time )>= 0

還是很慢

加一張表聯查,做為中間表,還是很慢,

select        [id]

,[order_no]

,[trade_no]

from [orders]

join [orderdatediff]

on [dt_orders].id=[orderdatediff].order_id

where [orderdatediff].[datediff]<15

區域網速度變慢的原因分析

在眾多的網路故障中,最令人頭痛的是網路是通的,但網速變慢。初次面對這類 軟 故障時,往往有的人會束手無策,本文為大家介紹引起此類 軟 故障常見的原因及排除方法,提高大家對實際問題的處理能力。網線問題 我們知道,雙絞線是由4對線嚴格而合理地緊密度絞和在一起,減少串擾和背景噪音的影響。同時,在t568a...

區域網速度變慢的原因分析

在眾多的網路故障中,最令人頭痛的是網路是通的,但網速變慢。初次面對這類 軟 故障時,往往有的人會束手無策,本文為大家介紹引起此類 軟 故障常見的原因及排除方法,提高大家對實際問題的處理能力。網線問題 我們知道,雙絞線是由4對線嚴格而合理地緊密度絞和在一起,減少串擾和背景噪音的影響。同時,在t568a...

C C 程式崩潰原因分析

我們執行程式時經常會遇到異常崩潰,也就是我們常說的crash,下面我想總結一下crash出現的原因。而導致crash的主要原因就是段錯誤 segmentation fault 是不是很熟悉,相信每個執行過c程式的小夥伴都見過這兩個單詞,而且這種錯誤一般不給其他提示,看著很糾結。導致段錯誤的原因一般有...