效能最佳化總結【原創】

來源:互聯網
上載者:User

標籤:jps   sql最佳化   利用   java.net   記憶體   分組   並且   日誌   並發   

常用觀測效能指標
  1. 處理能力,輸送量、回應時間、並發串連數
  2. 主機指標,cpu、記憶體、硬碟、IO
  3. 資料庫指標,cpu、記憶體、硬碟、IO、命中率、使用者串連數
JAVA後台分析問題方法Java方面主要是從兩方面分析
  1. 線程thread dump:使用jstack
  2. 記憶體的使用方式:使用jmap ,在用著兩個命令之前,先用jps把pid查出來:)  jmap -dump:format=b,file=<file> <pid> 然後用visualvm工具開啟
 JAVA後台效能分析工具
  •  下載Jprofile,比較消耗資源
  •  JAVA MAT:MemoryAnalyzer(MAT)
  •  推薦JDK內建的工具

C:\Program Files\Java\jdk1.6.0_34\bin目錄下

jvisualvm.exe

jconsole.exe

都可以看到記憶體泄露等問題。

  • 推薦查看dump日誌,用mat解析記憶體泄露

jps 擷取 pid

jmap -dump:live,format=b,file=heap.bin <pid>

使用MAT分析工具

http://www.blogjava.net/rosen/archive/2010/06/13/323522.html

資料庫最佳化效能方法 資料庫最佳化思路
  1. 首先,理解業務和資料表至關重要,往往可以使用一兩張表就可以滿足業務查詢的,就不要使用太多表進行查詢,當業務和表最佳化後再使用SQL最佳化來解決效能問題,能解決70%左右的效能問題;
  2. 其次,從SQL直觀找到問題,利用下面總結的SQL編寫規則,來最佳化單個語句,能解決20%左右的效能問題;
  3. 然後,利用執行計畫找到語句隱藏的問題,能解決10%左右的效能問題。
SQL編寫規則
  1. 如果單表能解決的,盡量使用單表查詢。一定要注意 where 條件,盡量使用有索引的列作為條件。
  2. 如果使用多表關聯查詢,盡量控制在3到4張表以內,並且表關聯條件一定要有,否則會出現笛卡爾積。
  3. 查詢語句中盡量避免子查詢,盡量使用join 代替子查詢。如果使用子查詢,一定要有條件,盡量早過濾。
  4. 查詢語中where條件盡量早過濾,條件下推。
  5. 禁止隱士轉換,數實值型別禁止加引號,字串類型必須加引號。
  6. 盡量使用 union all/union 來代替 or。
  7. 盡量用 union all 代替 union。
  8. 禁止使用 select * 。
  9. 全模糊查詢無法使用 index,應該盡量避免。比如 like ‘%ss%‘。
  10. select for update 文法,盡量避免。
  11. select id,name from t1 limit 10000,10 可以改成 select id,name from t1 where id>=10000 limit 10;
  12. 不需要排序、去重、分組的,就不要使用它們。

          

 原創作品,若轉走,請尊重著作權,標註來源,謝謝!

效能最佳化總結【原創】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.