數(shù)據庫高效優(yōu)化:架構、規(guī)范與SQL技巧
定 價:99 元
叢書名:數(shù)據庫技術叢書
- 作者:馬立和 高振嬌 韓鋒
- 出版時間:2020/6/1
- ISBN:9787111658085
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP311.132.3
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
SQL是*重要的關系數(shù)據庫操作語言。SQL語句的運行效率,對于數(shù)據庫的整體性能至關重要。因此,SQL語句的優(yōu)化就成為數(shù)據庫專業(yè)人員必須掌握的一門技能。很多初學者經常有如何入門、提高SQL語句優(yōu)化能力的困惑。本書規(guī)避了市面上大多關于SQL優(yōu)化的書籍內容過于深奧問題,以一線開發(fā)工程師的言語和視角展開,理論與實踐并重,不僅適合初學者,也適合中端技術人員。
本書以大量案例為依托,系統(tǒng)講解了SQL語句優(yōu)化的原理、方法及技術要點,尤為注重實踐,在章節(jié)中引入了大量的案例,便于學習者實踐、測試,反復揣摩。
全書分為四篇:
引言篇,總結了實際工作中常見的問題,并通過真實案例讓讀者直觀感受到SQL語句優(yōu)化的重要。同時在每個案例后面,還針對案例出現(xiàn)的問題進行了總結;
原理篇,主要講解了和SQL語句優(yōu)化相關的基礎知識及必要的一些操作,包括優(yōu)化器、成本、執(zhí)行計劃、統(tǒng)計信息、語句解析、游標、綁定變量、數(shù)據對象等諸多方面;
優(yōu)化篇,這是本書的重點,詳細講述了優(yōu)化器對于SQL語句的多種處理方式,包括查詢轉換、數(shù)據對象訪問方式、表關聯(lián)、半/反連接、子查詢、排序、并行等等。讀者了解了這些方式,可以更好地理解優(yōu)化器的行為,也就使優(yōu)化更加有的放矢。這部分實戰(zhàn)性極強,讀者可以作為案頭參考資料,隨時查閱,反復實踐;
實踐篇,從數(shù)據設計開發(fā)規(guī)范、數(shù)據庫畫像、SQL優(yōu)化方法論、AWR報告解讀及數(shù)據庫審核平臺實踐等幾個角度全面講解在實際工作中如何通過優(yōu)化SQL,大幅度提高數(shù)據庫的性能。
推薦序
前 言
第一部分 引入篇
第0章 引言2
第1章 與SQL優(yōu)化相關的幾個案例4
案例1 一條SQL引發(fā)的“血案”4
案例2 糟糕的結構設計帶來的問題6
案例3 規(guī)范SQL寫法好處多9
案例4 “月底難過”11
案例5 COUNT(*)到底能有多快13
案例6 “抽絲剝繭”找出問題所在17
第二部分 原理篇
第2章 優(yōu)化器與成本22
2.1 優(yōu)化器22
2.1.1 基于規(guī)則的優(yōu)化器23
2.1.2 基于成本的優(yōu)化器25
2.1.3 對比兩種優(yōu)化器26
2.1.4 優(yōu)化器相關參數(shù)27
2.1.5 優(yōu)化器相關Hint30
2.2 成本35
2.2.1 基本概念35
2.2.2 計算公式36
2.2.3 計算示例36
第3章 執(zhí)行計劃40
3.1 概述40
3.1.1 什么是執(zhí)行計劃40
3.1.2 庫執(zhí)行計劃存儲方式42
3.2 解讀執(zhí)行計劃43
3.2.1 執(zhí)行順序43
3.2.2 訪問路徑45
3.3 執(zhí)行計劃操作45
3.3.1 查看執(zhí)行計劃45
3.3.2 固定執(zhí)行計劃72
3.3.3 修改執(zhí)行計劃80
第4章 統(tǒng)計信息84
4.1 統(tǒng)計信息分類84
4.1.1 系統(tǒng)統(tǒng)計信息84
4.1.2 對象統(tǒng)計信息87
4.1.3 數(shù)據字典統(tǒng)計信息109
4.1.4 內部對象統(tǒng)計信息109
4.2 統(tǒng)計信息操作109
4.2.1 系統(tǒng)統(tǒng)計信息110
4.2.2 對象統(tǒng)計信息111
4.2.3 數(shù)據字典統(tǒng)計信息115
4.2.4 內部對象統(tǒng)計信息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優(yōu)化相關對象131
7.1 表131
7.2 字段137
7.3 索引140
7.4 視圖148
7.5 函數(shù)149
7.6 數(shù)據鏈(DB_LINK)150
第8章 SQL優(yōu)化相關存儲結構153
8.1 表空間153
8.2 段154
8.3 區(qū)155
8.4 塊156
第9章 特有SQL160
9.1 MERGE160
9.2 INSERT ALL162
9.3 WITH162
9.4 CONNECT BY /START WITH163
第三部分 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章 表間關聯(lián)215
12.1 關聯(lián)關系215
12.2 表關聯(lián)實現(xiàn)方法218
12.3 嵌套循環(huán)連接220
12.4 排序合并連接226
12.5 哈希連接232
12.6 其他連接方式238
第13章 半連接與反連接243
13.1 半連接243
13.2 反連接246
第14章 排序250
14.1 引發(fā)排序的操作250
14.2 避免和減少排序251
14.2.1 優(yōu)化原則及基本方法251
14.2.2 避免排序的示例252
14.3 排序過程及內存使用255
14.4 執(zhí)行計劃中的“Sort”258
第15章 子查詢262
15.1 處理方式262
15.2 子查詢分類263
15.2.1 按照語法分類263
15.2.2 按照謂詞分類263
15.2.3 示例264
15.3 子查詢優(yōu)化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 并行DML280
16.1.3 并行DDL283
16.2 并行級別286
16.3 并行原理286
16.3.1 從屬進程286
16.3.2 粒度287
第四部分 實踐篇
第17章 數(shù)據庫設計開發(fā)規(guī)范292
17.1 Oracle結構設計規(guī)范292
17.1.1 建模工具292
17.1.2 命名規(guī)范294
17.1.3 數(shù)據類型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開發(fā)規(guī)范306
17.2.1 書寫規(guī)范306
17.2.2 編碼規(guī)范307
17.2.3 注釋規(guī)范307
17.2.4 語法規(guī)范308
17.3 MySQL結構設計規(guī)范312
17.3.1 命名規(guī)則313
17.3.2 使用原則314
17.3.3 規(guī)模規(guī)則315
17.3.4 字段規(guī)則315
17.3.5 索引規(guī)則319
17.3.6 字符集321
17.3.7 逆范式設計321
17.4 MySQL開發(fā)規(guī)范322
17.4.1 基本原則322
17.4.2 語句規(guī)范322
第18章 架構設計之數(shù)據庫承載力評估327
18.1 評估工作327
18.1.1 建立性能基線327
18.1.2 建立業(yè)務壓力模型329
18.1.3 模擬壓力測試331
18.2 優(yōu)化步驟331
第19章 數(shù)據庫畫像335
19.1 你了解你的數(shù)據庫嗎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章 數(shù)據庫審核平臺實踐:功能343
20.1 背景說明343
20.2 平臺選型347
20.3 平臺定位348
20.4 平臺原理349
20.5 推進方法350
第21章 數(shù)據庫審核平臺實踐:實現(xiàn)352
21.1 平臺設計352
21.2 流程圖354
21.3 數(shù)據結構355
21.4 主要模塊356
21.4.1 數(shù)據采集356
21.4.2 規(guī)則解析358
21.4.3 系統(tǒng)管理364
21.5 審核結果展示366
第22章 數(shù)據庫審核平臺實踐:規(guī)則370
22.1 對象級370
22.1.1 Oracle370
22.1.2 MySQL379
22.2 執(zhí)行計劃級384
22.2.1 Oracle384
22.2.2 MySQL389
22.3 執(zhí)行特征級392
22.3.1 Oracle392
22.3.2 MySQL394
22.4 文本級395
22.4.1 Oracle395
22.4.2 MySQL400
附錄A 常用技巧401
附錄B SQL優(yōu)化參數(shù)406
附錄C SQL優(yōu)化數(shù)據字典409
附錄D SQL優(yōu)化等待事件411
附錄E SQL優(yōu)化提示414