金倉數據庫KingbaseES性能優化
馮玉 杜勝 尹強 楊尚 王鴻翔
相關主題
商品描述
"本書是關於KingbaseES數據庫性能優化兼具技術性與指導性的參考書,包括性能優化的基本概念、KingbaseES的系統架構和運行機制、操作系統性能診斷、KingbaseES的性能診斷工具、數據庫實例層面的優化、SQL語句的執行原理與優化,以及數據庫對象物理設計優化等內容。 本書采用TPC經典的TPCC和TPCH基準測試為樣例,以實戰的方式幫助讀者理解和掌握KingbaseES數據庫性能優化涉及的原理和知識點。 本書適合作為KingbaseES數據庫管理員、數據庫應用開發人員以及數據庫技術愛好者的參考書,也可以作為高等院校計算機大類高年級本科生或研究生學習數據庫管理系統原理、理解數據庫性能優化理論與實踐的教材。 "
目錄大綱
目錄
第1章KingbaseES性能優化1
1.1性能優化的基本概念1
1.2系統性能規劃2
1.3數據庫系統性能問題定位3
1.4數據庫服務器性能調優4
1.4.1定義性能目標4
1.4.2定位資源瓶頸5
1.4.3分析優化點5
1.4.4實施並測試性能6
1.5數據庫性能基準測試7
1.6本書測試實驗環境9
第2章KingbaseES性能優化基礎10
2.1KingbaseES體系結構10
2.1.1進程結構10
2.1.2內存結構12
2.1.3存儲結構13
2.1.4數據庫連接16
2.1.5SQL語句的執行過程18
2.2KingbaseES並發控制18
2.2.1多版本並發控制19
2.2.2數據庫鎖19
2.3KingbaseES日誌系統21
2.3.1日誌系統組件21
2.3.2日誌系統的相關配置22
第3章操作系統性能診斷24
3.1概述24
3.2確定系統性能瓶頸25
3.3CPU和內存資源分析26
3.4磁盤資源分析28
3.5網絡資源分析29
第4章數據庫性能診斷31
4.1概述31
4.2日誌分析工具kbbadger 33
4.2.1配置系統運行日誌33
4.2.2生成性能報告34
4.3動態性能視圖36
4.3.1概述36
4.3.2統計信息收集子系統38
4.3.3數據庫實例運行信息39
4.3.4TOP SQL語句信息41
4.3.5SQL語句運行信息44
4.3.6數據庫中的常規鎖信息45
4.3.7數據庫對象運行信息46
4.4自動負載信息庫KWR48
4.4.1KWR概述48
4.4.2KWR快照48
4.4.3生成KWR報告49
4.4.4理解數據庫時間模型50
4.4.5解讀KWR報告53
4.4.6KWR DIFF報告62
4.5數據庫調優建議工具KDDM64
4.5.1生成KDDM報告64
4.5.2解讀KDDM報告65
4.5.3應用KDDM建議70
4.6活躍會話歷史報告KSH71
4.6.1KSH基本概念71
4.6.2生成KSH報告71
4.6.3解讀KSH報告73
第5章數據庫實例優化75
5.1性能分析概述75
5.2等待事件瓶頸分析與優化76
5.2.1I/O等待事件分析與優化76
5.2.2輕量級鎖等待事件分析與優化79
5.2.3常規鎖等待事件分析與優化81
5.2.4通信等待事件分析與優化82
5.3CPU瓶頸分析與優化83
5.3.1綁核技術83
5.3.2使用執行計劃緩存83
5.4數據庫實例優化實踐85
5.4.1第一輪測試分析85
5.4.2第二輪測試分析89
5.4.3第三輪測試分析92
第6章SQL語句優化基礎94
6.1查詢處理概述94
6.2查詢編譯器95
6.3查詢優化器99
6.3.1概述99
6.3.2邏輯優化100
6.3.3物理優化102
6.3.4統計信息104
6.3.5擴展統計信息107
6.4查詢執行器109
第7章SQL查詢執行計劃111
7.1獲取執行計劃111
7.1.1使用explain命令111
7.1.2使用數據庫開發管理工具KStudio114
7.1.3使用auto_explain插件114
7.2單表查詢115
7.2.1全表掃描116
7.2.2索引掃描116
7.2.3位圖掃描118
7.2.4僅索引掃描119
7.2.5排序119
7.2.6去重121
7.3多表連接查詢122
7.3.1嵌套循環連接122
7.3.2歸並連接124
7.3.3哈希連接124
7.3.4外連接126
7.3.5多表連接的執行計劃127
7.4統計分析查詢128
7.4.1聚集查詢128
7.4.2窗口函數130
7.5集合查詢131
7.6子查詢133
7.6.1子查詢概述133
7.6.2派生表134
7.6.3標量/行子查詢137
7.6.4存在性檢測子查詢140
7.6.5集合比較子查詢142
7.6.6WITH子句146
7.7層次查詢148
7.8閱讀執行計劃152
第8章優化SQL執行計劃156
8.1分析執行計劃156
8.2使用SQL優化建議器158
8.3收集統計信息160
8.4調整系統配置參數162
8.4.1代價計算相關的參數162
8.4.2操作相關的參數163
8.4.3內存相關的參數168
8.4.4與邏輯優化相關的參數168
8.5使用Hint178
8.5.1啟用Hint178
8.5.2使用Hint指定表掃描方法179
8.5.3使用Hint指定連接算法180
8.5.4使用Hint指定連接順序182
8.5.5使用Hint 指定實現聚集函數的算法184
8.5.6使用Hint 修正基數估算184
8.5.7使用Hint 註意事項185
8.6使用索引188
8.6.1索引概述188
8.6.2Btree索引188
8.6.3其他索引類型197
8.6.4索引與列轉換202
8.6.5索引與字符串匹配204
8.6.6索引維護208
8.7使用並行209
8.7.1並行執行概述209
8.7.2並行執行算法211
8.7.3配置並行執行220
8.8使用查詢映射223
8.8.1查詢映射概述223
8.8.2查詢映射的使用方式223
第9章編寫高效的SQL語句227
9.1SQL語句中的謂詞227
9.1.1多個謂詞227
9.1.2OR連接的謂詞228
9.1.3謂詞推導230
9.1.4互相矛盾的謂詞233
9.2連接操作234
9.2.1連接謂詞與選擇謂詞234
9.2.2去除不必要的連接237
9.3聚集與連接操作238
9.4子查詢240
9.4.1派生表240
9.4.2標量子查詢242
9.4.3IN和EXISTS查詢245
9.4.4使用Window函數優化子查詢249
9.4.5編寫不規範的子查詢252
9.5集合操作253
9.6結果集行數有限制的查詢257
9.7臨時表與CTE260
9.8SQL中的函數262
9.8.1函數的執行性能262
9.8.2函數的穩定態266
9.9避免表的多次掃描268
第10章數據庫對象物理設計優化271
10.1表設計271
10.1.1表中列的數據類型271
10.1.2表的屬性參數275
10.1.3表中數據的順序275
10.2使用分區277
10.2.1分區表概述277
10.2.2創建分區表278
10.2.3創建分區索引282
10.2.4操作分區表283
10.2.5設計分區表292
10.2.6分區設計實踐293
10.3使用物化視圖294
參考文獻297



