OracleDatabase9i10g11g编程艺术:深⼊数据库体系结构第1章 开发成功的Oracle应⽤ 1
1.1 我的⽅法 2
1.2 ⿊盒⽅法 3
1.3 开发数据库应⽤的正确(和不正确)⽅法 10
1.3.1 了解Oracle体系结构 11
1.3.2 理解并发控制 19
1.3.3 多版本控制 22
1.3.4 数据库独⽴性 28
1.3.5 怎么能让应⽤运⾏得更快 42
1.3.6 DBA与开发⼈员的关系 44
1.4 ⼩结 45
第2章 体系结构概述 46
2.1 定义数据库和实例 47
2.2 SGA和后台进程 52
2.3 连接Oracle 54
2.3.1 专⽤服务器 54
2.3.2 共享服务器 56
2.3.3 TCP/IP连接的基本原理 57
2.4 ⼩结 59
第3章 ⽂件 60
3.1 参数⽂件 61
3.1.1 什么是参数 62
3.1.2 遗留的a参数⽂件 65
3.1.3 服务器参数⽂件 67
3.1.4 参数⽂件⼩结 72
3.2 跟踪⽂件 73
3.2.1 请求的跟踪⽂件 74
3.2.2 针对内部错误⽣成的跟踪⽂件 78
3.2.3 跟踪⽂件⼩结 82
3.3 警告⽂件 83
3.4 数据⽂件 85
3.4.1 简要回顾⽂件系统机制 86
3.4.2 Oracle数据库中的存储层次体系 87
3.4.3 字典管理和本地管理的表空间 90
3.5 临时⽂件 92
3.6 控制⽂件 94
3.7 重做⽇志⽂件 94
3.7.1 在线重做⽇志 95
3.7.2 归档重做⽇志 97
3.8 密码⽂件 99
3.9 修改跟踪⽂件 102
3.10 闪回⽇志 103
3.10.1 闪回数据库 103
3.10.2 闪回恢复区 104
3.11 DMP⽂件(EXP/IMP⽂件) 104
3.12 数据泵⽂件 105
3.13 平⾯⽂件 108
3.14 ⼩结 109
第4章 内存结构 110
4.1 进程全局区和⽤户全局区 110
4.1.1 ⼿动PGA内存管理 111
4.1.2 ⾃动PGA内存管理 117
4.1.3 ⼿动和⾃动内存管理的选择 127 4.1.4 PGA和UGA⼩结 129
4.2 系统全局区 129
4.2.1 固定SGA 133
4.2.2 重做缓冲区 134
4.2.3 块缓冲区缓存 135
4.2.4 共享池 141
4.2.5 ⼤池 143
4.2.6 Java池 144
4.2.7 流池 145
4.2.8 ⾃动SGA内存管理 145
4.2.9 ⾃动内存管理 147
4.3 ⼩结 148
第5章 Oracle进程 149
5.1 服务器进程 149
5.1.1 专⽤服务器连接 150
5.1.2 共享服务器连接 152
5.1.3 数据库常驻连接池 152
5.1.4 连接与会话 153
5.1.5 专⽤服务器与共享服务器 158 5.1.6 专⽤/共享服务器⼩结 161
5.2 后台进程 162
5.2.1 中⼼后台进程 163
5.2.2 ⼯具后台进程 171
5.3 从属进程 173
5.3.1 I/O从属进程 173
5.3.2 Pnnn:并⾏查询执⾏服务器 174 5.4 ⼩结 175
第6章 锁和闩 176
6.1 什么是锁 176
6.2 锁定问题 179
6.2.1 丢失更新 179
6.2.2 悲观锁定 180
6.2.3 乐观锁定 182
6.2.4 乐观锁定还是悲观锁定 188
6.2.5 阻塞 188
6.2.6 死锁 191
6.2.7 锁升级 195
6.3 锁类型 195
6.3.1 DML锁 196
6.3.2 DDL锁 204
6.3.3 闩 209
6.3.4 ⼿动锁定和⽤户定义锁 217
6.4 ⼩结 218
第7章 并发与多版本控制 219
7.1 什么是并发控制 219
7.2 事务隔离级别 220
7.2.1 READ UNCOMMITTED 221
7.2.2 READ COMMITTED 223
7.2.3 REPEATABLE READ 224
7.2.4 SERIALIZABLE 226
7.2.5 READ ONLY 228
7.3 多版本控制读⼀致性的含义 229
7.3.1 ⼀种会失败的常⽤数据仓库技术 229
7.3.2 解释热表上超出期望的I/O 230
7.4 写⼀致性 233
7.4.1 ⼀致读和当前读 233
7.4.2 查看重启动 235
7.4.3 为什么重启动对我们很重要 238
7.5 ⼩结 239
第8章 事务 240
8.1 事务控制语句 240
8.2 原⼦性 242
8.2.1 语句级原⼦性 242
8.2.2 过程级原⼦性 244
8.2.3 事务级原⼦性 247
8.2.4 DDL与原⼦性 247
8.3 持久性 247
8.3.1 COMMIT的WRITE扩展 248
8.3.2 ⾮分布式PL/SQL代码块中的COMMIT 249 8.4 完整性约束和事务 250
8.4.1 IMMEDIATE约束 251
8.4.2 DEFERRABLE约束和级联更新 251
8.5 不好的事务习惯 255
8.5.1 在循环中提交 255
8.5.2 使⽤⾃动提交 261
8.6 分布式事务 261
8.7 ⾃治事务 263
8.7.1 ⾃治事务如何⼯作 264
8.7.2 何时使⽤⾃治事务 265
8.8 ⼩结 268
第9章 redo与undo 269
9.1 什么是redo 269
9.2 什么是undo 270
9.3 redo和undo如何协作 273
9.4 提交和回滚处理 277
9.4.1 COMMIT做什么 277
9.4.2 ROLLBACK做什么 283
9.5 分析redo 284
9.5.1 测量redo 284
9.5.2 能关掉重做⽇志⽣成程序吗 286
9.5.3 为什么不能分配⼀个新⽇志 289
9.5.4 块清除 291
9.5.5 ⽇志竞争 294
9.5.6 临时表和redo/undo 296
9.6 分析undo 299
9.6.1 什么操作会⽣成最多和最少的undo 299
9.6.2 ORA-01555:snapshot too old错误 301 9.7 ⼩结 310
第10章 数据库表 311
10.1 表类型 311
10.2 术语 313
10.2.1 段 313
10.2.2 段空间管理 315
10.2.3 ⾼⽔位线 316
10.2.4 FREELIST 317
10.2.5 PCTFREE和PCTUSED 320
10.2.6 LOGGING和NOLOGGING 323
10.2.7 INITRANS和MAXTRANS 324
10.3 堆组织表 324
10.4 索引组织表 327
10.5 索引聚簇表 340
10.6 散列聚簇表 347
10.7 有序散列聚簇表 355
10.8 嵌套表 357
10.8.1 嵌套表语法 358
10.8.2 嵌套表存储 364
10.8.3 嵌套表⼩结 367
10.9 临时表 368
10.10 对象表 374
10.11 ⼩结 380
第11章 索引 382
11.1 Oracle索引概述 382
11.2 B*树索引 384
11.2.1 索引键压缩 386
11.2.2 反向键索引 389
11.2.3 降序索引 394
11.2.4 什么情况下应该使⽤B*树索引 396
11.2.5 B*树⼩结 405
11.3 位图索引 406
11.3.1 什么情况下应该使⽤位图索引 407
11.3.2 位图联结索引 410
11.3.3 位图索引⼩结 413
11.4 基于函数的索引 413
11.4.1 重要的实现细节 413
11.4.2 ⼀个简单的基于函数的索引例⼦ 414
11.4.3 只对部分⾏建⽴索引 422
11.4.4 实现有选择的唯⼀性 424
11.4.5 关于ORA-01743的警告 424
11.4.6 基于函数的索引⼩结 425
11.5 应⽤域索引 425
11.6 关于索引的常见问题和神话 426
11.6.1 视图能使⽤索引吗 427
11.6.2 Null和索引能协作吗 427
11.6.3 外键是否应该加索引 429
11.6.4 为什么没有使⽤我的索引 430
11.6.5 神话:索引中从不重⽤空间 435
11.6.6 神话:最有差别的元素应该在最前⾯ 438
11.7 ⼩结 441
第12章 数据类型 442
12.1 Oracle数据类型概述 442
12.2 字符和⼆进制串类型 444
12.2.1 NLS概述 445
12.2.2 字符串 448
12.3 ⼆进制串:RAW类型 453
12.4 数值类型 455
12.4.1 NUMBER类型的语法和⽤法 457
12.4.2 BINARY_FLOAT/BINARY_DOUBLE类型的语法和⽤法 460 12.4.3 ⾮固有数值类型 461
12.4.4 性能考虑 461
12.5 LONG类型 463
12.5.1 LONG和LONG RAW类型的限制 463
12.5.2 处理遗留的LONG类型 464
12.6 DATE、TIMESTAMP和INTERVAL类型 469oracle数据库表结构怎么看
12.6.1 格式 469
12.6.2 DATE类型 470
12.6.3 TIMESTAMP类型 475
12.6.4 INTERVAL类型 482
12.7 LOB类型 484
12.7.1 内部LOB 485
12.7.2 BFILE 495
12.8 ROWID/UROWID类型 497
12.9 ⼩结 497
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论