數(shù)據(jù)庫(kù)高效優(yōu)化:架構(gòu)、規(guī)范與SQL技巧
定 價(jià):99 元
叢書(shū)名:數(shù)據(jù)庫(kù)技術(shù)叢書(shū)
- 作者:馬立和 高振嬌 韓鋒
- 出版時(shí)間:2020/6/1
- ISBN:9787111658085
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP311.132.3
- 頁(yè)碼:0
- 紙張:
- 版次:
- 開(kāi)本:16開(kāi)
SQL是*重要的關(guān)系數(shù)據(jù)庫(kù)操作語(yǔ)言。SQL語(yǔ)句的運(yùn)行效率,對(duì)于數(shù)據(jù)庫(kù)的整體性能至關(guān)重要。因此,SQL語(yǔ)句的優(yōu)化就成為數(shù)據(jù)庫(kù)專(zhuān)業(yè)人員必須掌握的一門(mén)技能。很多初學(xué)者經(jīng)常有如何入門(mén)、提高SQL語(yǔ)句優(yōu)化能力的困惑。本書(shū)規(guī)避了市面上大多關(guān)于SQL優(yōu)化的書(shū)籍內(nèi)容過(guò)于深?yuàn)W問(wèn)題,以一線開(kāi)發(fā)工程師的言語(yǔ)和視角展開(kāi),理論與實(shí)踐并重,不僅適合初學(xué)者,也適合中端技術(shù)人員。
本書(shū)以大量案例為依托,系統(tǒng)講解了SQL語(yǔ)句優(yōu)化的原理、方法及技術(shù)要點(diǎn),尤為注重實(shí)踐,在章節(jié)中引入了大量的案例,便于學(xué)習(xí)者實(shí)踐、測(cè)試,反復(fù)揣摩。
全書(shū)分為四篇:
引言篇,總結(jié)了實(shí)際工作中常見(jiàn)的問(wèn)題,并通過(guò)真實(shí)案例讓讀者直觀感受到SQL語(yǔ)句優(yōu)化的重要。同時(shí)在每個(gè)案例后面,還針對(duì)案例出現(xiàn)的問(wèn)題進(jìn)行了總結(jié);
原理篇,主要講解了和SQL語(yǔ)句優(yōu)化相關(guān)的基礎(chǔ)知識(shí)及必要的一些操作,包括優(yōu)化器、成本、執(zhí)行計(jì)劃、統(tǒng)計(jì)信息、語(yǔ)句解析、游標(biāo)、綁定變量、數(shù)據(jù)對(duì)象等諸多方面;
優(yōu)化篇,這是本書(shū)的重點(diǎn),詳細(xì)講述了優(yōu)化器對(duì)于SQL語(yǔ)句的多種處理方式,包括查詢(xún)轉(zhuǎn)換、數(shù)據(jù)對(duì)象訪問(wèn)方式、表關(guān)聯(lián)、半/反連接、子查詢(xún)、排序、并行等等。讀者了解了這些方式,可以更好地理解優(yōu)化器的行為,也就使優(yōu)化更加有的放矢。這部分實(shí)戰(zhàn)性極強(qiáng),讀者可以作為案頭參考資料,隨時(shí)查閱,反復(fù)實(shí)踐;
實(shí)踐篇,從數(shù)據(jù)設(shè)計(jì)開(kāi)發(fā)規(guī)范、數(shù)據(jù)庫(kù)畫(huà)像、SQL優(yōu)化方法論、AWR報(bào)告解讀及數(shù)據(jù)庫(kù)審核平臺(tái)實(shí)踐等幾個(gè)角度全面講解在實(shí)際工作中如何通過(guò)優(yōu)化SQL,大幅度提高數(shù)據(jù)庫(kù)的性能。
推薦序
前 言
第一部分 引入篇
第0章 引言2
第1章 與SQL優(yōu)化相關(guān)的幾個(gè)案例4
案例1 一條SQL引發(fā)的“血案”4
案例2 糟糕的結(jié)構(gòu)設(shè)計(jì)帶來(lái)的問(wèn)題6
案例3 規(guī)范SQL寫(xiě)法好處多9
案例4 “月底難過(guò)”11
案例5 COUNT(*)到底能有多快13
案例6 “抽絲剝繭”找出問(wèn)題所在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 對(duì)比兩種優(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 庫(kù)執(zhí)行計(jì)劃存儲(chǔ)方式42
3.2 解讀執(zhí)行計(jì)劃43
3.2.1 執(zhí)行順序43
3.2.2 訪問(wèn)路徑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ì)信息分類(lèi)84
4.1.1 系統(tǒng)統(tǒng)計(jì)信息84
4.1.2 對(duì)象統(tǒng)計(jì)信息87
4.1.3 數(shù)據(jù)字典統(tǒng)計(jì)信息109
4.1.4 內(nèi)部對(duì)象統(tǒng)計(jì)信息109
4.2 統(tǒng)計(jì)信息操作109
4.2.1 系統(tǒng)統(tǒng)計(jì)信息110
4.2.2 對(duì)象統(tǒng)計(jì)信息111
4.2.3 數(shù)據(jù)字典統(tǒng)計(jì)信息115
4.2.4 內(nèi)部對(duì)象統(tǒng)計(jì)信息115
第5章 SQL解析與游標(biāo)116
5.1 解析步驟116
5.2 解析過(guò)程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)對(duì)象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)存儲(chǔ)結(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章 查詢(xún)轉(zhuǎn)換166
10.1 查詢(xún)轉(zhuǎn)換的分類(lèi)及說(shuō)明166
10.2 查詢(xún)轉(zhuǎn)換—子查詢(xún)類(lèi)167
10.3 查詢(xún)轉(zhuǎn)換—視圖類(lèi)174
10.4 查詢(xún)轉(zhuǎn)換—謂詞類(lèi)178
10.5 查詢(xún)轉(zhuǎn)換—消除類(lèi)180
10.6 查詢(xún)轉(zhuǎn)換—其他181
第11章 訪問(wèn)路徑189
11.1 表訪問(wèn)路徑189
11.1.1 全表掃描189
11.1.2 ROWID掃描193
11.1.3 采樣掃描194
11.2 B樹(shù)索引訪問(wèn)路徑195
11.3 位圖索引訪問(wèn)路徑205
11.4 其他訪問(wèn)路徑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 排序過(guò)程及內(nèi)存使用255
14.4 執(zhí)行計(jì)劃中的“Sort”258
第15章 子查詢(xún)262
15.1 處理方式262
15.2 子查詢(xún)分類(lèi)263
15.2.1 按照語(yǔ)法分類(lèi)263
15.2.2 按照謂詞分類(lèi)263
15.2.3 示例264
15.3 子查詢(xún)優(yōu)化266
15.4 子查詢(xún)特殊問(wèn)題272
15.4.1 空值問(wèn)題272
15.4.2 OR問(wèn)題274
15.4.3 [NOT] IN/EXISTS問(wèn)題275
第16章 并行276
16.1 并行操作276
16.1.1 并行查詢(xún)277
16.1.2 并行DML280
16.1.3 并行DDL283
16.2 并行級(jí)別286
16.3 并行原理286
16.3.1 從屬進(jìn)程286
16.3.2 粒度287
第四部分 實(shí)踐篇
第17章 數(shù)據(jù)庫(kù)設(shè)計(jì)開(kāi)發(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ù)類(lèi)型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ì)問(wèn)題305
17.2 Oracle開(kāi)發(fā)規(guī)范306
17.2.1 書(shū)寫(xiě)規(guī)范306
17.2.2 編碼規(guī)范307
17.2.3 注釋規(guī)范307
17.2.4 語(yǔ)法規(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開(kāi)發(fā)規(guī)范322
17.4.1 基本原則322
17.4.2 語(yǔ)句規(guī)范322
第18章 架構(gòu)設(shè)計(jì)之?dāng)?shù)據(jù)庫(kù)承載力評(píng)估327
18.1 評(píng)估工作327
18.1.1 建立性能基線327
18.1.2 建立業(yè)務(wù)壓力模型329
18.1.3 模擬壓力測(cè)試331
18.2 優(yōu)化步驟331
第19章 數(shù)據(jù)庫(kù)畫(huà)像335
19.1 你了解你的數(shù)據(jù)庫(kù)嗎335
19.2 畫(huà)像設(shè)計(jì)思路336
19.3 畫(huà)像報(bào)告解讀336
19.3.1 概要信息336
19.3.2 空間信息336
19.3.3 對(duì)象信息337
19.3.4 訪問(wèn)特征339
19.3.5 資源消耗341
19.3.6 SQL語(yǔ)句342
第20章 數(shù)據(jù)庫(kù)審核平臺(tái)實(shí)踐:功能343
20.1 背景說(shuō)明343
20.2 平臺(tái)選型347
20.3 平臺(tái)定位348
20.4 平臺(tái)原理349
20.5 推進(jìn)方法350
第21章 數(shù)據(jù)庫(kù)審核平臺(tái)實(shí)踐:實(shí)現(xiàn)352
21.1 平臺(tái)設(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ù)庫(kù)審核平臺(tái)實(shí)踐:規(guī)則370
22.1 對(duì)象級(jí)370
22.1.1 Oracle370
22.1.2 MySQL379
22.2 執(zhí)行計(jì)劃級(jí)384
22.2.1 Oracle384
22.2.2 MySQL389
22.3 執(zhí)行特征級(jí)392
22.3.1 Oracle392
22.3.2 MySQL394
22.4 文本級(jí)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