數(shù)據(jù)庫高效優(yōu)化:架構(gòu)、規(guī)范與SQL技巧
定 價(jià):99 元
叢書名:數(shù)據(jù)庫技術(shù)叢書
- 作者:馬立和 高振嬌 韓鋒
- 出版時(shí)間:2020/6/1
- ISBN:9787111658085
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.132.3
- 頁碼:0
- 紙張:
- 版次:
- 開本:16開
SQL是*重要的關(guān)系數(shù)據(jù)庫操作語言。SQL語句的運(yùn)行效率,對于數(shù)據(jù)庫的整體性能至關(guān)重要。因此,SQL語句的優(yōu)化就成為數(shù)據(jù)庫專業(yè)人員必須掌握的一門技能。很多初學(xué)者經(jīng)常有如何入門、提高SQL語句優(yōu)化能力的困惑。本書規(guī)避了市面上大多關(guān)于SQL優(yōu)化的書籍內(nèi)容過于深?yuàn)W問題,以一線開發(fā)工程師的言語和視角展開,理論與實(shí)踐并重,不僅適合初學(xué)者,也適合中端技術(shù)人員。
本書以大量案例為依托,系統(tǒng)講解了SQL語句優(yōu)化的原理、方法及技術(shù)要點(diǎn),尤為注重實(shí)踐,在章節(jié)中引入了大量的案例,便于學(xué)習(xí)者實(shí)踐、測試,反復(fù)揣摩。
全書分為四篇:
引言篇,總結(jié)了實(shí)際工作中常見的問題,并通過真實(shí)案例讓讀者直觀感受到SQL語句優(yōu)化的重要。同時(shí)在每個(gè)案例后面,還針對案例出現(xiàn)的問題進(jìn)行了總結(jié);
原理篇,主要講解了和SQL語句優(yōu)化相關(guān)的基礎(chǔ)知識及必要的一些操作,包括優(yōu)化器、成本、執(zhí)行計(jì)劃、統(tǒng)計(jì)信息、語句解析、游標(biāo)、綁定變量、數(shù)據(jù)對象等諸多方面;
優(yōu)化篇,這是本書的重點(diǎn),詳細(xì)講述了優(yōu)化器對于SQL語句的多種處理方式,包括查詢轉(zhuǎn)換、數(shù)據(jù)對象訪問方式、表關(guān)聯(lián)、半/反連接、子查詢、排序、并行等等。讀者了解了這些方式,可以更好地理解優(yōu)化器的行為,也就使優(yōu)化更加有的放矢。這部分實(shí)戰(zhàn)性極強(qiáng),讀者可以作為案頭參考資料,隨時(shí)查閱,反復(fù)實(shí)踐;
實(shí)踐篇,從數(shù)據(jù)設(shè)計(jì)開發(fā)規(guī)范、數(shù)據(jù)庫畫像、SQL優(yōu)化方法論、AWR報(bào)告解讀及數(shù)據(jù)庫審核平臺實(shí)踐等幾個(gè)角度全面講解在實(shí)際工作中如何通過優(yōu)化SQL,大幅度提高數(shù)據(jù)庫的性能。
推薦序
前 言
第一部分 引入篇
第0章 引言2
第1章 與SQL優(yōu)化相關(guān)的幾個(gè)案例4
案例1 一條SQL引發(fā)的“血案”4
案例2 糟糕的結(jié)構(gòu)設(shè)計(jì)帶來的問題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)化器相關(guān)參數(shù)27
2.1.5 優(yōu)化器相關(guān)Hint30
2.2 成本35
2.2.1 基本概念35
2.2.2 計(jì)算公式36
2.2.3 計(jì)算示例36
第3章 執(zhí)行計(jì)劃40
3.1 概述40
3.1.1 什么是執(zhí)行計(jì)劃40
3.1.2 庫執(zhí)行計(jì)劃存儲方式42
3.2 解讀執(zhí)行計(jì)劃43
3.2.1 執(zhí)行順序43
3.2.2 訪問路徑45
3.3 執(zhí)行計(jì)劃操作45
3.3.1 查看執(zhí)行計(jì)劃45
3.3.2 固定執(zhí)行計(jì)劃72
3.3.3 修改執(zhí)行計(jì)劃80
第4章 統(tǒng)計(jì)信息84
4.1 統(tǒng)計(jì)信息分類84
4.1.1 系統(tǒng)統(tǒng)計(jì)信息84
4.1.2 對象統(tǒng)計(jì)信息87
4.1.3 數(shù)據(jù)字典統(tǒng)計(jì)信息109
4.1.4 內(nèi)部對象統(tǒng)計(jì)信息109
4.2 統(tǒng)計(jì)信息操作109
4.2.1 系統(tǒng)統(tǒng)計(jì)信息110
4.2.2 對象統(tǒng)計(jì)信息111
4.2.3 數(shù)據(jù)字典統(tǒng)計(jì)信息115
4.2.4 內(nèi)部對象統(tǒng)計(jì)信息115
第5章 SQL解析與游標(biāo)116
5.1 解析步驟116
5.2 解析過程117
5.3 游標(biāo)示例119
第6章 綁定變量122
6.1 使用方法122
6.2 綁定變量與解析124
6.3 游標(biāo)共享129
第7章 SQL優(yōu)化相關(guān)對象131
7.1 表131
7.2 字段137
7.3 索引140
7.4 視圖148
7.5 函數(shù)149
7.6 數(shù)據(jù)鏈(DB_LINK)150
第8章 SQL優(yōu)化相關(guān)存儲結(jié)構(gò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章 查詢轉(zhuǎn)換166
10.1 查詢轉(zhuǎn)換的分類及說明166
10.2 查詢轉(zhuǎn)換—子查詢類167
10.3 查詢轉(zhuǎn)換—視圖類174
10.4 查詢轉(zhuǎn)換—謂詞類178
10.5 查詢轉(zhuǎn)換—消除類180
10.6 查詢轉(zhuǎn)換—其他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章 表間關(guān)聯(lián)215
12.1 關(guān)聯(lián)關(guān)系215
12.2 表關(guān)聯(lián)實(shí)現(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 排序過程及內(nèi)存使用255
14.4 執(zhí)行計(jì)劃中的“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 從屬進(jìn)程286
16.3.2 粒度287
第四部分 實(shí)踐篇
第17章 數(shù)據(jù)庫設(shè)計(jì)開發(fā)規(guī)范292
17.1 Oracle結(jié)構(gòu)設(shè)計(jì)規(guī)范292
17.1.1 建模工具292
17.1.2 命名規(guī)范294
17.1.3 數(shù)據(jù)類型296
17.1.4 表設(shè)計(jì)297
17.1.5 字段設(shè)計(jì)299
17.1.6 約束設(shè)計(jì)299
17.1.7 索引設(shè)計(jì)300
17.1.8 視圖設(shè)計(jì)303
17.1.9 包設(shè)計(jì)303
17.1.10 范式與逆范式304
17.1.11 其他設(shè)計(jì)問題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結(jié)構(gòu)設(shè)計(jì)規(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 逆范式設(shè)計(jì)321
17.4 MySQL開發(fā)規(guī)范322
17.4.1 基本原則322
17.4.2 語句規(guī)范322
第18章 架構(gòu)設(shè)計(jì)之?dāng)?shù)據(jù)庫承載力評估327
18.1 評估工作327
18.1.1 建立性能基線327
18.1.2 建立業(yè)務(wù)壓力模型329
18.1.3 模擬壓力測試331
18.2 優(yōu)化步驟331
第19章 數(shù)據(jù)庫畫像335
19.1 你了解你的數(shù)據(jù)庫嗎335
19.2 畫像設(shè)計(jì)思路336
19.3 畫像報(bào)告解讀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ù)據(jù)庫審核平臺實(shí)踐:功能343
20.1 背景說明343
20.2 平臺選型347
20.3 平臺定位348
20.4 平臺原理349
20.5 推進(jìn)方法350
第21章 數(shù)據(jù)庫審核平臺實(shí)踐:實(shí)現(xiàn)352
21.1 平臺設(shè)計(jì)352
21.2 流程圖354
21.3 數(shù)據(jù)結(jié)構(gòu)355
21.4 主要模塊356
21.4.1 數(shù)據(jù)采集356
21.4.2 規(guī)則解析358
21.4.3 系統(tǒng)管理364
21.5 審核結(jié)果展示366
第22章 數(shù)據(jù)庫審核平臺實(shí)踐:規(guī)則370
22.1 對象級370
22.1.1 Oracle370
22.1.2 MySQL379
22.2 執(zhí)行計(jì)劃級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ù)據(jù)字典409
附錄D SQL優(yōu)化等待事件411
附錄E SQL優(yōu)化提示414