Oracle Database In-Memory 架構與實踐
內容描述
Database In-Memory是Oracle內存計算技術家族中的核心成員,也是Oracle數據庫企業版最重要的數據庫選件之一。Database In-Memory通過獨有的雙格式數據庫架構及一系列內存計算軟硬件技術的結合,可以使傳統的運營系統即刻開啟HTAP(混合事務/分析處理)能力,或者為傳統的數據倉庫系統提供實時分析的能力。《Oracle Database In-Memory架構與實踐》全面深入介紹Database In-Memory 架構和技術,涵蓋了從12.1.0.2版本Database In-Memory 誕生到2021年8月**發布的21c版本之間所有重要的Database In-Memory 特性。 《Oracle Database In-Memory架構與實踐》面向對Oracle數據庫和內存計算技術感興趣的讀者,適合的對象包括企業架構師、數據庫管理員、數據分析師和應用開發人員,不僅是讀者全面學習Database In-Memory 內存計算技術的入門指南,同時也是深入瞭解Oracle Database In-Memory 的極有價值的參考書籍。
目錄大綱
目錄
第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 VirtualBox 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 Linux下的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 Exadata作為最佳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 Expression 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 Exadata In-Memory列格式支持 345
10.3.1 In-Memory列式緩存基本操作 346
10.3.2 RAC環境下的In-Memory列式緩存 349
10.3.3 In-Memory列式緩存性能比較 351