DB2 SQL效能調優秘笈

來源:互聯網
上載者:User
《DB2 SQL效能調優秘笈》基本資料作者: (美)Tony Andrews譯者: 陳勇 楊健康叢書名: 華章程式員書庫出版社:機械工業出版社ISBN:9787111425021上架時間:2013-6-4出版日期:2013 年6月開本:16開頁碼:86版次:1-1所屬分類:電腦更多關於 》》》《DB2 SQL效能調優秘笈》內容簡介電腦書籍  《db2 sql效能調優秘笈》是一本不可多得的db2資料庫效能調優秘笈,由擁有20餘年db2工作經驗的資深資料庫專家撰寫,amazon全五星評價暢銷書。本書不僅詳盡闡述了100餘條sql語句最佳化的技巧和最佳實務、編寫高效能sql語句的標準和原則,以及db2資料庫效能最佳化的“15步法”,而且還包含大量案例,為解決各種複雜的db2效能問題提供瞭解決方案。   《db2 sql效能調優秘笈》共7章:第1章總結了116條最佳化sql語句的技巧和最佳實務;第2章講解了 sql語句中提示的編寫方法和技巧;第3章講解了編寫高品質sql語句需要遵守的sql標準和原則;第4章介紹了sql程式走查;第5章用2個執行個體介紹了如何檢查存在性;第6章介紹了runstats,用來得到一些統計資訊;第7章講解了db2效能最佳化的“15步調優法”,被譽為db2效能調優領域的無價之寶,適用於各種情況下的效能調優問題。本書最後還有2個附錄,分別介紹了謂詞的重寫樣本和db2 sql中的術語。目錄《db2 sql效能調優秘笈》譯者序前言第1章 sql最佳化技巧寶典100+1. 去除在謂詞列上編寫的任何純量涵式2. 去除在謂詞列上編寫的任何數學運算3. sql語句的select部分唯寫必要的列4. 儘可能不用distinct5. 盡量將in子查詢重寫為exists子查詢6.確保宿主變數定義為與列資料類型匹配7. 由於最佳化工具處理"或"邏輯可能有問題,所以盡量採用其他方式重寫8. 確保所處理的表中資料分布和其他統計資訊正確並反映當前狀況9. 儘可能用union all取代union10. 考慮使用寫入程式碼還是使用宿主變數11. 儘可能減少db2的sql請求12. 盡量將區間謂詞重寫為between謂詞13. 考慮使用全域暫存資料表14. 優先使用stage 1謂詞而不是stage 2謂詞15. 記住(某些)謂詞的順序很重要16. 多個子查詢排序.17. 索引關聯子查詢18. 瞭解db2 explain工具19. 使用工具進行監控20. 採用提交和重啟策略21. 實現優良的索引設計22. 避免與非列運算式不一致23. 所有篩選邏輯放在應用代碼之外24. 確保涉及min和max的子查詢謂詞要處理可能返回null的情況25. 如果查詢只選擇資料,一定要把遊標處理寫為for fetch only(只擷取)或for read only(唯讀)26. 避免只是為了協助確定代碼邏輯應當執行更新還是插入而從表中選擇一行27. 避免只是為了得到更新值而從表中選擇一行28. 利用動態sql語句緩衝29. 避免使用select *30. 當心可以為null的列,還要當心sql語句可能從資料庫管理員返回null31. 盡量減少執行開啟和關閉遊標的次數32. sql中要避免非邏輯33. 使用關聯id來保證更好的可讀性34. 保證表和索引檔案合法而且有組織35. 充分利用update where current of cursor和delete where current of cursor36. 使用遊標時,利用多行擷取、多行更新和多行插入來使用rowset定位和擷取37. 瞭解鎖定隔離等級38. 瞭解null處理39. 編程時要考慮效能40.讓sql來處理41.使用lock table42. 考慮oltp前端處理43. 考慮使用動態可滾動遊標44. 利用物化查詢表改善回應時間(只適用動態sql)45. 結合select的insert46. 充分利用多行擷取47. 充分利用多行插入48. 充分利用多行更新49. 充分利用多行刪除50.在select子句中使用標量全選51. 在動態sql中充分利用reopt once和reopt auto,在靜態sql中充分利用reopt vars和reopt always52. 標識易失表53. 使用on commit drop改進54. 使用多個distinct55. 充分利用反向索引掃描56. 當心like語句57. 正確地設定聚簇索引58. 必要時使用group by運算式59. 當心資料表空間掃描60. 不要問你已經知道的資訊61. 注意查詢中的表順序62. 使用左外聯結而不是右外聯結63. 檢查不存在的行64. 使用預存程序65. 不要只是為了排序而選擇某一列66. 儘可能限制結果集67. 大量刪除時充分利用db2 v8的改進discard功能68. 充分利用db2 load工具完成批量插入69. 注意視圖、巢狀表格運算式和公用表運算式的物化70. 考慮壓縮資料71. 考慮並行性72. 讓stddev、stddev_samp、var和var_samp函數遠離其他函數73. 考慮使用rowid資料類型(v8)或rid函數(v9)直接存取行74. 用真實統計和一定的資料測試查詢以反映效能問題75. 在where子句中指定前置索引列76. 儘可能使用where而不是having完成篩選77. 儘可能考慮index only處理78. db2 v9中運算式上的索引79. 考慮db2 v9 truncate語句80. 在子查詢中使用db2 v9 fetch first和order by81. 利用db2 v9樂觀鎖定82. 使用db2 v9 merge語句83. 瞭解db2 nofor先行編譯選項84. 考慮select into中使用order by85. 盡量編寫布爾項謂詞86. 編寫傳遞閉包87. 避免用order by排序88. 儘可能使用聯結而不是子查詢89. 當心case邏輯90. 在order by子句中充分利用函數91. 瞭解你的db2版本92. 瞭解日期運算93. 瞭解大容量插入選擇94. 瞭解skip locked data(v9)避免鎖定95. 對輸入資料流排序96. 如果需要真正的唯一性,可以使用v8 generate_unique函數97. 瞭解聲明暫存資料表的新選項98. 執行get diagnostics時需要注意99. 適當地對in列表排序100. 結合select的update和delete(v9)101. 只在必要時執行sql語句102. 充分利用記憶體中的表103. 避開通用型sql語句104. 避免不必要的排序105. 瞭解運算式和列函數106. 結合使用謂詞時要注意107. 為搜尋查詢增加冗餘謂詞108. 充分利用改進的動態緩衝(v10)109. 嘗試當前提交來避免鎖(v10)110. 嘗試使用系統時態表擷取曆史資料(v10)111. 嘗試使用業務時態表擷取曆史資料(v10)112. 瞭解分級函數 (v10)113. 充分利用擴充指示符(v10)114. 得到更大的時間戳記精度(v10)115. 嘗試index includes(v10)116. 使用with return to client(v10)第2章 db2 sql提示1. 在sql語句的最後使用optimize for 1 row語句2. 為sql查詢增加a.pkey = a.pkey謂詞,這裡pkey等於表的主鍵列3. 更換索引選擇4. 改變表處理順序5. 使用分布式動態sql第3章 sql標準和原則面向cobol開發人員面向所有sql開發人員第4章 sql程式走查第5章 檢查存在性例1例2第6章 runstats第7章 查詢初始調優步驟附錄a 謂詞重寫樣本附錄b db2 sql術語本圖書資訊來源:互動出版網

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.