高性能SQL調優精要與案例解析

高性能SQL調優精要與案例解析

《高性能SQL調優精要與案例解析》 一書由閆書清 編著,電子工業出版社2017年8月出版

內容提要

《高性能SQL調優精要與案例解析》共分為兩篇,基礎篇(第1 章~第10 章)介紹了SQL 調優應該具備和掌握的理論和方法,實踐篇(第11 章)精選並深入解析了10 個現實中的實際案例。

《高性能SQL調優精要與案例解析》前3 章主要介紹了Oracle 資料庫架構設計及實現方面的內容。第4 章詳細講解了Oracle 各種資料庫對象的相關實現、特性和理解。第5 章介紹了事務及Oracle 事務相關的特性。第6~8 章詳細講解了執行計畫及其相關因素、方法和元素。第9~10 章分別講解了如何通過分析SQL 語句執行計畫來確定其性能瓶頸,進而解決相關問題的思路和方法。第11 章以精選的10 個現實中的實際案例為樣本,並對其逐一進行了理論結合實踐的深入講解和剖析,以期通過實際案例的解析,達到讀者對基礎理論進行驗證、再學習的目的。

《高性能SQL調優精要與案例解析》適用於所有關係資料庫相關從業人員,尤其是中高端技術人員。

目錄

基礎篇

第1 章 整體架構 2

1.1 實例 2

1.2 資料庫 3

1.3 整體架構圖解 5

第2 章 記憶體架構 7

2.1 系統全局區 7

2.1.1 共享池 7

2.1.2 數據緩衝 8

2.1.3 重做日誌緩衝 8

2.1.4 系統全局區相關信息 9

2.2 程式全局區 9

2.2.1 會話區 9

2.2.2 SQL 工作區 10

2.2.3 程式全局區的相關信息 10

第3 章 存儲架構 11

3.1 塊 11

3.2 區間 13

3.3 段 14

3.4 表空間 14

第4 章 對象類型 17

4.1 表 17

4.1.1 表的概念 17

4.1.2 表的註解 17

4.1.3 表與段 18

4.1.4 表分區 19

4.2 索引 21

4.2.1 索引的概念 21

4.2.2 索引的註解 21

4.2.3 本地索引和全局索引 24

4.2.4 B*Tree 索引組織結構 25

4.2.5 點陣圖索引 26

4.3 簇 27

4.3.1 簇的概念 27

4.3.2 簇注的解 27

4.4 視圖 27

4.4.1 視圖的概念 27

4.4.2 視圖的註解 28

4.5 物化視圖 28

4.5.1 物化視圖的概念 28

4.5.2 物化視圖的註解 28

4.6 同義詞 29

4.6.1 同義詞的概念 29

4.6.2 同義詞的註解 29

4.7 序列 30

4.7.1 序列的概念 30

4.7.2 序列的註解 30

4.8 索引組織表 30

4.8.1 索引組織表的概念 30

4.8.2 索引組織表的註解 31

4.9 過程和函式 31

4.9.1 過程和函式的概念 31

4.9.2 過程和函式的註解 32

4.10 觸發器 32

4.10.1 觸發器的概念 32

4.10.2 觸發器的註解 33

4.11 包 33

4.11.1 包的概念 33

4.11.2 包註解 33

4.12 約束 34

4.12.1 約束的概念 34

4.12.2 約束的註解 34

第5 章 事務 35

5.1 事務的概念 35

5.2 事務的特性 36

5.3 ANSI/ISO SQL 標準定義的事務隔離級別 36

5.4 Oracle 支持的事務隔離級別 36

5.5 事務的開始和結束 37

5.6 事務的相關信息 37

第6 章 執行計畫 39

6.1 執行計畫的概念 39

6.2 系統統計數據 40

6.3 對象統計數據 41

6.4 擴展統計數據 42

6.4.1 擴展統計數據的概念 42

6.4.2 擴展統計數據的限制 42

6.5 執行計畫的獲取方法 42

6.5.1 GUI 工具 43

6.5.2 autotrace 的功能 45

6.5.3 DBMS_XPLAN 包 47

6.5.4 SQL 查詢方法 55

6.5.5 跟蹤方法 56

6.6 執行計畫閱讀及分析方法 58

第7 章 執行計畫操作與分析 59

7.1 表相關操作 59

7.2 索引相關操作 65

7.3 物化視圖相關操作 72

7.4 連線相關操作 75

7.5 分區相關操作 91

7.6 並行相關操作 98

7.6.1 並行相關的概念 98

7.6.2 並行相關操作示例 100

7.7 排序相關操作 111

7.8 視圖相關操作 116

7.9 集合相關操作 118

7.10 點陣圖相關操作 121

7.11 聚合相關操作 126

7.12 分析函式相關操作 127

7.13 層級相關操作 130

7.14 DDL 及DML 相關操作 134

7.15 其他相關操作 142

第8 章 調優相關數據項 150

8.1 執行計畫數據項 150

8.2 性能統計信息數據項 151

第9 章 確定瓶頸 153

9.1 分析Cost 方法 153

9.1.1 方法說明 153

9.1.2 分析要點 153

9.1.3 方法優勢 154

9.1.4 方法劣勢 154

9.2 分析Trace 結果方法 154

9.2.1 方法說明 154

9.2.2 分析要點 157

9.2.3 方法優勢 157

9.2.4 方法劣勢 157

9.3 目測分析方法 157

9.3.1 方法說明 157

9.3.2 分析要點 158

9.3.3 方法優勢 158

9.3.4 方法劣勢 158

第10 章 解決問題 159

10.1 合理使用索引 159

10.1.1 索引套用的一般原則 161

10.1.2 索引套用的認識誤區 162

10.2 合理使用表分區 163

10.2.1 合理選擇表分區類型 163

10.2.2 合理選擇索引類型 164

10.3 收集和維護統計數據 164

10.3.1 自動收集統計數據 164

10.3.2 手動收集和維護統計數據 166

10.3.3 收集和維護擴展統計數據 169

10.4 SQL 語句改寫 170

10.4.1 消除視圖 170

10.4.2 標量子查詢改為外連線 172

10.4.3 update 改為merge into 173

10.4.4 正確使用分析函式 175

10.4.5 with as 去除多次掃描 176

10.4.6 union 改為or 178

10.4.7 or 改為union 179

10.4.8 in 改為join 181

10.4.9 in 改為exists 182

10.4.10 not in 改為not exists 183

10.4.11 not exists 改為not in 184

10.4.12 exists 改為join 185

10.4.13 not exists 改為join 187

10.4.14 join 改為exists 188

10.4.15 join 改為not exists 189

10.4.16 改寫為集合運算符 190

10.5 正確使用Hint 191

10.5.1 Hint 的概念及場景 191

10.5.2 Hint 的具體語法 192

10.5.3 常用Hint 193

10.6 資料庫開發常識 220

10.6.1 判斷SQL 性能的標準 220

10.6.2 索引相關誤區 220

10.6.3 慎用多視圖連線 222

10.6.4 慎用循環Delete 222

10.6.5 考量綁定變數的套用 223

10.6.6 減少參與連線的表數 223

10.6.7 慎用觸發器 223

10.6.8 慎用臨時表 224

10.6.9 表連線寫法選擇和排序 225

實踐篇

第11 章 案例解析 228

11.1 案例一 228

11.1.1 問題背景 228

11.1.2 問題描述 229

11.1.3 問題分析及解決 230

11.1.4 最佳化效果 233

11.2 案例二 235

11.2.1 問題背景 235

11.2.2 問題描述 235

11.2.3 問題分析及解決 237

11.2.4 最佳化效果 241

11.3 案例三 242

11.3.1 問題背景 242

11.3.2 問題描述 244

11.3.3 問題分析及解決 245

11.3.4 最佳化效果 247

11.4 案例四 248

11.4.1 問題背景 248

11.4.2 問題描述 249

11.4.3 問題分析及解決 251

11.4.4 最佳化效果 254

11.5 案例五 255

11.5.1 問題背景 255

11.5.2 問題描述 255

11.5.3 問題分析及解決 256

11.5.4 最佳化效果 258

11.6 案例六 259

11.6.1 問題背景 259

11.6.2 問題描述 259

11.6.3 問題分析及解決 262

11.6.4 最佳化效果 266

11.7 案例七 267

11.7.1 問題背景 267

11.7.2 問題描述 268

11.7.3 問題分析及解決 271

11.7.4 最佳化效果 274

11.8 案例八 277

11.8.1 問題背景 277

11.8.2 問題描述 277

11.8.3 問題分析及解決 281

11.9 案例九 282

11.9.1 問題背景 282

11.9.2 問題描述 286

11.9.3 問題分析及解決 288

11.9.4 最佳化效果 289

11.10 案例十 290

11.10.1 問題背景 290

11.10.2 問題描述 291

11.10.3 問題分析及解決 292

11.10.4 最佳化效果 295

相關詞條

熱門詞條

聯絡我們