DB2資料庫性能調整和最佳化(第3版)

基本介紹

  • 書名:DB2資料庫性能調整和最佳化(第3版)
  • 作者:牛新莊
  • ISBN:9787302481188
  • 定價:98元
  • 出版時間:2017.09.01
圖書信息,內容簡介,圖書目錄,

    圖書信息

    DB2資料庫性能調整和最佳化(第3版)
    作者:牛新莊
    定價:98元
    印次:3-1
    ISBN:9787302481188
    出版日期:2017.09.01
    印刷日期:2017.09.08

      內容簡介

      本書側重於介紹DB2資料庫的性能調優。性能調優是一個系統工程:全面監控分析作業系統、I/O性能、記憶體、套用及資料庫才能快速找到問題根源;深刻理解DB2的鎖及並發機制、索引原理、資料庫參數、最佳化器原理、統計分析和碎片整理等內部機理才能針對性地快速提出解決問題的方法;快照、db2pd、db2expln以及各種管理視圖和表函式等則是必須熟練掌握的工具。

      圖書目錄

      第1章性能調整概述1
      1.1性能概述2
      1.2性能評估4
      1.3建立性能目標7
      1.4什麼時候需要做性能調整8
      1.5性能調整準則9
      1.6性能調整的方法和過程10
      1.6.1性能調整的步驟10
      1.6.2性能調整的限制11
      1.6.3向客戶了解情況11
      1.6.4性能調整流程圖12
      1.7性能模型15
      1.7.1輸入17
      1.7.2處理17
      1.7.3輸出23
      1.8本章小結24
      第2章作業系統及存儲的性能調優27
      2.1AIX性能監控綜述29
      2.1.1監控工具29
      2.1.2監控系統總體運行狀態30
      2.1.3監控CPU性能34
      2.1.4監控記憶體使用38
      2.1.5監控存儲系統狀態40
      2.1.6監控網路狀態42
      2.2作業系統性能最佳化43
      2.2.1直接I/O和並發I/O44
      2.2.2異步I/O和同步I/O45
      2.2.3minpout和maxpout47
      2.2.4檔案系統和裸設備47
      2.2.5負載均衡及條帶化(Striping)48
      2.3邏輯卷和lvmo最佳化53
      2.3.1使用lvmo進行最佳化54
      2.3.2卷組pbuf池55
      2.3.3pbuf設定不合理導致性能
      問題調整案例56
      2.3.4使用ioo進行最佳化59
      2.4作業系統性能調整總結64
      2.5存儲I/O設計65
      2.6存儲基本概念65
      2.6.1硬碟65
      2.6.2磁碟陣列技術67
      2.6.3存儲的Cache67
      2.6.4網路存儲技術68
      2.7存儲架構69
      2.7.1存儲I/O處理過程69
      2.7.2RAIDIOPS70
      2.7.3RAID10和RAID5的比較71
      2.8良好存儲規劃的目標74
      2.9良好存儲規劃的設計原則75
      2.10存儲相關性能調整案例76
      2.11存儲I/O性能調整總結79
      2.12本章小結80
      第3章DB2性能監控81
      3.1快照監視器案例81
      3.1.1監控動態SQL語句81
      3.1.2監控臨時表空間使用84
      3.2事件監視器及監控案例87
      3.3利用表函式監控93
      3.4性能管理視圖及案例97
      3.4.1監控緩衝池命中率99
      3.4.2監控PackageCache大小100
      3.4.3監控執行成本最高的SQL
      語句100
      3.4.4監控運行時間最長的SQL
      語句101
      3.4.5監控SQL準備和預編譯
      時間最長的SQL語句101
      3.4.6監控執行次數最多的SQL
      語句102
      3.4.7監控排序次數最多的SQL
      語句103
      3.4.8監控鎖等待時間103
      3.4.9監控LockChain103
      3.4.10監控鎖記憶體的使用106
      3.4.11監控鎖升級、死鎖和
      鎖逾時107
      3.4.12監控全表掃描的SQL108
      3.4.13檢查頁清理器是否足夠108
      3.4.14監控prefecher是否足夠109
      3.4.15監控資料庫記憶體使用110
      3.4.16監控日誌使用情況111
      3.4.17監控占用日誌空間最舊的
      事務111
      3.4.18監控存儲路徑112
      3.4.19追蹤監控歷史113
      3.5db2pd113
      3.5.1常用db2pd監控選項和
      示例114
      3.5.2使用db2pd監控死鎖
      案例126
      3.5.3db2pd使用問題總結132
      3.6記憶體監控133
      3.6.1db2pd記憶體監控133
      3.6.2db2mtrk記憶體監控137
      3.7本章小結139
      第4章DB2配置參數調整141
      4.1初識DB2配置參數141
      4.2監控和調優實例級(DBM)
      配置參數143
      4.2.1代理程式相關配置參數143
      4.2.2sheapthres145
      4.2.3fcm_num_buffers145
      4.2.4sheapthres_shr146
      4.2.5intra_parallel146
      4.2.6mon_heap_sz147
      4.3監控和調優資料庫級配置
      參數147
      4.3.1緩衝池大小147
      4.3.2日誌緩衝區大小(logbufsz)152
      4.3.3應用程式堆大小
      (applheapsz)153
      4.3.4sortheap和sheapthres_shr154
      4.3.5鎖相關配置參數157
      4.3.6活動應用程式的最大數目
      (maxappls)160
      4.3.7pckcachesz161
      4.3.8catalogcache_sz161
      4.3.9異步頁清除程式的數目
      (num_iocleaners)161
      4.3.10異步I/O伺服器的數目
      (num_ioservers)163
      4.3.11avg_appls163
      4.3.12chngpgs_thresh(DB)164
      4.3.13maxfilop164
      4.3.14logprimary、logsecond和
      logfilsz164
      4.3.15stmtheap165
      4.3.16dft_queryopt165
      4.3.17util_heap_sz(DB)165
      4.4調整DB2概要註冊變數166
      4.4.1db2_parallel_io166
      4.4.2db2_evaluncommitted168
      4.4.3db2_skipdeleted168
      4.4.4db2_skipinserted168
      4.4.5db2_use_page_container_tag168
      4.4.6db2_selectivity169
      4.4.7db2maxfscrsearch169
      4.5記憶體自動調優169
      4.5.1記憶體自動調優示例170
      4.5.2啟用記憶體自動調優及
      相關參數171
      4.5.3記憶體配置參數的配置原則173
      4.6本章小結174
      第5章鎖和並發175
      5.1鎖的概念176
      5.1.1數據一致性176
      5.1.2事務和事務邊界176
      5.1.3鎖的概念178
      5.2鎖的屬性、策略及模式183
      5.2.1鎖的屬性183
      5.2.2加鎖策略183
      5.2.3鎖的模式184
      5.2.4如何獲取鎖186
      5.2.5鎖的兼容性188
      5.3隔離級別(IsolationLevels)189
      5.3.1可重複讀(RR—Repeatable
      Read)189
      5.3.2讀穩定性(RS—Read
      Stability)191
      5.3.3游標穩定性(CS—Cursor
      Stability)192
      5.3.4當前已提交(Currently
      Committed)194
      5.3.5未提交讀(UR—Uncommitted
      Read)194
      5.3.6隔離級別的摘要196
      5.4鎖轉換、鎖等待、鎖升級和
      死鎖198
      5.4.1鎖轉換及調整案例198
      5.4.2鎖升級及調整案例200
      5.4.3鎖等待及調整案例203
      5.4.4死鎖及調整案例205
      5.5鎖相關的性能問題總結209
      5.6鎖與應用程式設計211
      5.7鎖監控工具214
      5.8最大化並發性218
      5.8.1選擇合適的隔離級別218
      5.8.2儘量避免鎖等待、鎖升級和
      死鎖218
      5.8.3設定合理的註冊變數218
      5.9本章小結227
      第6章索引設計與最佳化229
      6.1索引概念229
      6.1.1索引優點229
      6.1.2索引類型231
      6.2索引結構231
      6.3理解索引訪問機制234
      6.4索引設計237
      6.4.1創建索引237
      6.4.2創建集群索引238
      6.4.3創建雙向索引239
      6.4.4完全索引訪問240
      6.4.5與創建索引相關的問題241
      6.4.6創建索引示例241
      6.5索引創建原則與示例242
      6.5.1索引與謂詞242
      6.5.2根據查詢使用的列建立
      索引244
      6.5.3根據條件語句中謂詞的選擇
      度創建索引245
      6.5.4避免在建有索引的列上使用
      函式246
      6.5.5在那些需要被排序的列上
      創建索引246
      6.5.6合理使用INCLUDE關鍵字
      創建索引248
      6.5.7指定索引的排序屬性249
      6.6影響索引性能的相關配置250
      6.6.1設定影響索引性能的配置
      參數250
      6.6.2為索引指定不同的表空間250
      6.6.3確保索引的集群度251
      6.6.4使表和索引統計信息保持
      最新251
      6.7索引維護251
      6.7.1異步索引清除(AIC)252
      6.7.2在線上索引整理碎片254
      6.7.3查找使用率低下的索引254
      6.7.4索引壓縮256
      6.8DB2DesignAdvisor
      (db2advis)256
      6.9本章小結260
      第7章DB2最佳化器265
      7.1DB2編譯器介紹266
      7.2SQL語句編譯過程268
      7.3最佳化器組件和工作原理271
      7.3.1查詢重寫示例:謂詞移動、
      合併和轉換271
      7.3.2最佳化器成本評估276
      7.3.3本地謂詞基數(cardinality)
      估計277
      7.3.4連線基數(cardinality)估計279
      7.3.5分布統計信息283
      7.3.6列組統計信息對基數的
      影響287
      7.4數據訪問方式297
      7.4.1全表掃描297
      7.4.2索引掃描298
      7.4.3掃描共享301
      7.5連線方法302
      7.5.1嵌套循環連線303
      7.5.2合併連線305
      7.5.3哈希連線306
      7.5.4選擇最佳連線的策略307
      7.6最佳化級別307
      7.6.1最佳化級別概述308
      7.6.2選擇最佳化級別311
      7.6.3設定最佳化級別312
      7.7基於規則的最佳化314
      7.7.1最佳化器概要檔案概述314
      7.7.2啟用最佳化概要檔案316
      7.7.3最佳化概要檔案使用示例317
      7.8如何影響最佳化器來提高性能324
      7.8.1使DB2統計信息保持
      最新324
      7.8.2構建適當的索引324
      7.8.3配置合理的資料庫配置
      參數325
      7.8.4選擇合適的最佳化級別326
      7.8.5合理的存儲I/O設計326
      7.8.6良好的應用程式設計和
      編碼327
      7.9本章小結329
      第8章統計信息更新與碎片整理331
      8.1統計信息更新332
      8.1.1統計信息的重要性332
      8.1.2如何更新統計信息333
      8.1.3統計信息更新示例335
      8.1.4LIKESTATISTICS統計信息
      更新339
      8.1.5列組統計信息更新340
      8.1.6分布統計信息更新349
      8.1.7統計信息更新策略355
      8.2自動統計信息更新357
      8.2.1自動RUNSTATS的基本
      概念357
      8.2.2如何打開autorunstats359
      8.2.3如何監控autorunstats361
      8.2.4自動收集統計視圖的統計
      信息362
      8.3碎片整理363
      8.3.1碎片產生機制和影響363
      8.3.2確定何時重組表和索引364
      8.3.3執行表、索引檢查是否需要
      做REORG367
      8.3.4REORG的用法和使用
      策略368
      8.4重新綁定程式包371
      8.5本章小結373
      第9章SQL語句調優375
      9.1通過監控找出最消耗資源
      的SQL語句376
      9.2通過解釋工具分析SQL語句
      執行計畫376
      9.2.1解釋表377
      9.2.2db2expln378
      9.2.3db2exfmt380
      9.2.4各種解釋工具的比較382
      9.2.5如何從解釋信息中獲取有
      價值的建議382
      9.3理解SQL語句如何工作383
      9.3.1理解謂詞類型383
      9.3.2排序和分組387
      9.3.3連線方法388
      9.3.4掃描方式389
      9.4SQL調優案例390
      9.4.1儘量使用單條語句完成
      邏輯390
      9.4.2合理使用NOTIN和NOT
      EXISTS391
      9.4.3利用子查詢進行最佳化392
      9.4.4調整表連線順序使JOIN
      最優394
      9.4.5數據非均勻分布時手工指定
      選擇性395
      9.4.6使用UDF代替查詢中的
      複雜部分396
      9.4.7合併多條SQL語句到單個
      SQL表達式397
      9.4.8使用SQL一次處理一個
      集合語義398
      9.4.9在無副作用的情況下使用
      SQL函式400
      9.4.10小結401
      9.5提高應用程式性能401
      9.5.1良好的SQL編碼規則401
      9.5.2提高SQL編程性能403
      9.5.3改進游標性能405
      9.5.4根據業務邏輯選擇最低粒度
      的隔離級別406
      9.5.5通過REOPT綁定選項來
      提高性能406
      9.5.6統計信息、碎片整理和重新
      綁定407
      9.5.7避免不必要的排序408
      9.5.8在C/S環境中利用SQL存儲
      過程降低網路開銷408
      9.5.9在高並發環境下使用
      連線池408
      9.5.10使用DesignAdvisor(db2advis)
      建議索引408
      9.5.11提高批量刪除、插入和更新
      速度409
      9.5.12提高插入性能409
      9.5.13高效的SELECT語句410
      9.6高性能SQL語句注意事項412
      9.6.1避免在搜尋條件中使用複雜
      的表達式412
      9.6.2將OPTIMIZEFORnROWS
      子句與FETCHFIRSTn
      ROWSONLY子句配合
      使用412
      9.6.3避免使用冗餘的謂詞412
      9.6.4避免使用多個帶有DISTINCT
      關鍵字的聚集操作413
      9.6.5避免連線列之間數據類型
      不匹配414
      9.6.6避免對表達式使用連線
      謂詞414
      9.6.7避免在謂詞中使用空操作
      表達式來更改最佳化器估算415
      9.6.8確保查詢符合星型模式連線
      的必需條件415
      9.6.9避免使用非等式連線謂詞416
      9.6.10避免使用不必要的外
      連線417
      9.6.11使用參數標記來縮短動態
      查詢的編譯時間418
      9.6.12使用約束來提高查詢最佳化
      程度418
      9.7本章小結419
      第10章DB2集群調優421
      10.1DB2集群介紹421
      10.2DB2集群參數解析423
      10.2.1組緩衝池423
      10.2.2全局鎖管理器425
      10.2.3DB2pureScale集群相關
      參數425
      10.3DB2集群性能監控429
      10.3.1查看CF資源利用429
      10.3.2查看各個成員的負載
      情況430
      10.3.3查看緩衝池命中率430
      10.3.4查看全局鎖性能438
      10.3.5查看頁回收(PageReclaiming)
      行為441
      10.4DB2集群設計調優442
      10.4.1使用小的pagesize442
      10.4.2使用大的extentsize442
      10.4.3使用LOBinline方法442
      10.4.4使用大的pctfree設定443
      10.4.5巧用CURRENT
      MEMBER443
      10.4.6巧用隨機索引444
      10.5同城雙活集群介紹444
      10.6同城雙活集群調優446
      10.6.1減少存儲影響446
      10.6.2減少通信影響447
      10.6.3熱點表調優案例447
      10.7本章小結450
      第11章DB2調優案例、問題總結和
      技巧451
      11.1調優案例1:某移動公司存儲
      設計不當和SQL引起的I/O
      瓶頸451
      11.2調優案例2:某銀行知識庫
      系統鎖等待、鎖升級引起
      性能瓶頸458
      11.3調優案例3:某汽車製造商
      ERP系統通過調整統計信息
      提高性能466
      11.4調優案例4:某農信社批量代收
      電費批處理慢調優案例476
      11.5調優案例5:某銀行系統
      欄位類型定義錯誤導致
      SQL執行時間變長480
      11.6調優案例6:某銀行客戶回單
      系統CPU使用率高483
      11.7調優案例7:某銀行手機銀行
      系統latch競爭導致active
      session高、性能慢問題488
      11.8調優學習案例:利用壓力
      測試程式學習DB2調優492

      相關詞條

      熱門詞條

      聯絡我們