●
1章 內存計算概述 1
1.1 內存計算的興起 1
1.1.1 硬件的發展 2
1.1.2 軟件的發展 3
1.1.3 企業應用的需求 4
1.2 內存計算技術分類 5
1.2.1 內存數據庫 5
1.2.2 內存數據網格 6
1.3 典型內存數據管理產品 7
1.3.1 Oracle TimesTen 7
1.3.2 Oracle Database In-Memory 9
1.3.3 MySQL HeatWave 11
1.3.4 Oracle Coherence 13
1.3.5 SAP HANA 15
1.3.6 Redis 17
2章 搭建Database In-Memory實驗環境 20
2.1 虛擬化引擎Oracle VM VirtualBo 21
2.2 版本控制繫統Git 23
2.3 虛擬機環境管理工具Vagrant 23
2.4 安裝示例表與數據 26
2.4.1 隨書示例 26
2.4.2 Star Schema Benchmark示例 27
2.4.3 Oracle數據庫標準示例 30
2.4.4 TPC-H基準示例 30
2.5 命令行編輯工具rlwrap 31
2.6 數據庫開發與管理工具SQL Developer 32
2.6.1 Windows下的SQL Developer安裝 32
2.6.2 Linu下的SQL Developer安裝 33
2.6.3 使用SQL Developer連接數據庫 33
2.7 Database In-Memory學習資源 35
2.7.1 文檔資源 35
2.7.2 Database In-Memory官方博客 36
2.7.3 動手實驗資源 36
2.7.4 My Oracle Support 37
2.7.5 視頻學習資源 39
3章 Database In-Memory基本概念與架構 40
3.1 Oracle數據庫基本概念 40
3.1.1 Oracle數據庫版本簡介 40
3.1.2 Oracle數據庫企業版選件 42
3.1.3 數據庫管理包 43
3.1.4 數據庫版本號 44
3.1.5 數據庫升級與更新 44
3.2 Database In-Memory體繫架構 48
3.2.1 雙格式存儲 48
3.2.2 Oracle數據庫內存結構與管理 49
3.2.3 Database In-Memory架構 51
3.2.4 內存架構 52
3.3 Eadata作為佳Database In-Memory平臺 53
3.4 何時使用Database In-Memory 55
3.4.1 Database In-Memory適用場景 55
3.4.2 分析型查詢與應用的考慮 56
4章 Database In-Memory配置與發布 58
4.1 配置與發布基本流程 58
4.2 啟用Database In-Memory 58
4.2.1 In-Memory Area初始設置 58
4.2.2 多租戶下的In-Memory Area設置 60
4.2.3 調整In-Memory Area大小 61
4.2.4 Base Level特性 62
4.2.5 常見錯誤與處理 63
4.3 指定Database In-Memory對像 65
4.3.1 哪些對像可以發布到內存列式存儲 65
4.3.2 開啟和關閉INMEMORY屬性 65
4.4 發布INMEMORY對像 67
4.4.1 確認對像已發布 67
4.4.2 發布優先級與自動發布 69
4.4.3 通過查詢手工發布 71
4.4.4 通過PL/SQL子程序手工發布 71
4.4.5 通過初始化參數控制發布 76
4.5 重新發布 76
4.6 發布進程與發布速度 79
4.7 指定內存壓縮級別 82
4.8 內存列式存儲與行式存儲映 84
4.9 移除數據庫對像 91
4.10 禁用Database In-Memory 93
5章 Database In-Memory管理工具 96
5.1 SQL Developer 96
5.2 Oracle Enterprise Manager 97
5.2.1 In-Memory Central 98
5.2.2 SQL性能分析器 101
5.3 命令行管理工具 103
5.3.1 SQL Plus 103
5.3.2 SQLcl 107
5.3.3 Data Pump 112
5.4 統計信息與執行計劃 113
5.4.1 優化器統計信息 113
5.4.2 SQL執行統計信息 115
5.4.3 解讀執行計劃 117
5.4.4 生成和顯示執行計劃 118
5.5 Oracle數據庫建議器 121
5.5.1 In-Memory建議器 121
5.5.2 壓縮建議器 126
5.6 實時SQL監控 128
5.7 Database In-Memory初始化參數 132
5.8 Database In-Memory視圖 134
5.8.1 數據字典視圖 134
5.8.2 動態性能視圖 135
5.8.3 In-Memory視圖使用示例 137
5.9 優化器提示 140
6章 Database In-Memory基礎性能優化 142
6.1 列格式組織 142
6.2 內存存儲索引 145
6.3 SIMD向量處理 148
6.4 數據壓縮 152
6.4.1 行級壓縮 152
6.4.2 混合列壓縮 157
6.4.3 內存列壓縮 160
6.5 作下推 168
6.5.1 過濾謂詞下推 169
6.5.2 聚合下推 170
6.5.3 下推與內存存儲索引 173
6.6 In-Memory聯結 173
6.6.1 聯結方法 173
6.6.2 In-Memory聯結與布隆過濾器 175
6.6.3 部分表發布時的In-Memory聯結 183
6.7 In-Memory聚合 184
6.7.1 In-Memory聚合基本概念 184
6.7.2 In-Memory聚合性能比較 186
6.8 索引優化 191
7章 Database In-Memory高級性能優化 194
7.1 In-Memory表達式 194
7.1.1 In-Memory虛擬列 194
7.1.2 In-Memory Epression 198
7.2 In-Memory聯結優化 203
7.2.1 聯結組(Join Group) 203
7.2.2 In-Memory深度向量化 208
7.3 In-Memory數據類型優化 210
7.3.1 In-Memory JSON列 210
7.3.2 In-Memory優化運算 216
7.3.3 In-Memory全文本列 218
7.3.4 In-Memory Spatial支持 222
7.4 In-Memory掃描優化 226
7.4.1 In-Memory動態掃描 226
7.4.2 In-Memory混合掃描 229
8章 Database In-Memory與高可用性 233
8.1 Oracle高可用性架構 233
8.2 Database In-Memory與RAC 235
8.2.1 利用OCI搭建RAC實驗環境 235
8.2.2 利用Vagrant搭建RAC實驗環境 237
8.2.3 In-Memory數據分布 243
8.2.4 In-Memory復制 250
8.2.5 In-Memory與並行執行 252
8.2.6 In-Memory與實例子集發布 257
8.2.7 實例失效時的In-Memory重新發布 266
8.3 Database In-Memory與ADG 270
8.3.1 利用OCI搭建ADG實驗環境 270
8.3.2 利用Vagrant搭建ADG實驗環境 272
8.3.3 ADG基本概念與Database In-Memory參數 275
8.3.4 ADG常用管理和監控命令 276
8.3.5 主備數據庫發布相同的對像 279
8.3.6 僅在備數據庫發布對像 280
8.3.7 主備數據庫發布不同的對像 282
8.3.8 Database In-Memory與ADG主備切換 289
8.4 In-Memory FastStart 293
9章 Database In-Memory與可管理性 296
9.1 In-Memory自動數據優化 296
9.1.1 自動數據優化基本概念 296
9.1.2 In-Memory自動數據優化 300
9.2 Automatic In-Memory 307
9.2.1 自動In-Memory管理 308
9.2.2 自治In-Memory管理 311
9.3 Database In-Memory與分區 314
9.3.1 分區發布 315
9.3.2 分區裁剪 316
9.3.3 智能分區聯結 317
9.3.4 分區交換 319
10章 Database In-Memory與大數據 322
10.1 Database In-Memory與外部表 322
10.1.1 外部表基本概念 322
10.1.2 In-Memory普通外部表 324
10.1.3 In-Memory分區外部表 333
10.1.4 In-Memory混合分區表 336
10.2 內存優化行存儲 338
10.2.1 行存儲快速查詢 338
10.2.2 行存儲快速攝入 342
10.3 Eadata In-Memory列格式支持 345
10.3.1 In-Memory列式緩存基本作 346
10.3.2 RAC環境下的In-Memory列式緩存 349
10.3.3 In-Memory列式緩存性能比較 351