注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)索引設(shè)計(jì)與優(yōu)化

數(shù)據(jù)庫(kù)索引設(shè)計(jì)與優(yōu)化

數(shù)據(jù)庫(kù)索引設(shè)計(jì)與優(yōu)化

定 價(jià):¥79.00

作 者: Tapio Lahdenmaki(塔皮奧·拉赫登邁奇),Michael Leach(邁克爾·利奇)著,曹怡倩 趙建偉 譯
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 計(jì)算機(jī)/網(wǎng)絡(luò) 數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)理論

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787121260544 出版時(shí)間: 2015-06-01 包裝:
開(kāi)本: 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)提供了一種簡(jiǎn)單、高效、通用的關(guān)系型數(shù)據(jù)庫(kù)索引設(shè)計(jì)方法。作者通過(guò)系統(tǒng)的講解及大量的案例清晰地闡釋了關(guān)系型數(shù)據(jù)庫(kù)的訪問(wèn)路徑選擇原理,以及表和索引的掃描方式,詳盡地講解了如何快速地估算SQL運(yùn)行的CPU時(shí)間及執(zhí)行時(shí)間,幫助讀者從原理上理解SQL、表及索引結(jié)構(gòu)、訪問(wèn)方式等對(duì)關(guān)系型數(shù)據(jù)庫(kù)造成的影響,并能夠運(yùn)用量化的方法進(jìn)行判斷和優(yōu)化,指導(dǎo)關(guān)系型數(shù)據(jù)庫(kù)的索引設(shè)計(jì)。

作者簡(jiǎn)介

  Tapio Lahdenmaki,數(shù)據(jù)庫(kù)性能顧問(wèn),教授通用索引設(shè)計(jì)課程。他在IBM公司工作了三十多年,是公司全球課程中有關(guān)DB2 (for z/OS)性能相關(guān)課程的主要作者。Michael Leach,關(guān)系型數(shù)據(jù)庫(kù)顧問(wèn),已從IBM公司退休,他擁有二十年的應(yīng)用系統(tǒng)及數(shù)據(jù)庫(kù)課程的教授經(jīng)驗(yàn)。兩位作者的文章均被翻譯成了多國(guó)語(yǔ)言廣為傳播。他們有關(guān)索引設(shè)計(jì)的方法被成功應(yīng)用于許多核心系統(tǒng)。

圖書(shū)目錄

第1章 概述 1
關(guān)于SQL性能的另一本書(shū) 1
不合適的索引 3
誤區(qū)和誤解 4
誤區(qū)1:索引層級(jí)不要超過(guò)5層 5
誤區(qū)2:?jiǎn)伪淼乃饕龜?shù)不要超過(guò)6個(gè) 6
誤區(qū)3:不應(yīng)該索引不穩(wěn)定的列 6
示例 7
磁盤(pán)驅(qū)動(dòng)器使用率 7
系統(tǒng)化的索引設(shè)計(jì) 8
第2章 表和索引結(jié)構(gòu) 10
介紹 10
索引頁(yè)和表頁(yè) 11
索引行 11
索引結(jié)構(gòu) 12
表行 12
緩沖池和磁盤(pán)I/O 12
從DBMS緩沖池進(jìn)行的讀取 13
從磁盤(pán)驅(qū)動(dòng)器進(jìn)行的隨機(jī)I/O 13
從磁盤(pán)服務(wù)器緩存進(jìn)行的讀取 14
從磁盤(pán)驅(qū)動(dòng)器進(jìn)行的順序讀取 15
輔助式隨機(jī)讀 15
輔助式順序讀 18
同步I/O和異步I/O 18
硬件特性 19
DBMS特性 20
頁(yè) 20
表聚簇 21
索引行 21
表行 22
索引組織表 22
頁(yè)鄰接 23
B樹(shù)索引的替代品 24
聚簇的許多含義 25
第3章 SQL處理過(guò)程 27
簡(jiǎn)介 27
謂詞 27
評(píng)注 28
優(yōu)化器及訪問(wèn)路徑 28
索引片及匹配列 29
索引過(guò)濾及過(guò)濾列 29
訪問(wèn)路徑術(shù)語(yǔ) 31
監(jiān)控優(yōu)化器 32
幫助優(yōu)化器(統(tǒng)計(jì)信息) 32
幫助優(yōu)化器(FETCH調(diào)用的次數(shù)) 32
何時(shí)確定訪問(wèn)路徑 33
過(guò)濾因子 34
組合謂詞的過(guò)濾因子 35
過(guò)濾因子對(duì)索引設(shè)計(jì)的影響 37
物化結(jié)果集 39
游標(biāo)回顧 39
方式1:一次FETCH調(diào)用物化一條記錄 40
方式2:提前物化 41
數(shù)據(jù)庫(kù)設(shè)計(jì)人員必須牢記 41
練習(xí) 41
第4章 為SELETE語(yǔ)句創(chuàng)建理想的索引 43
簡(jiǎn)介 43
磁盤(pán)及CPU時(shí)間的基礎(chǔ)假設(shè) 44
不合適的索引 44
三星索引——查詢(xún)語(yǔ)句的理想索引 45
星級(jí)是如何給定的 46
范圍謂詞和三星索引 48
為查詢(xún)語(yǔ)句設(shè)計(jì)最佳索引的算法 49
候選A 50
候選B 50
現(xiàn)今排序速度很快——為什么我們還需要候選B 51
需要為所有查詢(xún)語(yǔ)句都設(shè)計(jì)理想索引嗎 52
完全多余的索引 52
近乎多余的索引 53
可能多余的索引 53
新增一個(gè)索引的代價(jià) 54
響應(yīng)時(shí)間 54
磁盤(pán)負(fù)載 55
磁盤(pán)空間 56
一些建議 57
練習(xí) 58
第5章 前瞻性的索引設(shè)計(jì) 59
發(fā)現(xiàn)不合適的索引 59
基本問(wèn)題法(BQ) 59
注意 60
快速上限估算法(QUBE) 61
服務(wù)時(shí)間 62
排隊(duì)時(shí)間 62
基本概念:訪問(wèn) 63
計(jì)算訪問(wèn)次數(shù) 65
FETCH處理 66
主要訪問(wèn)路徑的QUBE示例 67
使用滿足需求的成本最低的索引還是所能達(dá)到的最優(yōu)索引:示例1 72
該事務(wù)的基本問(wèn)題 73
對(duì)該事務(wù)上限的快速估算 73
使用滿足需求的成本最低的索引還是所能達(dá)到的最優(yōu)索引 74
該事務(wù)的最佳索引 75
半寬索引(最大化索引過(guò)濾) 75
寬索引(只需訪問(wèn)索引) 76
使用滿足需求的成本最低的索引還是所能達(dá)到的最優(yōu)索引:示例2 77
范圍事務(wù)的BQ及QUBE 78
該事務(wù)的最佳索引 79
半寬索引(最大化索引過(guò)濾) 80
寬索引(只需訪問(wèn)索引) 81
何時(shí)使用QUBE 82
第6章 影響索引設(shè)計(jì)過(guò)程的因素 83
I/O時(shí)間估算的驗(yàn)證 83
多個(gè)窄索引片 84
簡(jiǎn)單就是美(和安全) 86
困難謂詞 87
LIKE謂詞 87
OR操作符和布爾謂詞 88
IN謂詞 89
過(guò)濾因子隱患 90
過(guò)濾因子隱患的例子 92
最佳索引 95
半寬索引(最大化索引過(guò)濾) 96
寬索引(只需訪問(wèn)索引) 97
總結(jié) 97
練習(xí) 99
第7章 被動(dòng)式索引設(shè)計(jì) 100
簡(jiǎn)介 100
EXPLAIN描述了所選擇的訪問(wèn)路徑 101
全表掃描或全索引掃描 101
對(duì)結(jié)果集排序 101
成本估算 102
數(shù)據(jù)庫(kù)管理系統(tǒng)特定的EXPLAIN選項(xiàng)及限制 102
監(jiān)視揭示現(xiàn)實(shí) 103
性能監(jiān)視器的演進(jìn) 104
LRT級(jí)別的異常監(jiān)視 106
程序粒度的均值是不夠的 106
異常報(bào)告舉例:每個(gè)尖刺一行 106
問(wèn)題制造者和受害者 108
有優(yōu)化空間的問(wèn)題制造者和無(wú)優(yōu)化空間的問(wèn)題制造者 108
有優(yōu)化空間的問(wèn)題制造者 109
調(diào)優(yōu)的潛在空間 111
無(wú)優(yōu)化空間的問(wèn)題制造者 114
受害者 115
查找慢的SQL調(diào)用 117
調(diào)用級(jí)別的異常監(jiān)視 118
Oracle舉例 121
SQL Server舉例 123
結(jié)論 125
數(shù)據(jù)庫(kù)管理系統(tǒng)特定的監(jiān)視問(wèn)題 126
尖刺報(bào)告 127
練習(xí) 127
第8章 為表連接設(shè)計(jì)索引 129
簡(jiǎn)介 129
兩個(gè)簡(jiǎn)單的表連接 131
例8.1:CUST表作為外層表 131
例8.2:INVOICE表作為外層表 132
表訪問(wèn)順序?qū)λ饕O(shè)計(jì)的影響 133
案例研究 133
現(xiàn)有索引 136
理想索引 142
理想索引,每事務(wù)物化一屏結(jié)果集 146
理想索引,每事務(wù)物化一屏結(jié)果集且遇到FF缺陷 149
基本連接的問(wèn)題(BJQ) 151
結(jié)論:嵌套循環(huán)連接 153
預(yù)測(cè)表的訪問(wèn)順序 153
合并掃描連接和哈希連接 155
合并掃描連接 155
例8.3:合并掃描連接 155
哈希連接 157
程序C:由優(yōu)化器選擇MS/HJ(在現(xiàn)有索引條件下) 158
理想索引 159
嵌套循環(huán)連接VS. MS/HJ及理想索引 161
嵌套循環(huán)連接VS. MS/HJ 161
嵌套循環(huán)連接VS.理想索引 162
連接兩張以上的表 163
為什么連接的性能表現(xiàn)較差 166
模糊的索引設(shè)計(jì) 166
優(yōu)化器可能選擇錯(cuò)誤的表訪問(wèn)路徑 166
樂(lè)觀的表設(shè)計(jì) 166
為子查詢(xún)?cè)O(shè)計(jì)索引 167
為UNION語(yǔ)句設(shè)計(jì)索引 167
對(duì)于表設(shè)計(jì)的思考 167
冗余數(shù)據(jù) 167
無(wú)意識(shí)的表設(shè)計(jì) 171
練習(xí) 173
第9章 星型連接 175
介紹 175
維度表的索引設(shè)計(jì) 177
表訪問(wèn)順序的影響 178
事實(shí)表的索引 179
匯總表 182
第10章 多索引訪問(wèn) 184
簡(jiǎn)介 184
索引與 184
與查詢(xún)表一同使用索引與 186
多索引訪問(wèn)和事實(shí)數(shù)據(jù)表 187
用位圖索引進(jìn)行多索引訪問(wèn) 187
索引或 188
索引連接 189
練習(xí) 190
第11章 索引和索引重組 191
B樹(shù)索引的物理結(jié)構(gòu) 191
DBMS如何查找索引行 192
插入一行時(shí)會(huì)發(fā)生什么 193
葉子頁(yè)的分裂嚴(yán)重嗎 194
什么時(shí)候應(yīng)該對(duì)索引進(jìn)行重組 196
插入模式 196
索引列的穩(wěn)定性 205
長(zhǎng)索引行 207
舉例:對(duì)順序敏感的批處理任務(wù) 208
表亂序(存在聚簇索引) 211
表亂序(沒(méi)有以CNO開(kāi)頭的聚簇索引) 212
存儲(chǔ)在葉子頁(yè)中的表行 212
SQL Server 212
Oracle 213
索引重組的代價(jià) 214
分裂的監(jiān)控 215
總結(jié) 216
第12章 數(shù)據(jù)庫(kù)管理系統(tǒng)相關(guān)的索引限制 219
簡(jiǎn)介 219
索引列的數(shù)量 219
索引列的總長(zhǎng)度 220
變長(zhǎng)列 220
單表索引數(shù)量上限 220
索引大小上限 220
索引鎖定 221
索引行壓縮 221
數(shù)據(jù)庫(kù)管理系統(tǒng)索引創(chuàng)建舉例 222
第13章 數(shù)據(jù)庫(kù)索引選項(xiàng) 224
簡(jiǎn)介 224
索引行壓縮 224
索引鍵以外的其他索引列 225
唯一約束 227
從不同的方向掃描數(shù)據(jù)庫(kù)索引 227
索引鍵截?cái)?228
基于函數(shù)的索引 228
索引跳躍式掃描 229
塊索引 230
數(shù)據(jù)分區(qū)的二級(jí)索引 230
練習(xí) 231
第14章 優(yōu)化器不是完美的 232
簡(jiǎn)介 232
優(yōu)化器并不總能看見(jiàn)最佳方案 234
匹配及過(guò)濾問(wèn)題 234
非BT謂詞 234
無(wú)法避免的排序 237
不必要的表訪問(wèn) 238
優(yōu)化器的成本估算可能錯(cuò)得離譜 239
使用綁定變量的范圍謂詞 239
偏斜分布 241
相關(guān)列 242
部分索引鍵的警示故事 243
成本估算公式 246
估算I/O時(shí)間 247
估算CPU時(shí)間 248
協(xié)助優(yōu)化器處理估算相關(guān)的問(wèn)題 249
優(yōu)化器的問(wèn)題是否會(huì)影響索引設(shè)計(jì) 252
練習(xí) 253
第15章 其他評(píng)估事項(xiàng) 254
QUBE公式背后的假設(shè)條件 254
內(nèi)存中的非葉子索引頁(yè) 255
例子 255
磁盤(pán)服務(wù)器讀緩存的影響 256
緩沖子池 258
長(zhǎng)記錄 259
慢速順序讀 259
實(shí)際的響應(yīng)時(shí)間可能比QUBE評(píng)估值短得多 259
葉子頁(yè)和表頁(yè)緩存在緩沖池中 260
識(shí)別低成本的隨機(jī)訪問(wèn) 262
輔助式隨機(jī)讀取 262
輔助式順序讀 265
評(píng)估CPU時(shí)間(CQUBE) 265
單次順序訪問(wèn)的CPU時(shí)間 265
單次隨機(jī)訪問(wèn)的CPU時(shí)間 267
單次FETCH調(diào)用的CPU時(shí)間 269
每排序一行的平均CPU時(shí)間 270
CPU評(píng)估舉例 270
寬索引還是理想索引 270
嵌套循環(huán)(及反范式化)還是MS/HJ 271
合并掃描與哈希連接的比較 274
跳躍式順序掃描 275
CPU時(shí)間仍然不可忽視 276
第16章 組織索引設(shè)計(jì)過(guò)程 277
簡(jiǎn)介 277
計(jì)算機(jī)輔助式索引設(shè)計(jì) 278
設(shè)計(jì)出色索引的9個(gè)步驟 280
參考文獻(xiàn) 282
術(shù)語(yǔ)表 283
索引 291

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)