推薦序
前 言
第一部分 引入篇
第0章 引言 2
第1章 與SQL優化相關的幾個案例 4
案例1 一條SQL引發的“血案” 4
案例2 糟糕的結構設計帶來的問題 6
案例3 規範SQL寫法好處多 9
案例4 “月底難過” 11
案例5 COUNT(*)到底能有多快 13
案例6 “抽絲剝繭”找齣問題所在 17
第二部分 原理篇
第2章 優化器與成本 22
2.1 優化器 22
2.1.1 基於規則的優化器 23
2.1.2 基於成本的優化器 25
2.1.3 對比兩種優化器 26
2.1.4 優化器相關參數 27
2.1.5 優化器相關Hint 30
2.2 成本 35
2.2.1 基本概念 35
2.2.2 計算公式 36
2.2.3 計算示例 36
第3章 執行計劃 40
3.1 概述 40
3.1.1 什麼是執行計劃 40
3.1.2 庫執行計劃存儲方式 42
3.2 解讀執行計劃 43
3.2.1 執行順序 43
3.2.2 訪問路徑 45
3.3 執行計劃操作 45
3.3.1 查看執行計劃 45
3.3.2 固定執行計劃 72
3.3.3 修改執行計劃 80
第4章 統計信息 84
4.1 統計信息分類 84
4.1.1 係統統計信息 84
4.1.2 對象統計信息 87
4.1.3 數據字典統計信息 109
4.1.4 內部對象統計信息 109
4.2 統計信息操作 109
4.2.1 係統統計信息 110
4.2.2 對象統計信息 111
4.2.3 數據字典統計信息 115
4.2.4 內部對象統計信息 115
第5章 SQL解析與遊標 116
5.1 解析步驟 116
5.2 解析過程 117
5.3 遊標示例 119
第6章 綁定變量 122
6.1 使用方法 122
6.2 綁定變量與解析 124
6.3 遊標共享 129
第7章 SQL優化相關對象 131
7.1 錶 131
7.2 字段 137
7.3 索引 140
7.4 視圖 148
7.5 函數 149
7.6 數據鏈(DB_LINK) 150
第8章 SQL優化相關存儲結構 153
8.1 錶空間 153
8.2 段 154
8.3 區 155
8.4 塊 156
第9章 特有SQL 160
9.1 MERGE 160
9.2 INSERT ALL 162
9.3 WITH 162
9.4 CONNECT BY /START WITH 163
第三部分 SQL篇
第10章 查詢轉換 166
10.1 查詢轉換的分類及說明 166
10.2 查詢轉換—子查詢類 167
10.3 查詢轉換—視圖類 174
10.4 查詢轉換—謂詞類 178
10.5 查詢轉換—消除類 180
10.6 查詢轉換—其他 181
第11章 訪問路徑 189
11.1 錶訪問路徑 189
11.1.1 全錶掃描 189
11.1.2 ROWID掃描 193
11.1.3 采樣掃描 194
11.2 B樹索引訪問路徑 195
11.3 位圖索引訪問路徑 205
11.4 其他訪問路徑 210
第12章 錶間關聯 215
12.1 關聯關係 215
12.2 錶關聯實現方法 218
12.3 嵌套循環連接 220
12.4 排序閤並連接 226
12.5 哈希連接 232
12.6 其他連接方式 238
第13章 半連接與反連接 243
13.1 半連接 243
13.2 反連接 246
第14章 排序 250
14.1 引發排序的操作 250
14.2 避免和減少排序 251
14.2.1 優化原則及基本方法 251
14.2.2 避免排序的示例 252
14.3 排序過程及內存使用 255
14.4 執行計劃中的“Sort” 258
第15章 子查詢 262
15.1 處理方式 262
15.2 子查詢分類 263
15.2.1 按照語法分類 263
15.2.2 按照謂詞分類 263
15.2.3 示例 264
15.3 子查詢優化 266
15.4 子查詢特殊問題 272
15.4.1 空值問題 272
15.4.2 OR問題 274
15.4.3 [NOT] IN/EXISTS問題 275
第16章 並行 276
16.1 並行操作 276
16.1.1 並行查詢 277
16.1.2 並行DML 280
16.1.3 並行DDL 283
16.2 並行級彆 286
16.3 並行原理 286
16.3.1 從屬進程 286
16.3.2 粒度 287
第四部分 實踐篇
第17章 數據庫設計開發規範 292
17.1 Oracle結構設計規範 292
17.1.1 建模工具 292
17.1.2 命名規範 294
17.1.3 數據類型 296
17.1.4 錶設計 297
17.1.5 字段設計 299
17.1.6 約束設計 299
17.1.7 索引設計 300
17.1.8 視圖設計 303
17.1.9 包設計 303
17.1.10 範式與逆範式 304
17.1.11 其他設計問題 305
17.2 Oracle開發規範 306
17.2.1 書寫規範 306
17.2.2 編碼規範 307
17.2.3 注釋規範 307
17.2.4 語法規範 308
17.3 MySQL結構設計規範 312
17.3.1 命名規則 313
17.3.2 使用原則 314
17.3.3 規模規則 315
17.3.4 字段規則 315
17.3.5 索引規則 319
17.3.6 字符集 321
17.3.7 逆範式設計 321
17.4 MySQL開發規範 322
17.4.1 基本原則 322
17.4.2 語句規範 322
第18章 架構設計之數據庫承載力評估 327
18.1 評估工作 327
18.1.1 建立性能基綫 327
18.1.2 建立業務壓力模型 329
18.1.3 模擬壓力測試 331
18.2 優化步驟 331
第19章 數據庫畫像 335
19.1 你瞭解你的數據庫嗎 335
19.2 畫像設計思路 336
19.3 畫像報告解讀 336
19.3.1 概要信息 336
19.3.2 空間信息 336
19.3.3 對象信息 337
19.3.4 訪問特徵 339
19.3.5 資源消耗 341
19.3.6 SQL語句 342
第20章 數據庫審核平颱實踐:功能 343
20.1 背景說明 343
20.2 平颱選型 347
20.3 平颱定位 348
20.4 平颱原理 349
20.5 推進方法 350
第21章 數據庫審核平颱實踐:實現 352
21.1 平颱設計 352
21.2 流程圖 354
21.3 數據結構 355
21.4 主要模塊 356
21.4.1 數據采集 356
21.4.2 規則解析 358
21.4.3 係統管理 364
21.5 審核結果展示 366
第22章 數據庫審核平颱實踐:規則 370
22.1 對象級 370
22.1.1 Oracle 370
22.1.2 MySQL 379
22.2 執行計劃級 384
22.2.1 Oracle 384
22.2.2 MySQL 389
22.3 執行特徵級 392
22.3.1 Oracle 392
22.3.2 MySQL 394
22.4 文本級 395
22.4.1 Oracle 395
22.4.2 MySQL 400
附錄A 常用技巧 401
附錄B SQL優化參數 406
附錄C SQL優化數據字典 409
附錄D SQL優化等待事件 411
附錄E SQL優化提示 414
· · · · · · (
收起)