優化前CPU運行效果:sql
優化後CPU運行效果:性能
優化前App打開時,須要加載一段時間。優化
優化後App打開時,秒開。設計
主要優化項以下:blog
優化項1:索引
在最常使用的車輛詳細頁,使用很是不合理的判斷是否存在的方法,該列表有37萬條數據。it
優化項2:io
數據表設計不合理,AKDWeb_APPTokenLog,這個執行次數很是高,邏輯讀取總次數也很是高的表,居然沒有索引。編譯
優化項3:ast
對AKDWeb_APPStore這個表添加索引。
附:SqlServer中抓取耗時耗性能Sql的語句。
SELECT
(total_elapsed_time / execution_count)/1000 N'平均時間ms'
,total_elapsed_time/1000 N'總花費時間ms'
,total_worker_time/1000 N'所用的CPU總時間ms'
,total_physical_reads N'物理讀取總次數'
,total_logical_reads/execution_count N'每次邏輯讀次數'
,total_logical_reads N'邏輯讀取總次數'
,total_logical_writes N'邏輯寫入總次數'
,execution_count N'執行次數'
,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) N'執行語句'
,creation_time N'語句編譯時間'
,last_execution_time N'上次執行時間'
FROM
sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
WHERE
SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) not like '�tch%'
ORDER BY
total_elapsed_time / execution_count DESC;