《Oracle9i STATSPACK高性能调整》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Donald K.Burleson著;袁勤勇等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2003
  • ISBN:7111112741
  • 页数:464 页
图书介绍:本书是Oracle公司官方推荐的

前言 1

第一部分 方法和工具概述 1

第1章 Oracle调整概述 1

目录 1

1.1 整体调整方法 2

1.1.1 服务器调整 5

1.1.2 网络调整 5

1.1.3 磁盘调整 6

1.1.4 实例调整 7

1.1.6 SQL调整 8

1.1.5 对象调整 8

1.1.7 用Oracle并行查询进行调整 9

1.1.8 调整实际应用簇 9

1.2 Oracle和STATSPACK 10

1.3 小结 12

第2章 STATSPACK概述 13

2.1 STATSPACK体系结构 14

2.2 STATSPACK怎样收集数据 15

2.3 STATSPACK的表结构 16

2.3.1 STATSPACK控制表 17

2.3.2 STATSPACK参数表 19

2.4 STATSPACK信息使用 20

2.4.1 使用STATSPACK进行数据库调整 20

2.4.2 资源规划 21

2.4.3 预测模型 21

2.5 小结 22

第3章 安装和配置STATSPACK 23

3.1 STATSPACK脚本概述 24

3.1.1 Oracle8和Oracle8i的STATSPACK脚本 24

3.1.2 Oracle8.1.6后STATSPACK的STATSPACK脚本 25

3.2 步骤1:创建perfstat表空间 26

3.3 步骤2:运行创建脚本 27

3.3.1 运行Oracle8.1.7前版本安装脚本 27

3.3.2 安装先决条件 27

3.4 步骤3:测试STATSPACK安装 28

3.5 步骤4:规划自动STATSPACK数据收集 28

3.6 STATSPACK的配置和维护 30

3.7 调整STATSPACK收集阈值 31

3.7.1 快照级别 32

3.7.2 快照阈值 32

3.9.1 使用STATSPACK清除工具 33

3.9 删除旧有的STATSPACK快照 33

3.8 将STATSPACK用于Oracle 8.0到8.1.5 33

3.9.2 人工删除STATSPACK快照 34

3.9.3 快照的删除范围 34

3.9.4 清除快照的智能UNIX脚本 36

3.10 便于使用的STATSPACK Shell脚本 40

3.10.1 一个快捷的经过时间的STATSPACK脚本 40

3.10.2 监视STATSPACK表范围 45

3.11 小结 47

第4章 STATSPACK表中的数据 48

4.3 STATSPACK总计表 49

4.1 STATSPACK遗漏的内容 49

4.2 STATSPACK附属表结构 49

4.3.1 Oracle9i STATSPACK表的改变 50

4.3.2 stats$latch misses summary表 52

4.3.3 stats$sgastat_summary表(只适于Oracle8i) 53

4.3.4 stats$sql_summary表 55

4.3.5 stats$parameter表 56

4.4 STATSPACK系统表 57

4.4.1 stats$rollstat表 58

4.4.2 stats$latch表 58

4.4.3 stats$latch_children表 59

4.4.5 stats$waitstat表 60

4.4.4 stats$librarycache表 60

4.4.6 stats$enqueuestat表 61

4.4.7 stats$sysstat表 63

4.4.8 stats$sesstat表 64

4.4.9 stats$sgastat表 65

4.5 STATSPACK事务表 65

4.5.1 stats$buffer_pool表(只适用于Oracle9i以前版本) 66

4.5.2 stats$buffer_pool_statistics表 66

4.5.3 stats$filestatxs表 67

4.6.1 stats$system_event表 69

4.6 STATSPACK事件表 69

4.6.2 stats$session_event表 71

4.6.3 stats$bg_event_summary表 72

4.6.4 stats$idle_event表 72

4.7 Oracle并行服务器表(实际应用簇) 73

4.7.1 stats$rowcache_summary表 73

4.7.2 stats$sgaxs表 73

4.8 小结 74

第二部分 使用STATSPACK调整Oracle数据库第5章 扩展STATSPACK收集服务器统计 75

5.1.1 各种vmstat的不同之处 76

5.1 vmstat工具概述 76

5.1.2 在vmstat中可以得到什么 78

5.1.3 使用vmstat识别CPU瓶颈 78

5.1.4 使用vmstat识别频繁使用的CPU 80

5.1.5 识别RAM内存瓶颈 81

5.1.6 理解UNIX RAM内存分页 81

5.2 在STATSPACK中获取服务器性能数据 86

5.2.1 获取vmstat信息的脚本 86

5.2.2 vmstat获取脚本的内部结构 89

5.2.3 报告其他Oracle服务器上的vmstat信息 90

5.3 小结 91

第6章 调整服务器环境 92

6.1 数据库管理员和系统管理员之间的关系 93

6.2 在线服务器监视工具 94

6.2.1 使用glance 94

6.2.2 使用top监视服务器 95

6.2.3 使用sar监视服务器统计 96

6.3 监视服务器CPU消耗 98

6.4.1 增加附加的CPU处理器 99

6.4 升级整个服务器 99

6.4.2 服务器任务负载平衡 100

6.4.3 使用nice和priocntl改变执行优先级 103

6.5 监视服务器内存消耗 104

6.5.1 服务器内存设置 104

6.5.2 非常大的内存和Oracle 104

6.5.3 使Oracle内存不可交换 105

6.6 报告服务器统计 106

6.6.1 服务器异常报告 106

6.6.2 日常vmstat趋势报告 109

6.6.3 长期服务器分析和趋势 112

6.7 小结 113

第7章 调整网络环境 114

7.1 优化Oracle NET配置 115

7.1.1 protocol.ora中的tcp.nodelay参数 116

7.1.2 sqlnet.ora的automatic_ipc参数 116

7.1.3 tnsnames.ora中的SDU和TDU参数 116

7.1.4 listener.ora中的queuesize参数 118

7.1.5 sqlnet.ora的break_poll_skip参数 118

7.2 其他影响网络行为的Oracle特性 119

7.2.1 使用阵列获取来提高网络吞吐量 119

7.1.7 epc_disabled环境变量 119

7.1.6 sqlnet.ora的disable_oob参数 119

7.2.2 使用多线程服务器 120

7.2.3 连接共享和网络性能 121

7.2.4 ODBC和网络性能 123

7.2.5 调整Oracle复制 123

7.3 从Oracle STATSPACK中监视网络性能 125

7.4 调整分布式网络 127

7.5 小结 129

第8章 使用STATSPACK调整磁盘I/O子系统 130

8.1 影响磁盘I/O的Oracle调整因素 131

8.2 Oracle内部结构和磁盘I/O 132

8.2.1 Oracle文件组织技术 133

8.2.2 瞬时磁盘热点 133

8.3 映射Oracle磁盘结构 138

8.3.1 多RAM缓冲区问题 139

8.3.2 对Oracle进行文件条带化 139

8.3.3 对Oracle使用RAID 140

8.3.4 使用具有原始设备的Oracle 141

8.3.5 Oracle数据库的磁盘负载平衡 142

8.3.6 配置Oracle表空间和数据文件 142

8.3.7 建立Oracle文件到磁盘的体系结构 144

8.3.8 报告Oracle磁盘体系结构 145

8.4 STATSPACK报告Oracle数据文件 146

8.4.1 使用STATSPACK报告详细的磁盘和文件I/O 151

8.4.2 有关特定I/O活动的STATSPACK报告 152

8.4.3 识别热点数据文件的STATSPACK脚本 154

8.4.4 定位热点磁盘的方法 154

8.5 扩充STATSPACK以用于磁盘I/O数据 155

8.5.1 基本iostat工具 155

8.5.2 定义STATSPACK表 157

8.5.3 获取iostat信息 158

8.5.4 产生iostat报告 160

8.6 使用STATSPACK查看I/O特性 162

8.7 小结 167

第三部分 用STATSPACK调整Oracle数据库第9章调 整Oracle数据库实例 169

9.1 Oracle数据库实例概述 170

9.1.1 Oracle SGA 170

9.1.2 Oracle后台进程 174

9.1.3 块大小和Oracle磁盘I/O 176

9.1.4 db_file_multiblock_read_count和Oracle 177

9.2 调整Oracle7到Oracle 8i数据缓冲区 177

9.2.1 数据块高速缓存介绍 177

9.2.2 完全数据缓存 179

9.2.3 数据缓冲区命中率 180

9.2.4 数据缓冲池内部结构 181

9.2.5 使用STATSPACK监视数据缓冲池的使用 183

9.2.6 Oracle 8i数据池概述 186

9.2.7 定位KEEP池的表和索引 187

9.2.8 调整RECYCLE池 192

9.2.9 为RECYCLE池识别候选 193

9.3 使用STATSPACK进行数据缓冲区命中率趋势报告 196

9.4 调整Oracle 9i数据缓冲池 200

9.5 调整Oracle 8.0数据库写入器进程 205

9.6 监视Oracle 8i和Oracle 9i中的数据库写入器争用 212

9.7 调整共享池 213

9.8 调整库高速缓存 218

9.8.1 监视库高速缓存缺失率 219

9.8.2 使用STATSPACK监视库高速缓存内的对象 220

9.9 调整数据字典高速缓存 224

9.10 调整Oracle排序 229

9.11 调整撤销记录(回滚段) 234

9.12 监视到Oracle的专用连接 237

9.13 UNIX与多线程服务器交互 240

9.14 Oracle 9i动态RAM与UNIX 247

9.14.1 Oracle 9i和UNIX区组 248

9.14.2 改变动态SGA和PGA组件 249

9.15 Oracle 9i的专用连接PGA存储器分配 250

9.15.1 Oracle 9i中的自动RAM内存管理 250

9.15.2 自调整Oracle 9i数据库 255

9.16 小结 262

第10章 调整Oracle表和索引 263

10.1.1 Oracle中的位图演化 264

10.1 Oracle 9i中的自动空间管理 264

10.1.2 Oracle 9i自由表算法 265

10.1.3 位图段管理特征 266

10.1.4 Oracle 9i自由表内部结构 267

10.1.5 自动空间管理的Oracle 9i工具 268

10.2 传统Oracle存储参数及性能 271

10.2.1 pctfree存储参数 271

10.2.2 pctused存储参数 272

10.2.3 freelists存储参数 272

10.2.4 OPS使用的freelist group存储参数 273

10.2.5 存储参数规则小结 273

10.3 传统自由表管理和Oracle对象 274

10.3.1 自由表中的链接与去除链接 275

10.3.2 减少自由表的重链接 276

10.4 表内部结构和自由表 277

10.5 根据数据行平均长度设置pctfree和pctused 279

10.6 缓冲区忙等待和自由表争用 281

10.6.1 利用STATSPACK发现等待争用 281

10.6.2 利用STATSPACK发现缓冲区忙等待 284

10.7 重组Oracle表 291

10.8 识别带有链接行的Oracle表 296

10.8.1 识别带有长行的表 300

10.8.2 识别稀疏表 301

10.9 为提高操作性能对Oracle表中的数据行重新排序 303

10.10 索引重建技术 304

10.10.1 何时需要重建索引 309

10.10.2 自动索引重建 310

10.11 识别Oraele 9i中的未用索引 311

10.11.1 监视会话的例子索引 311

10.11.2 用隐含参数调整索引争用 312

10.12 利用STASPACK监视Oracle表和索引 312

10.12.1 分配STATSPACK扩展表 312

10.12.2 收集表和索引的STATSPACK快照 314

10.12.3 生成表和索引的报告 316

10.12.4 通过E-mail发布表报告 331

10.13 小结 332

第11章 调整Oracle SQL 333

11.1 SQL调整的目标 334

11.2 说明性SQL语法的问题 335

11.3.2 optimizer_mode=FIRST_ROWS 336

11.3.3 optimizer_mode=ALL_ROWS 336

11.3.1 optimizer_mode=RULE 336

11.3 Oracle SQL优化器 336

11.3.4 optimizer_mode=CHOOSE 337

11.4 利用基于规则的优化进行调整 338

11.4.1 改变基于规则的驱动表 338

11.4.2 基于规则的优化器何时无法使用正确的索引 339

11.5 使用基于成本的优化进行调整 340

11.5.1 启用基于成本的优化器 341

11.5.2 为CBO收集统计数据 342

11.6 确定默认的optimizer_mode设置 343

11.7 其他的调整技术 343

11.7.1 带CBO SQL提示的调整 344

11.7.3 文字性SQL语句的问题 345

11.7.2 调整SQL子查询 345

11.7.4 在Oracle8i中使用cursor_sharing参数 347

11.7.5 带临时表的SQL调整 348

11.7.6 通过添加索引调整SQL 349

11.7.7 编写高效率SQL的一般原则 349

11.8 SQL调整过程 350

11.8.1 步骤1:识别库缓存中影响大的SQL 350

11.8.2 步骤2:提取并解释SQL语句 358

11.8.3 步骤3:调整SQL语句 362

11.9 SQL调整中实际案例分析 363

11.10 高级SQL运行方案分析 365

11.11 保存SQL调整的永久性改变 368

11.12 使用v$ sql_plan和v$ sql_workarea视图 369

11.13 小结 371

第12章 利用Oracle并行特性进行调整 372

12.1 使用Oracle并行查询 373

12.1.1 并行查询参数 374

12.1.2 设置优化并行度 374

12.1.3 使用并行查询提示 378

12.2.1 利用STATSPACK监视Oracle并行查询 379

12.2 监视Oracle并行查询 379

12.2.2 利用v$视图监视Oracle并行查询 380

12.2.3 并行查询和分布式对象 380

12.2.4 查找Oracle并行查询的候选表 381

12.3 使用并行DML 382

12.3.1 启用并行DML 383

12.3.2 Oracle表重组的并行化 383

12.3.3 并行索引的重建 384

12.4 小结 385

第13章 Oracle并行服务器环境的调整 386

13.1 Oracle簇服务器系统结构介绍 387

13.2 RAC数据分区 389

13.3 Oracle7到Oracle 8i的集成分布式锁管理器 390

13.4 对OPS环境的Oracle表设置 392

13.5 调整OPS环境 394

13.6 监视OPS的STATSPACK表 395

13.6.1 stats$rowcache_summary表 395

13.6.2 stats$sgaxs表 396

13.6.3 stats$sysstat表 396

13.7 扩展STATSPACK以获取OPS信息 398

13.8 查询Oracle并行服务器的v$视图 400

13.9 比较实际应用簇和Oracle并行服务器 402

13.10 小结 404

第四部分 利用STATSPACK进行数据库报告第14章 利用STATSPACK监视Oracle 405

14.1 标准STATSPACK报告 406

14.1.1 前言段 406

14.1.2 等待事件段 408

14.1.3 SQL段 409

14.1.4 表空间活动段 412

14.2 报警脚本程序概述 419

14.3 为DBA定制的异常警告报告 419

14.3.1 STATSPACK警告日报 420

14.3.2 服务器警告报告 428

14.3.3 Oracle问题的实时检测 429

14.3.4 对象增长周报 430

14.3.5 跟踪报警报告 432

14.3.6 Web服务器警告报告 435

14.3.7 缓冲区忙等待警告 435

14.4 STATSPACK反应报告 437

14.5 安排和定制Oracle报警报告 442

14.6 小结 443

第15章 利用STATSPACK进行趋势分析 444

15.1.1 利用电子表格图表向导绘制STATSPACK数据图形 445

15.1 利用Microsoft Excel绘制STATSPACK数据的图形 445

15.1.2 步骤1:定制STATSPACK报告 446

15.1.3 步骤2:在SQL*Plus中运行报告 447

15.1.4 步骤3:高亮显示并复制结果 447

15.1.5 步骤4:打开MS-Excel并粘贴数据 447

15.1.6 步骤5:将数据划分成数据列 448

15.1.7 步骤6:数据分栏 449

15.1.8 步骤7:启动图表向导 450

15.1.9 步骤8:选择线条图 450

15.2 用于预测的STATSPACK报告 451

15.1.11 步骤10:添加趋势线 451

15.1.10 步骤9:完成图表向导并查看图表 451

15.2.1 用于趋势分析的基本STATSPACK度量 452

15.2.2 用于数据库服务器趋势分析的STATSPACK扩展 453

15.2.3 检查服务器以小时为单位的趋势 455

15.2.4 绘制一周中各天服务器统计数据的图表 457

15.3 基于Web的STATSPACK数据图形绘制 458

15.3.1 RRDtool工具 459

15.3.2 基于Web的其他绘图工具 459

15.4 STATSPACK浏览器产品 461

15.5 小结 464