图书介绍

Oracle性能优化求生指南PDF|Epub|txt|kindle电子书版本网盘下载

Oracle性能优化求生指南
  • (澳)Guy Harrison著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115291141
  • 出版时间:2012
  • 标注页数:555页
  • 文件大小:85MB
  • 文件页数:577页
  • 主题词:关系数据库-数据库管理系统-系统性能-最佳化-指南

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Oracle性能优化求生指南PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 方法、概念和工具2

第1章Oracle性能调优:一种系统化方法2

1.1 Oracle性能调优简史3

1.2超越表面分析法3

1.3第一阶段:最小化应用负载5

1.4第二阶段:降低争用和瓶颈6

1.5第三阶段:降低物理IO7

1.6第四阶段:优化磁盘IO8

1.7本章小结9

第2章Oracle体系结构与基本概念11

2.1 Oracle API11

2.1.1创建游标13

2.1.2检查缓存的SQL语句13

2.1.3解析SQL语句13

2.1.4关联绑定变量14

2.1.5执行SQL语句15

2.1.6提取记录15

2.1.7使用批量提取15

2.1.8 处理结果集16

2.1.9关闭游标16

2.1.10优化Oracle API调用16

2.2 Oracle查询优化器16

2.2.1基于成本的优化17

2.2.2优化器目标18

2.2.3优化器统计信息18

2.2.4绑定变量窥视与自适应游标共享19

2.2.5提示19

2.2.6存储概要、SQL概要和SQL计划基线19

2.3事务和锁20

2.4 Oracle服务器体系结构20

2.4.1实例与数据库21

2.4.2系统全局区22

2.4.3数据缓存22

2.4.4程序全局区22

2.4.5内存管理23

2.5段与文件23

2.5.1表23

2.5.2索引24

2.5.3块、区间、段以及分区24

2.5.4表空间与数据文件25

2.5.5回滚段25

2.5.6重做日志与归档日志25

2.5.7闪回日志25

2.6 服务器进程26

2.7后台进程26

2.8真正应用集群27

2.9 本章小结28

第3章 实用工具29

3.1生成SQL语句的执行计划29

3.1.1计划表30

3.1.2研究缓存的SQL33

3.1.3 DBMS_XPLAN35

3.1.4解释执行计划39

3.1.5虚拟索引43

3.2跟踪Oracle的执行44

3.2.1从当前会话中调用跟踪44

3.2.2识别跟踪文件45

3.2.3获取跟踪状态45

3.2.4在其他会话中调用跟踪46

3.2.5通过MODULE、ACTION或SERVICE进行跟踪47

3.2.6使用登录触发器来启用跟踪47

3.2.7定位跟踪文件48

3.2.8其他特殊化的跟踪48

3.3使用tkprof格式化跟踪文件49

3.3.1 tkprof的排序选项49

3.3.2其他tkprof选项50

3.3.3合并多个SQL跟踪文件51

3.3.4解释tkprof的输出结果51

3.3.5 tkprof中的执行计划53

3.3.6等待统计信息与tkprof54

3.3.7 tkprof的替代品54

3.4在SQL*PLUS中使用AUTOTRACE55

3.5监控Oracle服务器56

3.5.1 V$表接口56

3.5.2等待接口57

3.5.3时间模型59

3.5.4整合时间模型与等待接口61

3.5.5 Oracle企业管理器62

3.5.6 SPOTLIGHT ON ORACLE63

3.6本章小结64

第二部分 应用和数据库设计66

第4章 数据库逻辑设计和物理设计66

4.1逻辑数据模型66

4.1.1标准化和第三范式66

4.1.2数据类型选择67

4.1.3人造键67

4.1.4数据仓库设计68

4.2逻辑模型到物理模型的映射68

4.2.1将实体或类映射成表69

4.2.2选择表的类型71

4.2.3数据类型和精度71

4.2.4可选的属性和NULL值72

4.2.5列的顺序73

4.2.6探索Oracle对象模型73

4.3反规范化74

4.3.1复制列值以避免表联结74

4.3.2概要表75

4.3.3垂直分区75

4.3.4实施反规范化76

4.4星型模式设计76

4.4.1星型模式基础76

4.4.2雪花模式77

4.4.3维度层次结构79

4.4.4聚集和物化视图80

4.4.5物化视图最佳实践81

4.5物理存储方案82

4.5.1数据段存储手工管理和自动管理82

4.5.2并行插入和空闲块链表82

4.5.3 PCTFREE与PCTUSED83

4.5.4压缩84

4.5.5大数据字段LOB的存储85

4.6分区86

4.6.1分区的类型86

4.6.2组合分区87

4.6.3选择一个分区策略87

4.6.4企业管理器的分区顾问87

4.7本章小结89

第5章 索引与簇91

5.1 Oracle索引与簇机制的概况91

5.2 B*树索引91

5.2.1索引选择性93

5.2.2唯一索引93

5.2.3隐含索引94

5.2.4组合索引94

5.2.5索引跳跃扫描95

5.2.6创建组合索引的指导原则96

5.2.7索引合并96

5.2.8索引中的空值97

5.2.9反转键(Reverse Key)索引97

5.2.10索引压缩98

5.2.11函数索引98

5.2.12外键与锁99

5.2.13索引与分区100

5.3位图索引101

5.3.1位图索引的特性101

5.3.2位图索引的缺陷102

5.3.3位图索引与基数103

5.3.4位图索引合并104

5.3.5位图联结索引104

5.4索引的开销106

5.5索引组织表109

5.5.1配置溢出段111

5.5.2定期重建索引组织表(IOT)114

5.6簇114

5.6.1索引簇114

5.6.2散列簇116

5.7嵌套表121

5.8选择最优的索引策略123

5.9本章小结124

第6章 应用设计与实现125

6.1 SQL语句管理125

6.1.1优化解析125

6.1.2避免执行不必要的SQL语句129

6.2批量接口133

6.2.1实现批量提取133

6.2.2批量插入135

6.3事务设计135

6.3.1隔离级别136

6.3.2事务与锁137

6.3.3 Oracle中的行级锁138

6.3.4应用的锁策略139

6.4使用存储过程来降低网络流量141

6.5本章小结145

第三部分SQL和PL/SQL调优148

第7章 优化器的优化148

7.1 Oracle优化器148

7.1.1什么是成本148

7.1.2优化器目标149

7.1.3选择性和基数149

7.1.4查询转换149

7.1.5成本计算150

7.1.6对象统计信息151

7.1.7直方图152

7.1.8绑定变量窥探154

7.1.9自适应游标共享155

7.1.10数据库参数156

7.1.11系统统计信息159

7.1.12收集统计信息160

7.2使用DBMS_STAT162

7.2.1 DBMS_STATS的储存过程和参数163

7.2.2设置DBMS_STATS的系统默认值165

7.2.3使用METHOD OPT创建直方图165

7.2.4抽样166

7.2.5分区统计信息167

7.2.6扩展的统计信息167

7.2.7锁定统计信息169

7.2.8系统统计信息170

7.2.9导出和导入统计信息170

7.2.10操纵统计信息170

7.3本章小结171

第8章 执行计划管理172

8.1提示172

8.1.1使用提示来改变访问路径174

8.1.2使用提示来改变联结顺序174

8.1.3提示详述中的错误175

8.2存储提纲175

8.2.1创建存储提纲以稳定执行计划176

8.2.2侵入存储提纲177

8.3 SQL调优集179

8.3.1手动创建调优集180

8.3.2在企业管理器中创建调优集181

8.4 SQL概要和SQL调优顾问182

8.4.1使用DBMS_SQLTUNE183

8.4.2索引建议185

8.4.3企业管理器中的SQL优化186

8.4.4使用SQL访问顾问进行交叉SQL调优187

8.5 SQL基线189

8.5.1创建基线189

8.5.2进化基线191

8.5.3自动化和配置基线194

8.5.4固化的基线194

8.5.5在ORACLE企业管理器中管理基线195

8.6本章小结195

第9章 表访问调优197

9.1单值查询197

9.1.1在表和索引扫描间选择198

9.1.2位图索引和单值查询201

9.1.3散列聚簇和单值查询202

9.2避免“意外的”表扫描203

9.2.1不等条件203

9.2.2空值查询205

9.2.3查找非空值207

9.2.4在可为空的列上创建索引207

9.2.5无意中通过使用函数而禁用了索引208

9.2.6函数索引208

9.2.7函数索引和统计209

9.2.8虚拟列211

9.3多列查询212

9.3.1使用组合索引212

9.3.2索引合并213

9.3.3唯一性与覆盖索引213

9.4查找范围214

9.4.1无界范围扫描214

9.4.2有界范围扫描216

9.4.3范围查询217

9.5使用LIKE运算符219

9.6多值单列查找220

9.7优化必要的全表扫描221

9.7.1降低高水位线221

9.7.2优化PCTFREE和PCTUSED222

9.7.3减少记录长度223

9.7.4压缩表223

9.7.5使数据库IO更高效225

9.7.6使用抽样选项225

9.7.7并行查询226

9.7.8快速全索引扫描227

9.7.9分区228

9.8本章小结229

第10章 联结与子查询231

10.1联结类型231

10.2联结方法232

10.2.1嵌套循环联结232

10.2.2排序合并联结233

10.2.3散列联结234

10.3选择正确的联结方法235

10.3.1排序合并/散列与嵌套循环的对比235

10.3.2排序合并和散列联结对比235

10.4优化联结239

10.4.1优化嵌套循环联结239

10.4.2优化排序合并联结与散列联结240

10.5避免联结241

10.5.1反范式化242

10.5.2索引聚簇242

10.5.3物化视图243

10.5.4位图联结索引244

10.6联结顺序244

10.7特殊联结246

10.7.1外联结246

10.7.2星型联结248

10.7.3层级查询252

10.8子查询254

10.8.1简单子查询254

10.8.2关联子查询256

10.8.3反联结子查询257

10.8.4半联结子查询259

10.9本章小结260

第11章 排序、分组与集合操作261

11.1排序操作261

11.1.1最优、一次和多次排序262

11.1.2衡量排序活动263

11.1.3跟踪排序活动264

11.1.4使用索引规避排序265

11.2分组与聚合267

11.2.1聚合操作267

11.2.2最大值和最小值268

11.2.3“前N”查询269

11.2.4计算一张表的记录数271

11.2.5分组操作271

11.2.6 HAvING与WHERE273

11.3集合操作274

11.3.1 uNION与UNION ALL275

11.3.2 INTERSECT275

11.3.3 MINus277

11.3.4集合操作和它们的替代方法278

11.4本章小结279

第12章 使用和调优PL/SQL280

12.1 PL/SQL的性能优势280

12.1.1过程化的方法280

12.1.2减少网络开销280

12.1.3分解并攻克海量的SQL语句281

12.2衡量PL/SQL的性能281

12.2.1衡量PL/SQL的开销281

12.2.2使用DBMS_PROFILER283

12.2.3 11g的分层剖析器284

12.3数据访问优化287

12.3.1数组处理和BULK COLLECT287

12.3.2对INSERT语句进行数组处理289

12.3.3绑定变量和动态SQL290

12.4 PL/SQL代码优化292

12.4.1首先调优SQL292

12.4.2 PLSQL_OPTIMIZE_LEVEL292

12.4.3循环优化293

12.4.4 “短路”表达式295

12.4.5在IF和CASE语句中表达式的顺序297

12.4.6递归298

12.4.7 NOCOPY子句299

12.4.8关联数组301

12.5其他优化302

12.5.1本地编译302

12.5.2内联PL/SQL304

12.5.3数据类型306

12.5.4使用JAVA计算307

12.5.5函数缓存308

12.6 DML触发器的性能309

12.6.1 UPDATE OF和WHEN子句309

12.6.2 BEFORE和AFTER ROW触发器310

12.7本章小结311

第13章 并行SQL312

13.1理解并行SQL312

13.1.1并行进程和并行度314

13.1.2并行子进程池315

13.1.3并行查询IO316

13.1.4并行性能收益316

13.2决定何时使用并行处理317

13.2.1服务器计算机有多个CPU318

13.2.2被访问的数据放置在多个磁盘驱动器上318

13.2.3使用并行的SQL是长时间运行的或者资源敏感的318

13.2.4 SQL执行最少一次全表、索引或分区扫描319

13.2.5主机有空闲的能力319

13.2.6 SQL是调优过的319

13.3配置并行处理319

13.3.1确定并行度319

13.3.2并行提示321

13.3.3并行配置的参数321

13.4监控并行SQL323

13.4.1并行语句的执行计划323

13.4.2跟踪并行执行325

13.4.3 V?PQ_TQSTAT视图326

13.4.4其他的统计数据327

13.5优化并行的性能328

13.5.1从一个优化过的串行执行的SQL开始328

13.5.2确保这个SQL适合并行执行329

13.5.3确保系统适合配置支持并行执行329

13.5.4确保执行计划的所有部分都做了并行化329

13.5.5确保请求的并行度是可实现的331

13.5.6监控实际的并行度331

13.5.7检查进程间数据和负载的偏差332

13.6其他的并行主题333

13.6.1 RAC的并行执行333

13.6.2并行的索引查找334

13.6.3并行DML335

13.6.4并行DDL339

13.7本章小结340

第14章DML调优342

14.1 DML性能基础342

14.1.1 Where子句优化342

14.1.2索引开销343

14.1.3触发器开销344

14.1.4参照完整性345

14.2INSERT操作的特定优化346

14.2.1批量处理346

14.2.2直接路径插入347

14.2.3多表插入349

14.2.4手动段存储管理(MSSM)和空闲列表351

14.2.5并行DML351

14.3删除操作351

14.3.1 TRUNCATE351

14.3.2分区352

14.3.3 CREATE TABLE AS SELECT352

14.4更新和合并操作353

14.4.1关联更新353

14.4.2优化MERGE操作355

14.5 COMMIT优化357

14.5.1 CoMMIT频率358

14.5.2批量和NOWAIT提交358

14.5.3 NOLOGGING360

14.6本章小结361

第四部分 最小化争用364

第15章 锁争用364

15.1锁的类型和模式364

15.2等待锁367

15.3监控和分析锁368

15.3.1锁等待的统计数据368

15.3.2发现导致锁争用的SQL371

15.3.3度量指定事务的锁争用373

15.3.4跟踪锁行为375

15.3.5阻塞者和等待者376

15.4应用程序的锁策略379

15.5行级锁什么时候会失败380

15.5.1没有索引的外键380

15.5.2事务表等待381

15.5.3位图索引382

15.5.4直接路径插入383

15.6系统锁383

15.6.1高水位标记enqueue384

15.6.2空间事务enqueue384

15.6.3序列缓存enqueue384

15.6.4用户锁enqueue385

15.6.5其他的系统锁385

15.7本章小结386

第16章 闩锁和互斥争用387

16.1闩锁和互斥架构的简介387

16.1.1 GETS、SPINS和SLEEPS388

16.1.2互斥388

16.2度量和诊断闩锁/互斥争用389

16.2.1识别单个的闩锁390

16.2.2发现与闩锁等待相关的SQL和段391

16.3特定的闩锁和互斥场景392

16.3.1 Library Cache Mutex等待393

16.3.2 Library Cache Pin394

16.3.3 Shared Pool Latch395

16.3.4 Cache Buffers Chains Latch395

16.3.5 Row Cache Object 闩锁397

16.3.6其他的闩锁场景398

16.4闩锁争用是不可避免的吗399

16.4.1改变_SPIN_COUNT怎么样399

16.4.2自旋计数、闩锁争用和吞吐量400

16.4.3设置单个闩锁的自旋计数402

16.5本章小结402

第17章 共享内存争用404

17.1缓冲区高速缓存架构404

17.2空闲缓冲块等待406

17.2.1 DBWR直接和异步IO407

17.2.2空闲缓冲块等待的其他补救措施409

17.3恢复写进程等待410

17.3.1提高闪回日志IO411

17.3.2增加闪回日志缓冲的大小412

17.4缓冲忙等待414

17.4.1度量缓冲忙414

17.4.2缓冲忙等待的传统原因414

17.4.3缓冲忙和热块415

17.5重做日志缓冲等待417

17.6本章小结419

第五部分 优化内存422

第18章 缓冲区高速缓存调优422

18.1缓冲区高速缓存的原理422

18.1.1最近最少使用列表423

18.1.2表扫描处理423

18.1.3 CACHE属性424

18.1.4直接路径IO424

18.2缓冲区高速缓存配置和调优425

18.2.1监控缓冲区高速缓存425

18.2.2缓冲区高速缓存命中率426

18.2.3多个缓冲区高速缓存428

18.2.4设置缓冲区高速缓存的大小430

18.3自动共享内存管理433

18.3.1实现ASMM433

18.3.2监控重设大小操作434

18.3.3调优ASMM435

18.3.4非默认池436

18.3.5内存抖动437

18.4本章小结439

第19章 优化PGA内存440

19.1 IO和PGA内存440

19.2 PGA内存管理441

19.2.1 PGA AGGREGATE TARGET441

19.2.2会话的PGA限制442

19.3测量PGA的使用和效率443

19.3.1会话的PGA利用率445

19.3.2测量临时IO等待时间446

19.3.3测量工作区活动448

19.4用V?PGA_TARGET_ADVICE来设置PGA的大小449

19.5覆写PGA总量目标452

19.6本章小结454

第20章 其他的内存管理主题455

20.1优化整体的Oracle内存455

20.1.1 IO等待时间和内存优化455

20.1.2使用顾问来分配PGA和缓冲区高速缓存的内存458

20.1.3 Oracle 11g的自动化内存管理464

20.2结果集缓存470

20.2.1启用和配置结果集缓存471

20.2.2结果集缓存的统计数据471

20.2.3结果集缓存的依赖474

20.2.4结果集缓存闩锁474

20.3其他的内存优化476

20.3.1设置共享池的大小476

20.3.2设置大池的大小478

20.3.3重做日志缓存478

20.3.4锁定SGA478

20.4本章小结479

第六部分IO调优和集群482

第21章 磁盘IO调优基础482

21.1磁盘IO的概念482

21.1.1服务时间和吞吐量482

21.1.2排队483

21.1.3磁盘驱动器:慢和正在变得更慢483

21.1.4磁盘容量和数据分布484

21.2 Oracle IO架构484

21.2.1数据文件单块读485

21.2.2多块读485

21.2.3直接路径读486

21.2.4临时直接路径IO486

21.2.5数据文件写IO486

21.2.6直接路径写487

21.2.7重做日志IO487

21.2.8归档日志IO487

21.2.9闪回IO488

21.2.10控制文件IO488

21.3度量和监控Oracle IO488

21.3.1 IO等待次数488

21.3.2监控数据文件IO492

21.3.3 IO基准测试494

21.4优化数据文件IO495

21.4.1最小化IO延时495

21.4.2最大化IO吞吐量496

21.4.3条带化策略497

21.4.4 RAID阵列497

21.4.5隔离数据文件IO500

21.5重做和归档优化500

21.5.1交替和分发日志501

21.5.2重做和归档设备的细粒度条带化501

21.5.3对重做日志使用RAID5大声说不502

21.5.4重做日志大小503

21.6闪回日志506

21.7本章小结507

第22章 高级IO技术508

22.1自动存储管理508

22.1.1 ASM架构509

22.1.2 ASM监控510

22.1.3 ASM调优515

22.2固态磁盘(SSD)520

22.2.1基于闪存的SSD520

22.2.2基于随机存储器的DDRSSD520

22.2.3 混合的SSD521

22.2.4为Oracle数据库使用SSD521

22.3 EXADATA存储服务器522

22.4数据库块大小522

22.5本章小结524

第23章 优化RAC525

23.1 RAC概览525

23.1.1全局缓存请求526

23.1.2 RAC调优原则528

23.1.3单实例调优和RAC528

23.2度量集群开销529

23.3减少全局缓存延时532

23.3.1度量全局缓存延时532

23.3.2检查内部互连534

23.3.3内部互连问题的信号536

23.4优化内部互连537

23.4.1网络硬件和协议537

23.4.2以太网特大帧537

23.4.3 UDP缓冲大小538

23.4.4 LMS等待539

23.5集群负载均衡541

23.5.1评估集群负载均衡541

23.5.2集群负载均衡和服务544

23.5.3 RAC负载均衡服务547

23.6最小化全局缓存请求548

23.6.1高的全局缓存请求比例的原因548

23.6.2度量全局缓存请求比例549

23.6.3减少全局缓存请求的技巧550

23.7本章小结551

参考书目552

热门推荐