DB2数据库性能调整和优化(第2版)
生活随笔
收集整理的這篇文章主要介紹了
DB2数据库性能调整和优化(第2版)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
《DB2數(shù)據(jù)庫性能調(diào)整和優(yōu)化(第2版)》 基本信息 作者: 牛新莊 出版社:清華大學(xué)出版社 ISBN:9787302325260 上架時間:2013-7-3 出版日期:2013 年7月 開本:16開 頁碼:528 版次:2-1 所屬分類:計算機(jī) > 數(shù)據(jù)庫 > DB2 更多關(guān)于 》》》《DB2數(shù)據(jù)庫性能調(diào)整和優(yōu)化(第2版) 》 內(nèi)容簡介 計算機(jī)書籍 《db2數(shù)據(jù)庫性能調(diào)整和優(yōu)化(第2版)》側(cè)重于介紹db2數(shù)據(jù)庫的性能調(diào)優(yōu)。性能調(diào)優(yōu)是一個系統(tǒng)工程:全面監(jiān)控分析操作系統(tǒng)、i/o性能、內(nèi)存、應(yīng)用及數(shù)據(jù)庫才能快速找到問題根源;深刻理解db2的鎖及并發(fā)機(jī)制、索引原理、數(shù)據(jù)庫參數(shù)、優(yōu)化器原理、sql語句調(diào)優(yōu)等內(nèi)部機(jī)理才能針對性地快速提出解決問題的方法;快照、db2pd、db2expln及事件監(jiān)控器等則是必須熟練掌握的工具。這本書覆蓋了進(jìn)行db2數(shù)據(jù)庫性能調(diào)優(yōu)所需的全部知識和工具,并提供了大量的性能調(diào)優(yōu)的實際案例。 《db2數(shù)據(jù)庫性能調(diào)整和優(yōu)化(第2版)》系統(tǒng)性地總結(jié)了db2數(shù)據(jù)庫性能調(diào)整的方法、流程、思路和保持系統(tǒng)良好性能的注意要點。最難得的是作者分享了其10年積累的db2性能調(diào)優(yōu)案例和經(jīng)驗總結(jié)。 目錄 《db2數(shù)據(jù)庫性能調(diào)整和優(yōu)化(第2版)》 第1章 性能調(diào)整概述1 1.1 性能概述2 1.2 性能評估4 1.3 建立性能目標(biāo)7 1.4 什么時候需要做性能調(diào)整8 1.5 性能調(diào)整準(zhǔn)則9 1.6 性能調(diào)整的方法和過程10 1.6.1 性能調(diào)整的步驟10 1.6.2 性能調(diào)整的限制11 1.6.3 向客戶了解情況11 1.6.4 性能調(diào)整流程圖12 1.7 性能模型15 1.7.1 輸入17 1.7.2 處理17 1.7.3 輸出23 1.8 本章小結(jié)24 第2章 操作系統(tǒng)及存儲的性能調(diào)優(yōu)27 2.1 aix性能監(jiān)控綜述29 2.1.1 監(jiān)控工具29 .2.1.2 監(jiān)控系統(tǒng)總體運行狀態(tài)30 2.1.3 監(jiān)控cpu性能34 2.1.4 監(jiān)控內(nèi)存使用38 2.1.5 監(jiān)控存儲系統(tǒng)狀態(tài)40 2.1.6 監(jiān)控網(wǎng)絡(luò)狀態(tài)42 2.2 操作系統(tǒng)性能優(yōu)化43 2.2.1 直接i/o和并發(fā)i/o44 2.2.2 異步i/o和同步i/o45 2.2.3 minpout和maxpout47 2.2.4 文件系統(tǒng)和裸設(shè)備47 2.2.5 負(fù)載均衡及條帶化(striping)48 2.3 邏輯卷和lvmo優(yōu)化53 2.3.1 使用lvmo進(jìn)行優(yōu)化54 2.3.2 卷組pbuf池55 2.3.3 pbuf設(shè)置不合理導(dǎo)致性能問題調(diào)整案例56 2.3.4 使用ioo進(jìn)行優(yōu)化60 2.4 操作系統(tǒng)性能調(diào)整總結(jié)65 2.5 存儲i/o設(shè)計65 2.6 存儲基本概念65 2.6.1 硬盤65 2.6.2 磁盤陣列技術(shù)67 2.6.3 存儲的cache67 2.6.4 網(wǎng)絡(luò)存儲技術(shù)68 2.7 存儲架構(gòu)69 2.7.1 存儲i/o處理過程69 2.7.2 raid iops70 2.7.3 raid 10和raid 5的比較71 2.8 良好存儲規(guī)劃的目標(biāo)74 2.9 良好存儲規(guī)劃的設(shè)計原則75 2.10 存儲相關(guān)性能調(diào)整案例76 2.11 存儲i/o性能調(diào)整總結(jié)79 2.12 本章小結(jié)80 第3章 db2性能監(jiān)控81 3.1 快照監(jiān)視器案例81 3.1.1 監(jiān)控動態(tài)sql語句81 3.1.2 監(jiān)控臨時表空間使用84 3.2 事件監(jiān)視器及監(jiān)控案例87 3.3 利用表函數(shù)監(jiān)控93 3.4 性能管理視圖及案例99 3.4.1 監(jiān)控緩沖池命中率100 3.4.2 監(jiān)控package cache大小101 3.4.3 監(jiān)控執(zhí)行成本最高的sql語句102 3.4.4 監(jiān)控運行時間最長的sql語句102 3.4.5 監(jiān)控sql準(zhǔn)備和預(yù)編譯時間最長的sql語句103 3.4.6 監(jiān)控執(zhí)行次數(shù)最多的sql語句103 3.4.7 監(jiān)控排序次數(shù)最多的sql語句104 3.4.8 監(jiān)控鎖等待時間104 3.4.9 監(jiān)控lock chain105 3.4.10 監(jiān)控鎖內(nèi)存的使用108 3.4.11 監(jiān)控鎖升級、死鎖和鎖超時108 3.4.12 監(jiān)控全表掃描的sql109 3.4.13 檢查頁清理器是否足夠110 3.4.14 監(jiān)控prefecher是否足夠110 3.4.15 監(jiān)控數(shù)據(jù)庫內(nèi)存使用111 3.4.16 監(jiān)控日志使用情況112 3.4.17 監(jiān)控占用日志空間最舊的事務(wù)112 3.4.18 監(jiān)控存儲路徑113 3.4.19 追蹤監(jiān)控歷史114 3.5 db2pd114 3.5.1 常用db2pd監(jiān)控選項和示例115 3.5.2 使用db2pd監(jiān)控死鎖案例127 3.5.3 db2pd使用問題總結(jié)132 3.6 內(nèi)存監(jiān)控134 3.6.1 db2pd 內(nèi)存監(jiān)控134 3.6.2 db2mtrk 內(nèi)存監(jiān)控138 3.7 本章小結(jié)140 第4章 db2配置參數(shù)調(diào)整141 4.1 初識db2配置參數(shù)141 4.2 監(jiān)控和調(diào)優(yōu)實例級(dbm)配置參數(shù)143 4.2.1 代理程序相關(guān)配置參數(shù)143 4.2.2 sheapthres146 4.2.3 fcm_num_buffers146 4.2.4 sheapthres_shr147 4.2.5 intra_parallel147 4.2.6 mon_heap_sz148 4.2.7 query_heap_sz148 4.3 監(jiān)控和調(diào)優(yōu)數(shù)據(jù)庫級配置參數(shù)148 4.3.1 緩沖池大小149 4.3.2 日志緩沖區(qū)大小(logbufsz)155 4.3.3 應(yīng)用程序堆大小(applheapsz)156 4.3.4 sortheap和sheapthres_shr157 4.3.5 鎖相關(guān)配置參數(shù)159 4.3.6 活動應(yīng)用程序的最大數(shù)目(maxappls)163 4.3.7 pckcachesz163 4.3.8 catalogcache_sz164 4.3.9 異步頁清除程序的數(shù)目(num_iocleaners)164 4.3.10 異步i/o 服務(wù)器的數(shù)目(num_ioservers)166 4.3.11 組提交數(shù)目(mincommit)166 4.3.12 avg_appls168 4.3.13 chngpgs_thresh(db)168 4.3.14 maxfilop169 4.3.15 logprimary、logsecond和logfilsz169 4.3.16 stmtheap170 4.3.17 dft_queryopt170 4.3.18 util_heap_sz (db)170 4.4 調(diào)整db2概要注冊變量170 4.4.1 db2_parallel_io171 4.4.2 db2_evaluncommitted173 4.4.3 db2_skipdeleted173 4.4.4 db2_skipinserted173 4.4.5 db2_use_page_container_tag173 4.4.6 db2_selectivity173 4.4.7 db2_logger_non_ buffered_io174 4.5 內(nèi)存自動調(diào)優(yōu)174 4.5.1 內(nèi)存自動調(diào)優(yōu)示例175 4.5.2 啟用內(nèi)存自動調(diào)優(yōu)及相關(guān)參數(shù)176 4.5.3 內(nèi)存配置參數(shù)的配置原則178 4.6 本章小結(jié)179 第5章 高級鎖與優(yōu)化181 5.1 隔離級別與鎖181 5.1.1 可重復(fù)讀(rr—repeatable read)182 5.1.2 讀穩(wěn)定性(rs—read stability)184 5.1.3 游標(biāo)穩(wěn)定性(cs—cursor stability)186 5.1.4 當(dāng)前提交(currently committed)188 5.1.5 未提交讀(ur—uncommitted read)190 5.1.6 隔離級別總結(jié)193 5.2 加鎖總結(jié)195 5.2.1 如何獲取鎖195 5.2.2 意圖鎖和非意圖鎖196 5.2.3 讀鎖和寫鎖197 5.2.4 lrb(lock resource block)197 5.2.5 use and keep locks198 5.2.6 索引類型和下一鍵鎖199 5.2.7 掃描方式與加鎖201 5.3 樂觀鎖204 5.3.1 悲觀鎖和樂觀鎖204 5.3.2 db2 v9.5中的樂觀鎖205 5.3.3 樂觀鎖應(yīng)用案例212 5.4 內(nèi)部鎖221 5.4.1 內(nèi)部方案鎖(internal plan lock)221 5.4.2 內(nèi)部v鎖(internal variation lock)222 5.4.3 內(nèi)部s鎖223 5.4.4 內(nèi)部c鎖224 5.4.5 其他內(nèi)部鎖225 5.5 鎖等待及調(diào)整案例228 5.5.1 鎖等待問題解決流程和步驟228 5.5.2 捕獲引起鎖等待的sql語句230 5.5.3 利用db2pd捕獲鎖超時233 5.5.4 利用事件監(jiān)視器捕獲鎖超時236 5.6 鎖升級及調(diào)整案例238 5.6.1 監(jiān)控鎖升級239 5.6.2 鎖升級調(diào)整239 5.7 死鎖及調(diào)整案例241 5.7.1 利用事件監(jiān)視器監(jiān)控死鎖242 5.7.2 死鎖案例243 5.7.3 最小化死鎖建議246 5.8 最大化并發(fā)性246 5.8.1 選擇合適的隔離級別246 5.8.2 盡量避免鎖等待、鎖升級和死鎖246 5.8.3 設(shè)置合理的注冊表變量247 5.9 鎖相關(guān)的性能問題總結(jié)255 5.10 鎖與應(yīng)用程序開發(fā)256 5.11 本章小結(jié)259 第6章 索引設(shè)計與優(yōu)化261 6.1 索引概念261 6.1.1 索引優(yōu)點261 6.1.2 索引類型263 6.2 索引結(jié)構(gòu)263 6.3 理解索引訪問機(jī)制266 6.4 索引設(shè)計269 6.4.1 創(chuàng)建索引269 6.4.2 創(chuàng)建集群索引270 6.4.3 創(chuàng)建雙向索引271 6.4.4 完全索引訪問272 6.4.5 與創(chuàng)建索引相關(guān)的問題273 6.4.6 創(chuàng)建索引示例273 6.5 索引創(chuàng)建原則與示例274 6.5.1 索引與謂詞274 6.5.2 根據(jù)查詢使用的列建立索引276 6.5.3 根據(jù)條件語句中謂詞的選擇度創(chuàng)建索引277 6.5.4 避免在建有索引的列上使用函數(shù)278 6.5.5 在那些需要被排序的列上創(chuàng)建索引278 6.5.6 合理使用include關(guān)鍵詞創(chuàng)建索引280 6.5.7 指定索引的排序?qū)傩?81 6.6 影響索引性能的相關(guān)配置282 6.6.1 設(shè)置影響索引性能的配置參數(shù)282 6.6.2 為索引指定不同的表空間282 6.6.3 確保索引的集群度283 6.6.4 使表和索引統(tǒng)計信息保持最新283 6.6.5 重組索引283 6.7 索引維護(hù)284 6.7.1 異步索引清除(aic)285 6.7.2 聯(lián)機(jī)索引整理碎片287 6.7.3 查找使用率低下的索引287 6.7.4 索引壓縮289 6.8 db2 design advisor(db2advis)289 6.9 本章小結(jié)293 第7章 db2優(yōu)化器299 7.1 db2優(yōu)化器介紹300 7.2 sql語句執(zhí)行過程302 7.3 優(yōu)化器組件和工作原理304 7.3.1 查詢重寫示例:謂詞移動、合并和轉(zhuǎn)換305 7.3.2 優(yōu)化器成本評估310 7.3.3 本地謂詞基數(shù)(cardinality)估計311 7.3.4 連接基數(shù)(cardinality)估計313 7.3.5 分布統(tǒng)計信息317 7.3.6 列組統(tǒng)計信息對基數(shù)的影響321 7.4 掃描方式330 7.4.1 全表掃描331 7.4.2 索引掃描331 7.4.3 rid scan334 7.5 連接方法335 7.5.1 嵌套循環(huán)連接336 7.5.2 合并連接338 7.5.3 哈希連接339 7.5.4 選擇最佳連接的策略340 7.6 優(yōu)化級別340 7.6.1 優(yōu)化級別概述341 7.6.2 選擇優(yōu)化級別344 7.6.3 設(shè)置優(yōu)化級別345 7.7 基于規(guī)則的優(yōu)化347 7.7.1 優(yōu)化器概要文件概述347 7.7.2 啟用優(yōu)化概要文件349 7.7.3 優(yōu)化概要文件使用示例350 7.8 如何影響優(yōu)化器來提高性能357 7.8.1 使db2統(tǒng)計信息保持最新357 7.8.2 構(gòu)建適當(dāng)?shù)乃饕?57 7.8.3 配置合理的數(shù)據(jù)庫配置參數(shù)358 7.8.4 選擇合適的優(yōu)化級別359 7.8.5 合理的存儲i/o設(shè)計359 7.8.6 良好的應(yīng)用程序設(shè)計和編碼360 7.9 本章小結(jié)363 第8章 統(tǒng)計信息更新與碎片整理365 8.1 統(tǒng)計信息更新365 8.1.1 統(tǒng)計信息的重要性365 8.1.2 統(tǒng)計信息更新示例369 8.1.3 like statistics統(tǒng)計信息更新372 8.1.4 列組統(tǒng)計信息更新374 8.1.5 分布統(tǒng)計信息更新383 8.1.6 統(tǒng)計信息更新策略389 8.2 自動統(tǒng)計信息更新391 8.2.1 自動runstats的基本概念391 8.2.2 如何打開auto runstats393 8.2.3 如何監(jiān)控auto runstats395 8.2.4 db2 v10新特性——自動收集統(tǒng)計視圖的統(tǒng)計信息396 8.3 碎片整理397 8.3.1 碎片產(chǎn)生機(jī)制和影響397 8.3.2 確定何時重組表和索引398 8.3.3 執(zhí)行表、索引檢查是否需要做reorg401 8.3.4 reorg的用法和使用策略402 8.4 重新綁定程序包405 8.5 本章小結(jié)407 第9章 sql語句調(diào)優(yōu)409 9.1 通過監(jiān)控找出最消耗資源的sql語句409 9.2 通過解釋工具分析sql語句執(zhí)行計劃410 9.2.1 解釋表411 9.2.2 visual explain(可視化解釋)412 9.2.3 db2expln419 9.2.4 db2exfmt422 9.2.5 各種解釋工具的比較424 9.2.6 如何從解釋信息中獲取有價值的建議424 9.3 理解sql語句如何工作425 9.3.1 理解謂詞類型425 9.3.2 排序和分組428 9.3.3 連接方法430 9.3.4 掃描方式431 9.4 sql調(diào)優(yōu)案例431 9.4.1 盡量使用單條語句完成邏輯431 9.4.2 合理使用not in和not exists432 9.4.3 利用子查詢進(jìn)行優(yōu)化434 9.4.4 調(diào)整表連接順序使join最優(yōu)436 9.4.5 數(shù)據(jù)非均勻分布時手工指定選擇性437 9.4.6 使用udf代替查詢中的復(fù)雜部分438 9.4.7 合并多條sql語句到單個sql表達(dá)式439 9.4.8 使用sql一次處理一個集合語義440 9.4.9 在無副作用的情況下使用sql函數(shù)442 9.4.10 小結(jié)443 9.5 提高應(yīng)用程序性能443 9.5.1 良好的sql編碼規(guī)則443 9.5.2 提高sql編程性能445 9.5.3 改進(jìn)游標(biāo)性能447 9.5.4 根據(jù)業(yè)務(wù)邏輯選擇最低粒度的隔離級別448 9.5.5 通過reopt綁定選項來提高性能448 9.5.6 統(tǒng)計信息、碎片整理和重新綁定449 9.5.7 避免不必要的排序449 9.5.8 在c/s環(huán)境中利用sql存儲過程降低網(wǎng)絡(luò)開銷450 9.5.9 在高并發(fā)環(huán)境下使用連接池450 9.5.10 使用design advisor(db2advis)建議索引450 9.5.11 提高批量刪除、插入和更新速度451 9.5.12 提高插入性能451 9.5.13 高效的select語句452 9.6 高性能sql語句注意事項453 9.6.1 避免在搜索條件中使用復(fù)雜的表達(dá)式453 9.6.2 將 optimize for n rows子句與fetch first n rows only子句配合使用454 9.6.3 避免使用冗余的謂詞454 9.6.4 避免使用多個帶有distinct關(guān)鍵字的聚集操作455 9.6.5 避免連接列之間數(shù)據(jù)類型不匹配456 9.6.6 避免對表達(dá)式使用連接謂詞456 9.6.7 避免在謂詞中使用空操作表達(dá)式來更改優(yōu)化器估算456 9.6.8 確保查詢符合星型模式連接的必需條件457 9.6.9 避免使用非等式連接謂詞458 9.6.10 避免使用不必要的外連接459 9.6.11 使用參數(shù)標(biāo)記來縮短動態(tài)查詢的編譯時間459 9.6.12 使用約束來提高查詢優(yōu)化程度460 9.7 本章小結(jié)461 第10章 db2調(diào)優(yōu)案例、問題總結(jié)和技巧463 10.1 調(diào)優(yōu)案例1:某移動公司存儲設(shè)計不當(dāng)和sql引起的i/o瓶頸463 10.2 調(diào)優(yōu)案例2:某銀行知識庫系統(tǒng)鎖等待、鎖升級引起性能瓶頸470 10.3 調(diào)優(yōu)案例3:某汽車制造商erp系統(tǒng)通過調(diào)整統(tǒng)計信息提高性能478 10.4 調(diào)優(yōu)案例4:某農(nóng)信社批量代收電費批處理慢調(diào)優(yōu)案例488 10.5 調(diào)優(yōu)案例5:某銀行系統(tǒng)sql執(zhí)行慢,通過跟蹤信息獲取調(diào)整信息492 10.6 調(diào)優(yōu)案例6:某銀行系統(tǒng)字段類型定義錯誤導(dǎo)致sql執(zhí)行時間變長495 10.7 調(diào)優(yōu)學(xué)習(xí)案例:利用壓力測試程序?qū)W習(xí)db2調(diào)優(yōu)498 本圖書信息來源:互動出版網(wǎng)
?
轉(zhuǎn)載于:https://www.cnblogs.com/china-pub/p/3171879.html
總結(jié)
以上是生活随笔為你收集整理的DB2数据库性能调整和优化(第2版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: get;get属性器
- 下一篇: Shiro缓存使用Redis、Ehcac