当前位置:首页 > 工业技术
Oracle  Database10g性能调整与优化
Oracle  Database10g性能调整与优化

Oracle Database10g性能调整与优化PDF电子书下载

工业技术

  • 电子书积分:23 积分如何计算积分?
  • 作 者:(美)尼米克(Niemiec,R.J.)著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302189121
  • 页数:869 页
图书介绍:本书介绍:Oracle 10g 10g基本的新功能,使用初始参数调整数据库,调整查询,调整RAC和使用并行特性。
《Oracle Database10g性能调整与优化》目录
标签:性能 调整

第1章 Oracle Database 10g新功能介绍(针对DBA和开发人员) 1

1.1安装改进 3

1.2 SYSAUX表空间 3

1.3自动存储管理 4

1.4集群就绪服务(CRS) 5

1.5服务器生成的警报 6

1.6自动工作量仓库(AWR) 7

1.7自动数据库诊断监控程序(ADDM) 7

1.8 SQL调整顾问 9

1.9自动共享内存管理(ASMM) 10

1.10闪回恢复区 11

1.11回收站 12

1.12恢复管理器的改动 13

1.13透明数据加密(10gR2) 14

1.14 LogMiner的改动 15

1.15 新的DBMS_STATS选项 16

1.16跟踪增强 17

1.17 DBMS_SCHEDULER 18

1.18默认的(永久)表空间 19

1.19临时表空间组 20

1.20重命名表空间 20

1.21大文件表空间 21

1.22收缩段 21

1.23数据泵(Data Pump) 22

1.24跨平台的可移植表空间 23

1.25写入外部表 23

1.26自动撤消保留调整 24

1.27包括新信息的V$SESSION 24

1.28 OEM的改动 25

1.29网格控制 25

1.30 10g版本中的新后台进程 26

1.31版本比较表 26

1.32新特性回顾 30

1.33参考文档 31

第2章 基本的索引原理(针对DBA和初级开发人员) 32

2.1基本的索引概念 33

2.2组合索引 35

2.3限制索引 36

使用不等于运算符(<>、!=) 37

使用IS NULL或IS NOT NULL 37

使用函数 38

比较不匹配的数据类型 39

2.4选择性 40

2.5集群因子(Clustering Factor) 40

2.6二元高度(binary height) 41

2.7使用直方图 42

2.8快速全局扫描 43

2.9跳跃式扫描 44

2.10索引的类型 45

B树索引 45

位图索引 46

HASH索引 48

索引组织表 49

反转键索引 50

基于函数的索引 50

分区索引 51

位图连接索引 53

2.11快速重建索引 54

2.12技巧回顾 55

2.13参考文档 56

第3章 磁盘实现方法和ASM(针对DBA) 57

3.1成为规范的磁盘阵列 58

使用磁盘阵列改进性能和可用性 58

所需的磁盘数量 59

可用的RAID级别 59

更新的RAID 5 60

3.2安装和维护传统文件系统 61

3.3在硬件磁盘之间分布关键数据文件 62

分开存储数据和索引文件 62

避免I/O磁盘争用 63

通过移动数据文件来均衡文件I/O 64

3.4本地托管的表空间 65

创建本地托管的表空间 65

把字典托管的表空间迁移 66

到本地托管的表空间 66

Oracle大文件表空间 67

Oracle托管文件 67

3.5 ASM简介 68

I/O角色之间的通信 69

ASM实例 70

ASM init.ora参数 70

ASM的安装 70

ASM参数和SGA调整 71

ASM和权限 71

ASM磁盘 72

ASM和多路径 73

ASM磁盘组 74

ASM磁盘组和数据库 76

ASM冗余和故障组 76

Oracle Database 10gRelease 2中新的空间相关列 78

集群同步服务 78

数据库实例和ASM 78

使用ASM进行数据库合并和集群化 79

支持ASM的数据库进程 80

大文件和ASM 80

支持ASM的数据库init.ora参数 80

ASM和数据库部署最佳实践 81

ASM存储管理和分配 81

ASM重新平衡和重新分布 82

3.6使用分区来避免磁盘争用 84

获得关于分区的更多信息 86

其他类型的分区 86

其他分区选项 89

3.7使用索引分区 91

3.8导出分区 92

3.9消除碎片 92

使用正确的盘区大小 93

创建一个新表空间并把数据移到其中 93

导出和重新导入表 94

正确设定比例以避免链化现象 95

自动段空间管理 96

重建数据库 97

3.10增加日志文件尺寸和LOG_CHECKPOINT_INTERVAL以提高速度 97

确定重做日志文件的大小是否存在问题 98

确定日志文件的大小和检查点的时间间隔 98

3.11闪回恢复 100

3.12增加恢复的可能性:在每次批处理后提交 101

3.13使用回滚段 101

避免回滚段之间的争用 101

监控回滚段的等待和争用 102

增加回滚段 102

把大的事务隔离到它们自己的回滚段上 102

更简便的方法:UNDO表空间 103

监控UNDO空间 104

3.14结束有问题的会话 104

3.15不要在SYSTEM或SYSAUX表空间中执行排序 105

3.16在不同磁盘和控制器上存放多个控制文件 106

3.17对写操作频繁的数据使用裸设备来提高I/O 107

使用裸设备的好处 107

使用裸设备的缺点 107

3.18磁盘I/O的其他注意事项和提示 107

3.19设计阶段需要注意的问题 108

3.20技巧回顾 108

3.21参考文档 110

第4章 用初始参数调整数据库(针对DBA) 111

4.1标识重要的初始参数 112

4.2不用重启就修改初始参数 113

4.3用Enterprise Manager查看初始参数 114

4.4调整DB_CACHE_SIZE来提高性能 115

在调整DB_CACHE_SIZE时使用V$DB_CACHE_ADVICE 117

保证数据缓存命中率超过95% 118

监控V$SQLAREA视图以查找较慢的查询 118

4.5设定DB_BLOCK_SIZE来反映数据读取量的大小 121

调整SHARED_POOL_SIZE以优化性能 122

使用Oracle的多个缓冲池 131

调整PGA_AGGREGATE_TARGET以优化对内存的应用 133

修改SGA大小以避免分页和交换 134

了解基于成本的优化 134

创建足够的调度程序 135

25个重要的初始化参数 136

查找未归档的初始参数 138

了解典型的服务器 139

典型的服务器模式 140

调整Oracle Application数据库 141

4.6技巧回顾 142

4.7参考文档 143

第5章 企业管理器和网格控制(针对DBA和开发人员) 144

5.1企业管理器(EM)基础 145

5.2从All Targets和其他分组开始 148

5.3 Policies (Violations)选项卡 151

5.4监控数据库 152

Database Administration选项卡 160

Database Administration选项卡:Tablespace 161

Database Administration选项卡:实例级别 164

Database Administration选项卡:All InitializationParameters 164

Database Administration选项卡:Manage OptimizerStatistics 165

Database Administration选项卡(实例级别): 169

Database Maintenance选项卡 169

Database Topology选项卡 170

Database Performance选项卡 172

5.5监控主机 180

5.6监控应用服务器 182

5.7监控Web应用程序 186

5.8 Deployments选项卡(补丁选项) 189

5.9 Jobs选项卡 191

5.10 Reports选项卡 192

5.11自动存储管理的性能 195

5.12小结 197

5.13技巧回顾 197

5.14参考文档 198

第6章 使用EXPLAIN和STOREDOUTLINES(针对DBA和开发人员) 199

6.1 Oracle的SQL TRACE实用程序 200

对简单查询使用SQL TRACE的简单步骤 200

TRACE输出部分 205

更复杂的TKPROF输出 206

深入探讨TKPROF输出 207

使用DBMS_MONITOR(10g的新特性) 209

使用TRCSESS将多个跟踪文件保存到一个文件中(10g的新特性) 211

单独使用EXPLAINPLAN 212

EXPLAIN PLAN——从上至下读取和从下至上读取 215

阅读EXPLAIN PLAN 216

使用DBMS_XPLAN 220

另一种EXPLAIN PLAN输出方法:构建树结构 221

另一个使用树的例子 222

在开发产品中利用TRACE/EXPLAIN发现有问题的查询 225

PLAN_TABLE表中的重要列 225

Oracle支持的一些有用的程序包 227

适用于未记录入档的TRACE操作的初始参数 227

使用存储纲要 229

使用Plan Stabiliry(存储纲要) 233

6.2技巧回顾 236

第7章 基本的提示语法(针对DBA和开发人员) 238

7.1最常用的提示 239

谨慎使用提示 240

首先修正设计方案 240

7.2可用的提示和分组 241

改变执行路径 241

使用访问方法提示 241

使用查询转换提示 242

使用连接操作提示 242

使用并行执行 243

其他提示 243

7.3指定提示 244

7.4指定多个提示 245

7.5使用别名时,提示别名而不是表名 245

7.6使用提示 245

使用FIRST_ROWS提示 246

使用ALL_ROWS提示 247

使用FULL提示 247

使用INDEX提示 248

使用NO_INDEX提示 249

使用INDEX_JOIN提示 250

使用INDEX_COMBINE提示 251

使用INDEX_ASC提示 251

使用INDEX_DESC提示 252

使用INDEX_FFS提示 252

使用ORDERED提示 253

使用LEADING提示 254

使用NO_EXPAND提示 254

使用DRIVING_SITE提示 255

使用USE_MERGE提示 256

使用USE_NL提示 257

使用USE_HASH提示 257

使用PUSH_SUBQ提示 258

使用PARALLEL提示 259

使用NO_PARALLEL提示 260

使用APPEND提示 260

使用NOAPPEND提示 261

使用CACHE提示 261

使用NOCACHE提示 262

使用CLUSTER提示 262

使用HASH提示 263

使用CURSOR_SHARING_EXACT提示 263

使用QB_NAME提示 264

7.7其他一些提示和注意事项 264

7.8使用提示可能遇到的问题 265

7.9提示一览表 266

7.10技巧回顾 267

7.11参考文档 268

第8章 调整查询(针对开发人员和初级DBA) 270

8.1调整哪些查询?查询V$SQLAREA 271

在V$SQLAREA视图中选出最占用资源的查询 271

在V$SQL视图中选出最占用资源的查询 272

8.2选出最占用资源的会话和查询的新10g视图 273

从V$SESSMETRIC视图中选出当前最占用资源的会话 273

查看可用的AWR快照 274

从DBA_HIST_SQLSTAT视图中选出最占用资源的查询 274

从dba_hist_sqlstat视图中选择查询文本 275

从DBA_HIST_SQL_PLAN视图中选出查询执行计划 275

8.3确定何时使用索引 276

8.4遗忘索引 277

8.5创建索引 277

8.6查看表上的索引 278

8.7修正差的索引 279

8.8在删除索引时保持谨慎 280

8.9对SELECT和WHERE中的列使用索引 280

8.10使用快速全局扫描 282

8.11使查询魔术般加速 282

8.12在内存中缓存表 283

8.13使用多个索引(利用最佳选择性) 284

8.14使用索引合并 286

8.15 处理受限制的索引 287

8.16使用基于函数的索引 288

8.17了解“古怪”的OR 289

8.18使用EXISTS函数 290

8.19表就是视图 291

8.20 SQL和“大一统”理论 292

8.21 Oracle Database 10g中的调整修改 292

8.22 10g自动SQL调整 292

保证调整用户能访问API 293

创建调整任务 293

查看顾问日志中的任务 293

执行SQL调整任务 294

查看调整任务的状态 294

显示SQL调整顾问报告 294

检查报告输出 294

8.23技巧回顾 297

8.24参考文档 298

第9章 表的连接和其他高级调整技术(针对DBA和开发人员) 299

9.1连接方法 300

嵌套循环连接 301

排序合并连接 302

集群连接 303

散列连接 303

索引连接 304

9.2表连接的初始化参数 306

排序合并与散列连接参数 307

9.3双表连接:等尺寸表(基于成本) 307

9.4双表索引连接:等尺寸表(基于成本) 310

9.5强制执行特殊的连接方法 312

9.6在多表连接中除去连接记录(侯选行) 315

9.7在大小不同的表间进行双表连接 316

9.8三表连接(基于成本) 319

9.9位图连接索引 321

9.10第三方性能调整工具 327

9.11调整分布式查询 330

9.12一切就绪 332

9.13各种调整技术摘要 333

外部表 333

数据快照太旧:开发人员的编程难题 337

设置事件以转储每次等待 338

使用EXISTS操作符有效缩短时间 339

9.14在块级别进行调整 341

9.15使用简单的数学方法调整性能 349

传统的数学分析 349

方法论的七个步骤 349

模式分析 355

数学方法总结 360

9.16连接调整:关系模型与对象关系模型的性能 360

使用的模型 362

结果 362

总结 370

9.17技巧回顾 372

9.18参考文档 372

第10章 使用PL/SQL提高性能(针对DBA和开发人员) 374

10.1使用DBMS_APPLICATION_INFO进行实时监控 376

10.2在RAC环境中为实时监控使用自定义包代替DBMS_APPLICATION_INFO 378

10.3在数据库的表中记录计时信息 390

10.4减少PL/SQL程序的单元迭代和迭代的时间 392

10.5使用ROWID进行迭代处理 395

10.6将数据类型、IF语句的排列和PLS_INTEGER 396

确保比较运算中的数据类型相同 397

根据条件出现的频率来排序IF条件 398

使用PLS_INTEGERPL/SQL数据类型进行整数运算 399

10.7减少对SYSDATE的调用 400

10.8减少MOD函数的使用 401

10.9共享池和固定PL/SQL对象 403

将PL/SQL对象语句固定(缓存)到内存中 404

固定所有的包 404

10.10标识需要固定的PL/SQL对象 405

10.11使用和修改DBMS_SHARED_POOL.SIZES 406

10.12从DBA_OBJECT_SIZE中获取详细的对象信息 407

10.13发现无效的对象 408

10.14发现已禁用的触发器 409

10.15将PL/SQL表用于快速参考表查询 410

10.16查找和调整所使用对象的SQL 413

10.17在处理DATE数据类型时使用时间信息 416

10.18调整和测试PL/SQL 418

10.19了解PL/SQL对象定位的含义 419

10.20使用回滚段打开大型游标 420

10.21使用数据库的临时表来提高性能 422

10.22集成用户跟踪机制以定位执行位置 422

10.23限制动态SQL的使用 423

10.24使用管道表函数来建立复杂结果集 423

10.25别管调试命令 428

10.26为初学者提供的例子 434

创建PL/SQL代码 434

创建过程 435

执行PL/SQL过程 435

创建函数 435

在SQL中执行GET_CUST_NAME函数 436

创建数据包 436

在数据库触发器中使用PL/SQL 436

10.27技巧回顾 436

10.28参考文档 438

第11章 调整RAC和使用并行特性 439

11.1实时应用集群(RAC) 440

并行数据库 440

Oracle RAC的体系结构 441

Oracle RAC系统的内部工作方式 443

SCN处理 445

RAC性能调整概述 446

RAC等待事件和互连统计数据 448

集群互连调整——硬件等级 453

使用企业管理器网格控制调整RAC 459

11.2并行操作的基本概念 465

11.3并行DML和DDL语句和操作 466

11.4 Oracle 9i的并行DML语句和操作 467

11.5并行处理和分区 467

11.6操作内部和操作之间的并行处理 468

11.7使用并行操作生成表和索引的示例 470

11.8并行DML语句和示例 472

并行DML的约束条件 473

并行DML语句示例 473

11.9通过V$视图监控并行操作 475

V$PQ_TQSTAT 475

V$PQ_SYSSTAT 476

V$PQ_SESSTAT 478

11.10在并行操作时使用EXPLAIN PLAN和AUTOTRACE 479

11.11调整并行执行和Oracle 9i初始化参数 484

11.12并行加载 487

11.13性能比较和监控并行操作 488

11.14优化RAC中的并行操作 490

并行操作的目标 490

RAC并行使用模型 491

初始化参数 491

查看并行统计数据的V$视图 491

并行配置和相关基线测试 492

并行查询测试示例 492

Create Table As 495

索引构建 495

性能考虑因素和小结 495

11.15 使用并行处理时的其他注意事项 495

11.16技巧回顾 496

11.17参考文档 498

第12章 V$视图(针对开发人员和DBA) 499

12.1 V$视图的创建和访问 500

获得所有V$视图的数量和列表 503

查找用于创建V$视图的X$表 504

查找组成DBA_视图的底层对象 505

使用有帮助的V$脚本 507

内存分配摘要(V$SGA) 511

内存分配的细节(V$SGASTAT) 512

在V$PARAMETER中发现init.ora的设置 513

测定数据的命中率(V$SYSSTAT) 514

测定数据字典的命中率(V$ROWCACHE) 515

测定共享SQL和PL/SQL的命中率(V$LIBRARYCACHE) 516

确定需要固定的PL/SQL对象 517

通过V$SQLAREA查找有问题的查询 518

检查用户的当前操作及其使用的资源 519

查找用户正在访问的对象 520

使用索引 522

确定锁定问题 523

关闭有问题的会话 525

查找使用多会话的用户 526

查找磁盘I/O问题 527

查找回滚段的内容 530

检查空闲列表是否充足 532

检查角色和权限设置 533

等待事件V$视图 535

一些主要的V$视图种类 538

12.2技巧回顾 544

12.3参考文档 546

第13章 X$表(针对高级DBA) 547

13.1 X$表介绍 548

有关X$表的误解 549

授权查看X$表 550

13.2创建V$视图和X$表 551

13.3获得所有X$表的列表 553

13.4获得所有的X$索引列表 554

13.5对X$表和索引使用提示 555

13.6共享池 556

13.7监控共享池的查询 557

ORA-04031错误 558

空间分配过大而引起的争用 558

共享池碎片化 559

共享池和/或Java池中空闲内存过低 560

库缓存命中率 561

大量的硬分析 563

闩锁等待和/或休眠 564

其他调整选项 565

13.8重做 566

13.9初始化参数 566

13.10缓存/数据块 570

缓存状态 570

占用数据块缓存的段 572

热数据块/闩锁争用和等待事件 574

13.11实例/数据库 578

13.12高效使用X$表及其策略 579

13.13相关的Oracle内部机制 580

跟踪 580

DBMS_TRACE包 583

事件 584

转储 584

ORADEBUG 585

trcsess工具 587

13.14阅读跟踪文件 588

等待信息和响应时间 590

递归调用 591

模块信息 591

提交 592

Unmap 592

绑定变量 592

错误 593

13.15 X$表的分组 593

13.16 X$表及相关的非V$固定视图 607

13.17常见的X$表连接 609

Oracle 10gR1中新增的X$表 611

Oracle 10gR2中新增的X$表 612

13.18 X$表的命名约定 613

13.19技巧回顾 621

13.20参考文档 621

第14章 使用STATSPACK和AWR报表调整等待和闩锁 623

14.1 1 0gR2 (10.2) STATSPACK的新特性 624

14.2 10gR1 (10.1) STATSPACK的新特性 625

14.3安装STATSPACK 625

PERFSTAT账户的安全管理 626

安装之后 627

搜集统计数据 627

运行统计数据报表 630

14.4自动工作量仓库(AWR)和AWR报表 631

手动管理AWR 632

AWR自动快照 633

AWR快照报表 633

在Oracle企业管理器网格控制中运行AWR报表 635

14.5解释STATSPACK的输出结果 638

报表头信息 638

负载简档 639

实例的效率 641

首要等待事件 644

Oracle Bugs 652

Oracle影子进程的生命周期 652

RAC等待事件和互连统计数据 653

首要的SQL语句 654

实例活动统计数据 656

表空间和文件I/O的统计数据 661

段统计数据 662

其他的内存统计数据 663

撤消统计数据 665

闩锁统计数据 666

在块级别调整和查看(高级) 672

数据字典和库缓存的统计数据 675

SGA内存统计数据 677

非默认的初始化参数 678

14.6 AWR报表和STATSPACK输出结果中需 680

管理STATSPACK数据 680

升级STATSPACK 681

删除STATSPACK 681

14.7新ADDM报表的快速注释 681

14.8 10gR2脚本 683

14.9技巧回顾 684

14.10参考文档 685

第15章 执行快速系统检查(针对DBA) 686

15.1总体性能指数(TPI) 687

15.2教育性能指数(EPI) 688

15.3系统性能指数(SPI) 689

15.4内存性能指数(MPI) 691

缓冲区命中率 692

数据字典缓存命中率 694

库缓存命中率 694

PGA内存排序命中率 695

空闲的数据缓冲区的比例 696

最浪费内存的前10个语句占所有语句的比例 697

调整前25个最浪费内存的语句 698

固定/缓存对象 699

15.5磁盘性能指数(DPI) 700

调整滥用磁盘读操作的25个主要语句 700

最浪费磁盘读操作的前10个语句占所有语句的比例 701

表/索引的分离 703

关键任务表管理 703

分离关键的Oracle文件 704

自动撤消管理 704

临时段的平衡 707

15.6总体性能指数(TPI) 708

15.7系统综合检查的示例 709

评级系统 709

系统检查评级分类的示例 710

需要立刻解决的问题项 711

其他需要解决的问题项 712

15.8系统信息列表 712

与内存有关的值 712

与磁盘有关的值 713

与CPU有关的值 713

与备份和恢复有关的信息 713

命名约定和/或标准以及安全信息 714

DBA知识评级 714

15.9 TPI和系统检查需要考虑的其他项 715

15.10技巧回顾 715

15.11参考文档 716

第16章 使用UNIX工具监控系统(针对DBA) 717

16.1 Unix/Linux工具 718

16.2使用sar命令监控CPU的使用 718

sar-u(检查CPU沉重程度) 718

sar-d命令(查找I/O问题) 720

sar-b命令(检查缓存) 722

sar-q命令(检查运行队列和交换队列的长度) 723

16.3使用sar命令和vmstat命令监控分页/交换 723

使用sar命令的-w选项报告分页活动 724

使用sar命令的-c选项报告交换和切换活动 724

使用sar命令的-r选项报告空闲内存和空闲交换 725

使用sar命令的-g选项报告分页活动 725

使用sar命令的-wpgr选项 726

16.4使用top命令发现系统中最影响性能的用户 728

16.5使用uptime命令监控CPU的负载 729

16.6使用mpstat命令确定CPU瓶颈 730

16.7将ps命令与已选出的V$视图相结合 731

16.8使用iostat命令确定磁盘I/O瓶颈 734

为磁盘驱动器sd15、sd16、sd17和sd18使用iostat的-d选项 734

使用iostat的-D选项 734

使用iostat的-x选项 734

将iostat的-x选项与shell脚本中的逻辑相结合 735

16.9使用ipcs命令确定共享内存的使用情况 736

16.10使用vmstat命令监控系统的负载 737

16.11监控磁盘空闲空间 738

16.12监控网络性能 740

使用spray命令监控 742

使用nfsstat-c监控网络性能 743

使用netstat监控网络性能 744

显示可调整参数的当前值 745

修改配置信息文件 747

影响性能的其他因素 747

16.13技巧回顾 749

16.14参考文档 749

附录A 主要的初始化参数(针对DBA) 750

A.1不再支持的初始化参数 751

A.2不建议使用的初始化参数 752

A.3 25个最重要的初始化参数 752

A.4必须记住的最重要的10个初始化参数 754

A.5最重要的13个未入档的初始化参数 755

A.6已入档的初始化参数列表(V$PARAMETER) 757

A.7未入档的初始化参数列表(x$ksppi/x$ksppcv) 767

A.8 Oracle应用程序11i建议(注释:216205.1) 767

A.9不写书的10个重要原因 772

A.10技巧回顾 773

A.11参考文档 773

附录B V$视图(针对DBA和开发人员) 774

B.1 V$视图、GV$视图和X$表的创建 775

B.2 Oracle 10g (10.2.0.1)GV$和V$视图列表 775

B.3 Oracle 10g (10.2.0.1)V$视图 781

B.4用于创建V$视图的X$表的Oracle 10g脚本 786

附录C X$表(针对DBA) 843

C.1按名称排序的Oracle 10g X$表 844

C.2 Oracle 10gX$索引 850

C.3交叉引用X$表的Oracle 10gV$视图 862

C.4 GV$视图没有引用的Oracle10g X$表 866

相关图书
作者其它书籍
返回顶部